Я пытался использовать классную функцию YASnippet: писать фрагменты, содержащие встроенный код Emacs Lisp.Существует фрагмент для первого режима, который окружает введенный текст символом "=", равным тексту, например,
====
Text
====
Основываясь на этом фрагменте, я решил немного изменить его (с помощью Elisp), чтобы он закомментировал эти три строки в зависимости от основного режима, в котором вы находитесь (я думал, что такой фрагмент будетполезно организовать исходный код).Итак, я написал это:
${1:`(insert comment-start)`} ${2:$(make-string (string-width text) ?\-)}
$1 ${2:Text}
$1 ${2:$(make-string (string-width text) ?\-)}
$0
Этот код работает относительно хорошо, за исключением одной проблемы: отступ этих трех строк смешивается в зависимости от основного режима, в котором я нахожусь (например, в emacs-lisp-мод, вторая и третья строки перемещаются больше вправо, чем первая строка).
Я думаю, что источник проблемы может быть связан с тем, что следует за строкой ${1:
в первой строке.Если я добавлю символ, у меня не возникнет проблем (т. Е. Все три строки будут правильно выровнены в конце расширения фрагмента).Если я добавлю один пробел после этой строки, проблема смещения все еще будет продолжаться.
Итак, мой вопрос: знаете ли вы какой-либо способ переписать этот фрагмент, чтобы не возникало такого смещения?Знаете ли вы, что является источником этого поведения?
Ура,