是否有文本编辑器 API 提供封闭块的行数?

Is there a text editor API providing numbers of lines for enclosing block?

我想到了一个适用于几乎所有文本编辑器的很酷的工具。为了实现我的想法,我需要能够:

  1. 找到语句所在代码块的开头和结尾。 JavaScript 中函数声明的行数和相应的右括号将是梦想。
  2. 在文件中查找指定变量的每个匹配项。

这需要对目标语言进行一些语法分析。我对 API 的语言和正在检查的语言确实没有太大的偏好。有没有简单易用的工具?

我在谷歌上搜索这个问题有一段时间了,但没有找到最简单的方法来做我想做的事情的明显答案。我现在只有 Eclipse 编辑器的打开代码才能找到解决方案。 Atom 的范围描述符似乎不愿意 return 范围声明的行数。

我发现我需要一个适合目标语言的解析器来构建文件的语法树。我最终使用了 esprima parser for JavaScript in combination with the Atom 文本编辑器,两者都很容易深入研究。

此外,Python 编译器似乎提供了一种为 Python 代码构建 AST 的简单方法。