我写这段代码是为了在Java源代码中插入一个新变量:
# -*- mode: snippet -*-
# name: variable
# key: v
# --
$1 ${1:$(java-default-variable-name text)} = new $1($2);
$0它根据类型声明并创建一个变量,例如
AtomicInteger-> AtomicInteger ai = new AtomicInteger();缺少的是,如果我不喜欢默认的变量名,我不能在代码片段中给出另一个变量名。我试着写下:
$1 ${2:$(java-default-variable-name $1)}或
$1 ${2:`(java-default-variable-name $1)`}但它不起作用。有没有办法将字段$1转换为字段$2?
发布于 2012-08-24 18:53:29
我不知道java-default-variable-name的确切上下文-我假设它接受一个字符串并返回另一个字符串?
如果是这样的话,我想这大概就是你想要的:
$1 ${2:varname$(let* ((end (- (point) 1))
(start (save-excursion (backward-word) (point)))
(type (buffer-substring start end)))
(if (equal yas/text "varname")
(java-default-variable-name type)
yas/text))} = new $1($3);$0
https://stackoverflow.com/questions/12106247
复制相似问题