0

在 Java(或 JavaScript)代码块中插入 YASnippet 时,如何访问方法的名称(及其参数)?

目标是能够扩展

logm

进入(例如):

log("notify() called with: " + "context = [" + context + "]");

如果插入函数体:

public void notify(final EventHandlerContext context) {
....
}

(这样的实时模板存在于 IntelliJ IDEA 中。)

4

1 回答 1

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:..})
于 2016-10-04T20:32:23.147 回答