views:

1589

answers:

3

I'm looking for any recommendations for source code browsers, but especially ones that work on a large evolving source code base (somtimes in the order of 100k files, but more often about 10k files). My requirements would be:

  • Some level of C/C++ language symbol parsing
  • Straight text searches (with some regex)
  • The tools also should allow text searches of non-source files (flat text files)
  • Optionally (but preferably) has a good GUI interface
  • The tool works on a windows based development environment
  • Optionally some level of customisation (file extension, language parsing extension)
  • Easy to use!

It seems to me that a lot of developer IDEs are oriented towards single application, relatively small projects, or sub-components of a larger source base. It just so happens that in my job(s) I have had to navigate across the entire source code base of large systems.

I have a background in UNIX systems/kernel development and typically used command line tools such as vi(m), ctags and cscope to navigate a large source code base.

Now I work in a windows based development environment (all the build tools and toolchain works on windows only), in my old age I actually have started to prefer 'good' (subjective I know) GUIs - so ctags and cscope though good tools aren't quite what I'm looking for.

+2  A: 

You can't find anything better then SourceInsight

I've used SourceInsight on the code base for Motorola cell phones OS which is few millions lines of code.

Also have a look at scitools products

aku
+2  A: 

Take a look at OpenGrok. We use it internally and I'm rather impressed by it.

Rotem
+1  A: 

A language-sensitive source code search engine can be found at SD Source Code Search Engine. It can handle many languages at the same time. Searches can be performed for patterns in a specific langauge, or patterns across languages (such as "find identifiers involving TAX"). By being sensitive to langauge tokens, the number of false positives is reduced, saving time for the user. It understands C, C++, C#, COBOL, Java, ECMAScript, Java, XML, Verilog, VHDL, and a number of other languages.

Ira Baxter