# -*- mode: snippet -*-
# name: def_property
# key: def_property
# group: define.object oriented
# type: command
# --
(let* ((snippet-content '())
       (pragma-snippet (car (magik-yasnippet-pragma-snippet nil)))
       (dollar-count (cadr (magik-yasnippet-pragma-snippet nil)))
       (doc-string (magik-yasnippet-documentation))
       (property-line (concat
		       (magik-yasnippet-prev-class-name-with-dot)
		       "def_property(:${"
		       (number-to-string (+ dollar-count 1))
		       ":name})")))

  (setq snippet-content
	(delq nil
              (list pragma-snippet
		    (unless (string-empty-p doc-string) doc-string)
		    property-line
		    "$"
		    ""
		    "$0")))

  (yas-expand-snippet (string-join snippet-content "\n")))