在Java(或JavaScript)代码块中插入YASnippet时,如何访问方法名称(及其参数)?
目标是能够扩展
logm
进入(例如):
log("notify() called with: " + "context = [" + context + "]");
如果插入功能体:
public void notify(final EventHandlerContext context) {
....
}
(这样的实时模板存在于IntelliJ IDEA中。)
答案 0 :(得分:1)
您可以在代码段中评估任意lisp代码。因此,如果您有一个函数来获取方法名称/参数,则可以从代码段代码中调用它。例如,以下是获取方法名称的快速尝试 - 您可以在cc-cmds
或eclim
库中找到更好的函数。
(defun java-method-name ()
(save-excursion
(c-beginning-of-defun)
(when (re-search-forward "\\([A-Za-z]+\\)(")
(match-string 1))))
段
# -*- mode: snippet -*-
# name: logm
# key: logm
# --
log("`(java-method-name)`() called with: " + ${1:etc:..})