首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Emacs yasnippet镜像/转换

Emacs yasnippet镜像/转换
EN

Stack Overflow用户
提问于 2012-08-24 17:03:57
回答 1查看 336关注 0票数 1

我写这段代码是为了在Java源代码中插入一个新变量:

代码语言:javascript
复制
# -*- mode: snippet -*-
# name: variable
# key: v
# --
$1 ${1:$(java-default-variable-name text)} = new $1($2);
$0

它根据类型声明并创建一个变量,例如

代码语言:javascript
复制
AtomicInteger-> AtomicInteger ai = new AtomicInteger();

缺少的是,如果我不喜欢默认的变量名,我不能在代码片段中给出另一个变量名。我试着写下:

代码语言:javascript
复制
$1 ${2:$(java-default-variable-name $1)}

代码语言:javascript
复制
$1 ${2:`(java-default-variable-name $1)`}

但它不起作用。有没有办法将字段$1转换为字段$2?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-24 18:53:29

我不知道java-default-variable-name的确切上下文-我假设它接受一个字符串并返回另一个字符串?

如果是这样的话,我想这大概就是你想要的:

代码语言:javascript
复制
$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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12106247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档