[cfe-dev] LLVM, Clang Development IDEs
Gábor Márton via cfe-dev
cfe-dev at lists.llvm.org
Wed Sep 9 13:36:45 PDT 2015
For vim and C++ development you can find pretty mature tools/plugins like
Ycm (https://github.com/Valloric/YouCompleteMe) and Rtags (
https://github.com/Andersbakken/rtags). Both of them are using libclang for
completion and goto definition features. Ycm works on the actual buffer,
while Rtags processes the whole project. A project is identified by the
compilation_database.json file. In case of Ycm it is sometimes tricky to
derive the compilation flags for headers, so I am using some heuristics for
that (https://github.com/martong/ycm_extra_conf.jsondb). I am using both
Ycm and Rtags to browse and edit the clang codebase and I am quite happy
with them.
For debugging I am using vim's --servername and --remote-send switches plus
iterm2 to match file:line patterns and to navigate to that position in my
running vim instance.
Note, Rtags can be used with emacs as well.
Cheers,
Gábor
On Wed, Sep 9, 2015 at 7:41 PM Richard via cfe-dev <cfe-dev at lists.llvm.org>
wrote:
>
> [Please reply *only* to the list and do not include my email directly
> in your reply. Thanks.]
>
> I posted on this previously and have had great success using CLion:
> <http://lists.cs.uiuc.edu/pipermail/cfe-dev/2015-February/041418.html>
>
> CLion has since been released and is no longer in early access program
> builds. I recommend it highly for CMake projects. It works great for
> CLang IMO.
>
> TL;DR History of the reviewer:
>
> - 1978: My first real editor was TECO, the ancestor of emacs. IDEs were
> non-existent. I liked having an editor that was programmable. I
> still have a soft spot for TECO even though TECO programs read like
> a binary file.
>
> - 1982: My second editor was vi. I liked the modes (insert/navigate)
> because it's similar to TECO and did visual presentation of my file
> better than the macro package add-ons for TECO. (Mostly this is saying
> "I like curses.") I still use vi for many small day-to-day editing
> tasks, mostly email messages like this one.
>
> - 1988: My third editor and first IDE was emacs. Handling multiple open
> files was great but the lack of insert/navigation modes hurts my pinky
> finger. (Old joke: EMACS stand for Escape Meta Alt Control Shift.)
> First approximation to something called an "IDE" because it let me
> run the debugger and move a little => cursor over my source code as
> I single stepped. Emacs/gdb/M-x compile seems to have pretty much
> remained identical since this time and not significantly improved in
> any way for C/C++ development. Despite all the programmability of
> the editor, open source compilers remained deliberately crippled for
> extension making it nearly impossible to provide high quality automatic
> source-to-source transformations beyond simple find/replace operations
> or move beyond the batch-oriented Makefile paradigm of compiling.
>
> - 1994: I played with the graphical GUI oriented software developer
> tools from SGI (CASEVision?). The emphasis seem to be on the pretty end
> of things and I remember it being slower than emacs/dbx/M-x compile,
> so I stuck with that.
>
> - 1997: I played with Borland's C++ Builder IDE. I liked the VCL
> concept but I wasn't a fan of introducing non-ISO syntax into C++ in
> order to support it (for VCL's properties). I found the multitude
> of top-level windows with no ability to dock them into a single
> top-level window arrangement too annoying, so I never pursued any
> serious development using the IDE.
>
> - 1998: My fourth editor (2nd IDE) was Visual C++ 6. This was the first
> time I started programming for Windows and I initially had a Windows
> version of emacs sitting side-by-side with VC6 for some editing tasks.
> Over time I learned the keyboard navigation of VC6, learned the project
> system, etc., and stopped using emacs for any code editing. This was
> my first real IDE that I used on a daily basis. I have continued to
> use this as my primary IDE on Windows as it evolved into Visual Studio
> from Visual C++. I have rarely used emacs since this time.
>
> - 2007: ReSharper (JetBrains) and Visual Assist X (Whole Tomato) add-ons
> for Visual Studio. While not IDEs themselves, these are such
> a productivity boost for C# (ReSharper) and C++ (Visual Assist)
> development that the difference before and after is astounding.
> Visual Assist X introduced automated refactoring for native C++
> development. Their parser is ad-hoc but continues to be improved
> and the results are pretty good.
> <
> https://github.com/LegalizeAdulthood/refactor-test-suite/blob/master/results/VisualAssistXResults.md
> >
> Other refactoring tool add-ons for native C++ development had promise
> but were too buggy or negatively impacted the speed of editing.
> Although they showed great promise, they were eventually discontinued.
>
> - 2011: My fifth editor (3rd IDE) was IntelliJ from JetBrains for Java.
> I continued to use Visual Studio for C++ development. I tried using
> Eclipse for Java for about a month but it was really too painful and
> eclipse-using coworkers could neither explain to me how to get things
> to work properly or why things did what they did. A quick download of
> IntelliJ on their free trial and I never looked back. The refactoring
> support combined with structural analysis created an IDE that was
> truly like having a partner that helped me with the drudgery of coding
> while I concentrated on the creative part of coding. IntelliJ level
> of refactoring is the "Gold Standard" as far as I'm concerned.
>
> - 2015: My sixth editor (4th IDE) was CLion (JetBrains) for C++
> development on Linux. JetBrains also introduced the ReSharper for C++
> add-on for C++ development on Windows with Visual Studio. I tried the
> early access program builds for CLion for several months, primarily
> working on my contributions to clang-tidy. It's really a tailored
> version of the IntelliJ IDE for native C++ development using CMake
> as a build system, so it wasn't like learning a new editor. CLion
> provides good automated refactoring support.
> <
> https://github.com/LegalizeAdulthood/refactor-test-suite/blob/master/results/CLionResults.md
> >
> --
> "The Direct3D Graphics Pipeline" free book <
> http://tinyurl.com/d3d-pipeline>
> The Computer Graphics Museum <http://ComputerGraphicsMuseum.org>
> The Terminals Wiki <http://terminals.classiccmp.org>
> Legalize Adulthood! (my blog) <http://LegalizeAdulthood.wordpress.com>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20150909/effd51e1/attachment.html>
More information about the cfe-dev
mailing list