javascript - 动态 YASnippet,插入方法名称和参数

标签 javascript java emacs yasnippet

在 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/

相关文章:

java - 最好使用两个单独的方法,或者一个方法调用另一个方法?

java - 错误:Log already in use?

javascript - 如何仅在说是/继续时循环。我的代码一直在循环,不关心我代码中的 bool 值

javascript - 动态导入react-icons

javascript - TypeScript - 界面。使用空对象或此对象定义属性

java - 如何在 C 中创建 Java ArrayList

emacs - transient 标记模式永久开启

Emacs 更新文件自动加载失败

emacs - 适用于Common Lisp和Clojure开发的SLIME设置

javascript - 在 map 函数中异步调用 API (React)