|
From: Shlomy R. <sre...@gm...> - 2008-06-30 17:34:21
|
> There is the JavaCC grammar, which was updated relatively recently. > The JavaSideKick uses a JavaCC based grammar. > When I started the "csidekick" plugin, I was trying to use the javacc > grammar that was available before 2006 and made very little progress. > But perhaps Dale can help you get started with javacc? > > https://javacc.dev.java.net/servlets/ProjectDocumentList?folderID=110 > > On Sun, Jun 29, 2008 at 10:33 PM, Shlomy Reinstein <sre...@gm...> wrote: >> Hi, >> >> For a long time, I've been wishing to use jEdit as an IDE (Integrated >> Development Environment) for C++. jEdit is basically a text editor, so >> in order to get there I wrote several plugins that provide an >> interface to external tools: >> - GdbPlugin uses 'gdb' for debugging C++ programs >> - CtagsInterface uses the Ctags tool to provide a "Jump to definition" feature >> - CtagsSideKick also uses Ctags to provide a "buffer outline" showing >> the C++ objects in the current buffer >> - GlobalPlugin uses the GNU Global tool to provide "Jump to >> definition", "Jump to reference", and "Static call tree" >> - ClassBrowser uses Ctags to provide a class hierarchy dockable >> >> These tools (and the plugins) provided many of the features I've >> needed over the years for my C++ development tasks. However, they are >> not sufficient: >> - Ctags is great for generating a symbol definition database, but it >> does not provide any information about references/function calls. >> - GNU Global is great for generating a symbol definition & reference >> database, but it's only for C (i.e. it has no "namespace" concept, it >> does not take classes into account). >> - Cscope is a tool with capabilities somewhat similar to GNU Global, >> but it's also only for C. >> >> The most important feature that is missing is determining the context >> of the caret position. For example, if the source says >> "m_value->print()", and I put the caret on the word "print", and >> invoke the "Jump to definition" action, I'd like jEdit to check the >> type of "m_value" (which can be a local variable / global variable / >> data member of the enclosing class / etc), then jump to the "print()" >> method of m_value's type. This is what I mean by "determining the >> context". I have been looking for an open source tool to provide me >> with this sort of information for a long time, and haven't found any. >> If anyone knows such a tool, please let me know, and I will gladly >> write a "C++ IDE" plugin for jEdit that will use it. My time is quite >> limited, so I am looking for a tool that will do most of the work so >> that I will only have to provide jEdit with an interface to it, like I >> did with Ctags. >> >> In my search for an open source tool that will provide me with the >> context, I have encountered a C++ parser named "Elsa": >> http://www.cs.berkeley.edu/~smcpeak/elkhound >> However, I feel like this would require a lot of work to integrate >> into jEdit, as it doesn't simply build a database, one needs to write >> the grammar rules like with lex & yacc. >> >> Thanks, >> Shlomy >> >> ------------------------------------------------------------------------- >> Check out the new SourceForge.net Marketplace. >> It's the best place to buy or sell services for >> just about anything Open Source. >> http://sourceforge.net/services/buy/index.php >> -- >> ----------------------------------------------- >> jEdit Users' List >> jEd...@li... >> https://lists.sourceforge.net/lists/listinfo/jedit-users >> > |