在 Java(或 JavaScript)代码块中插入 YASnippet 时如何访问方法的名称(及其参数)?
目标是能够扩展
logm
进入(例如):
log("notify() called with: " + "context = [" + context + "]");
如果插入到函数体内:
public void notify(final EventHandlerContext context) {
....
}
(IntelliJ IDEA 中存在这样的实时模板。)
最佳答案
您可以评估代码片段中的任意 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:..})
关于javascript - 动态 YASnippet,插入方法名称和参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39860336/