在记事本++中转到自定义(用户定义)语言中的功能定义

时间:2014-08-13 03:59:23

标签: tags notepad++ keyboard-shortcuts ctags

有没有办法(通过插件或设置)在记事本++中创建(我的意思是修改,添加和删除)自定义标签? 通过标签我的意思是,跳转到项目中任何地方使用的实例的定义(某种像'goto definition'函数,就像我们在其他流行语言中那样,如C,C ++,C#)。 我搜索了这个主题但是找不到满意的结果。

我的要求: 我在Notepad ++中创建了一个自定义语言(通过添加关键字,着色模式和其他规则)。现在我需要为这种语言添加自定义标签的方法。我怎样才能做到这一点? 在标签的帮助下,我应该能够导航到特定项目中的定义(就像其他流行语言中的goto定义一样)(项目中的所有文件或至少打开的文件)。

2 个答案:

答案 0 :(得分:3)

  

现在我需要为这种语言添加自定义标签的方法。我怎样才能做到这一点?

如果您正在使用Exuberant Ctags,则只需使用少数正则表达式即可配置新的语言定义。

例如,this link显示了如何使用此regexp方法为 Clipper 语言配置ctags:

答案 1 :(得分:1)

我只需处理基本相同的问题。我使用Notepad ++与自定义标记语言编写的遗留代码库。每个文件都可以包含对其他文件中定义的交叉引用,因此跳转到定义的方法非常有用。

要找到满足所有四项要求的解决方案并不容易: goto definiton功能适用于多个文件自定义语言< / strong>在 Notepad ++ 中。我在寻找解决方案时发现了这个问题; jussij提供的答案很好,但它并没有提供完整的解决方案。

我最终使用SourceCookifier插件和自定义语言定义。网上没有关于如何使用它的大量指导,但一旦安装,您可以使用它来使用正则表达式规则手动创建语言定义。

如果您可以配置以下内容,SourceCookifier将适用于您的语言:

  • 语言
  • 使用的一组文件扩展名
  • 一组标签类型(即函数,类,变量)
  • 用于查找每种标记类型的一组POSIX Basic正则表达式,请参阅this post

定义语言后,您可以突出显示找到的标记的任何实例,并使用快捷键Ctrl + Shift + Enter跳转到该标记的定义。如果您提供要检查的文件列表,它可以在整个文件代码库中工作,它将其称为“会话”。您需要做的就是将您的codebase文件夹拖放到SourceCookifier侧边栏窗口中。我正在使用的代码库非常大,所以我只使用基本功能,请参阅this post以获得良好的探索。 goto定义快捷方式也可以添加到右键单击上下文菜单中,请参阅this post