yas $2 依赖 $1 的值

const $1: $2 = `(if (equal (yas-field-value 2) "string")
                            (concat "\"$3\";")
                        (concat "$3;"))`

我的目的是:当 $2 的值为 string 时,在等号后面插入一对双引号。 现状是 $3 被当做普通字符串输出了

elisp的输出不会被再解释一次,可以这样:

const $1 :$2 = ${2:$(if (string= "string" yas-text) (char-to-string 34))}$3${2:$(if (string= "string" yas-text) (char-to-string 34))};

我在把引号放到snippet的elisp里面的时候有很多困难,最后只好写成了(char-to-string 34),yasnippet还是有些情况没考虑到……

1 个赞

wow! 多谢大佬 :pray: