# -*- mode: snippet -*-
# name: def_mixin
# key: def_mixin
# group: 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))
       (mixin-line (concat "def_mixin(:${" (number-to-string (+ dollar-count 1)) ":" (magik-yasnippet-filename) "})")))

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

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