Python 正在查找用于提取函数/类定义的解析器集合

Python 正在查找用于提取函数/类定义的解析器集合,python,c,parsing,ide,gtk,Python,C,Parsing,Ide,Gtk,我正准备制作一个小IDE,它允许在调用函数/宏的地方将函数/宏调用扩展到它们的定义(如果需要的话,递归地这样做,这样如果函数a调用B,我展开B,然后B调用C-我在B的代码中展开C等): 问题1:您知道现有的具有此功能的IDE吗 问题2:您将如何实现这一点?我的方法如下:我希望IDE能够理解各种编程语言。为了提取函数定义,我似乎必须使用解析器。有各种语言的解析器集合吗?我已经研究过CTAG和Pygments lexer,但是它们的输出不足以完成这项任务 IDE的首选语言是Python(尽管Jav

我正准备制作一个小IDE,它允许在调用函数/宏的地方将函数/宏调用扩展到它们的定义(如果需要的话,递归地这样做,这样如果函数a调用B,我展开B,然后B调用C-我在B的代码中展开C等):

问题1:您知道现有的具有此功能的IDE吗

问题2:您将如何实现这一点?我的方法如下:我希望IDE能够理解各种编程语言。为了提取函数定义,我似乎必须使用解析器。有各种语言的解析器集合吗?我已经研究过CTAG和Pygments lexer,但是它们的输出不足以完成这项任务

IDE的首选语言是Python(尽管Java和C建议也可以),graphial library-gtk+2。谢谢

问题1:您知道现有的具有此功能的IDE吗

可能与您描述的不完全一样,但是VisualStudio的“代码定义”窗口显示了当前光标位置处任何符号的定义。当然,它的不同之处在于它将定义显示在一个单独的窗口到编辑器窗口中,但老实说,我会发现您的主张有些刺耳和违反直觉,因为这些调用在语义上并不一致。

在大多数IDE中,您想要的是所谓的“转到定义”。当然,它们不会内联展开,但您必须将定义放在某个地方

一般来说,许多IDE都有拆分窗口,因此可以在原始调用的同时看到定义。在我看来,您基本上希望自动设置拆分窗口,并进入定义点


许多IDE包含内部可编程接口。您可能可以使用Eclipse;如果新窗口中的M-x goto定义尚未内置,您当然可以使用Emacs执行此操作:-}

pycharm
中,当光标位于该对象上时,您可以使用
Ctrl+b
(用于win)或
Command+b
(用于mac)转到该对象(在您的情况下:您要在其上执行
展开
)。@namit谢谢。同样的功能也可以通过Ctags在VIM中使用,通过Ctrl-]转到函数定义,通过Ctrl-T返回。但这迫使您将调用堆栈保留在头脑中,我不喜欢:)