Intellij Idea 实时模板

Lel*_*lay 3 version-control intellij-idea live-templates

每次我写“todo”评论时,我都面临着写我的 vcs 当前分支名称的问题。

最近我了解到 Intellij 的“Live Templates”,使用起来相当舒服。我尝试将其应用于我的问题,但没有模板可以取出分支名称。

所以问题是我真的可以取出我的分支的名称来以某种方式编码注释吗?

Bas*_*ers 8

可以使用 groovyScript 预定义函数和脚本来提取分支名称。例如创建以下实时模板:

$COMMENT$ todo [$BRANCH$]: $END$
Run Code Online (Sandbox Code Playgroud)

带有缩写“todo”和描述“插入带有分支名称的待办事项注释”。单击编辑变量并为变量提供以下定义:

评论:

lineCommentStart()
Run Code Online (Sandbox Code Playgroud)

分支机构(2020.2 及更新版本更新)

groovyScript("com.intellij.dvcs.repo.VcsRepositoryManager.getInstance(_editor.project).getRepositoryForFileQuick(com.intellij.openapi.fileEditor.FileDocumentManager.getInstance().getFile(_editor.document)).getCurrentBranchName()")
Run Code Online (Sandbox Code Playgroud)

如果对两个变量都进行了定义检查,则跳过。(不幸的是)Groovy 脚本只有一行。将适用的上下文设置为Everywhere.

使用此实时模板,现在可以todoTab在源文件中的某个位置键入内容,并插入带有分支名称的行注释。这将根据文件的语言插入正确的行注释,或者如果语言没有行注释(如 HTML),则不插入任何内容。并且无论使用哪种版本控制类型都应该提取分支名称(我使用 Git 进行了测试)。