C source code browser. Fork of Cscope version 15.9, with various improvements.
Because CScope is good and shall not be forgotten. While the original's maintenance seems abandoned and as far as I can tell you need a PhD in autoconf to compile the latest version, Csope is alive and well.
Search for
- symbol
- global definition
- assignments to specified symbol
- functions called by specified function
- functions calling specified function
- text string
- egrep pattern
- file
- files #including specified file
...and open with your editor.
Batch change search results interactively. Save/load/pipe results.
- C
- Lex
- Yacc
- C++
- Java
- Specification and Description Language
<-- Tab -->
+--Version-----------------Case--+ +--------------------------------+
A |+--------------+---------------+| |+------------------------------+|
| || Input Window | Result window || || ||
| |+--------------+ || ? || ||
|| Mode Window | || ----> || Help ||
% || | || <---- || ||
|| | || ... || ||
| || | || || ||
| || | || || ||
V |+--------------+---------------+| |+------------------------------+|
+---------------------Tool Tips--+ +--------------------------------+
Csope excels at exploring strange and obscure codebases thanks to its TUI. It is sometimes mislabeled as a code navigation tool, but the original documentation describes it more accurately as a code browsing tool. Many tools can jump to a definition or grep for a pattern, but Csope stands out because it does all of that and much more while presenting a clear, comprehensive list of results, ready to launch your editor at the exact location of any entry. This project itself is a good example of that strength. The Cscope codebase used to be a complete mess, and fixing it would likely have been a lost cause without Cscope/Csope.
- Renamed the program, because "cscope" is annoying to type
- Improved TUI
- GNU Readline/History integration
- Nuked autoconf, replaced with single Makefile
- Reorganized the control flow
- Encapsulated various functionalities
- Removed macro hell used for compiling on dead badgers
- Reduced global state hell
- Use stdbool instead of YES/NO macros
- Removed dead code
- ...and much more
Add my overlay and install using portage.
After you made sure you have the following installed:
- ncurses
- GNU Readline
- GNU History (should come with Readline)
- Lex (or GNU Flex)
- Yacc (or GNU Bison)
Just run:
makeThis will yield the executable "csope", which you are free to do whatever with.
Hint:
cp csope /usr/bin/Start browsing your project by running csope over it's source dir.
csope -s source/The readline integration should be complete -please let us know if not-, except for your prompt being used, which could easily break the TUIs display.
The rl_readline_name variable will be set to "Csope",
so you may have conditional configurations in your .inputrc with the following format:
$if Csope
# <whatever>
$endif
All can be configured sucklessly under "config/colors.h". Hopefully the comments are self evident.

