You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

README.md 3.9KB

10 months ago
9 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
9 months ago
9 months ago
10 months ago
9 months ago
9 months ago
8 months ago
9 months ago
9 months ago
8 months ago
9 months ago
10 months ago
9 months ago
10 months ago
9 months ago
10 months ago
9 months ago
10 months ago
9 months ago
10 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
10 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
10 months ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. # Csope
  2. Fork of Cscope version 15.9, with various improvements, because cscope is good and shall not be forgotten.
  3. While the original's mainentence seems abandoned and as far as I can tell you need a PhD in autoconf to compile the latest version,
  4. Csope is alive and well.
  5. # Demo
  6. ![demo](documentation/csope.GIF)
  7. # Before/After
  8. ## After
  9. ![after](documentation/after.jpg)
  10. ## Before
  11. ![after](documentation/before.jpg)
  12. # Features
  13. #### Search for
  14. + symbol
  15. + global definition
  16. + assignments to specified symbol
  17. + functions called by specified function
  18. + functions calling specified function
  19. + text string
  20. + egrep pattern
  21. + file
  22. + files #including specified file
  23. #### ...and open with your editor.
  24. #### Batch change search results **interactively**.
  25. #### Save/load/pipe results.
  26. #### It fully supports:
  27. + C
  28. + Lex
  29. + Yacc
  30. #### Partially supports
  31. + C++
  32. + Java
  33. # Interface
  34. <-- Tab -->
  35. +--Version-----------------Case--+ +--------------------------------+
  36. A |+--------------+---------------+| |+------------------------------+|
  37. | || Input Window | Result window || || ||
  38. | |+--------------+ || ? || ||
  39. || Mode Window | || ----> || Help ||
  40. % || | || <---- || ||
  41. || | || ... || ||
  42. | || | || || ||
  43. | || | || || ||
  44. V |+--------------+---------------+| |+------------------------------+|
  45. +---------------------Tool Tips--+ +--------------------------------+
  46. # Usacases
  47. Csope shines at exploring stranger and obsecure code bases due to its TUI.
  48. It sometimes gets mislabeled as a code navigation tool, but the original documentation describes it best as a "code browsing tool".
  49. Many tools can jump you to a definition or grep for patterns,
  50. but Csope is unqie in that it allows for those and many other functionalities while providing you with a very comprehansible list of all results,
  51. ready to fire up your editor at just the spot.
  52. An example of its excelence is this project. The Cscope codebase used to be a total mess,
  53. fixing it would have been a lost cause, if not for Cscope itself. Well, Csope now.
  54. # Improvements/Changes
  55. ## User side
  56. + Renamed the program, because "cscope" is annoying to type
  57. + Improved tui
  58. + GNU Readline/History integration
  59. ## To the code
  60. + Nuked autoconf, replaced with single Makefile
  61. + Reorganized the control flow
  62. + Encapsulated changes to the TUI into display.c
  63. + Encapsulated searching into find.c
  64. + Removed "scanner.l" which seems to be an anchient version (and redundant copy) of "fscanner.l" forgotten by all
  65. + Removed macro hell put in place to allow compiling on a dead badger
  66. + Use stdbool instead of YES/NO macros
  67. + Saved kilobytes by stripping trailing whitespace
  68. + ...and much more
  69. # Installation
  70. You will have to compile from source.
  71. After you made sure you have the following (dev) libraries installed:
  72. ncurses
  73. GNU Readline
  74. GNU History (should come with Readline)
  75. Just run:
  76. make
  77. This will yield the executable "csope", which you are free to do whatever with.
  78. Hint:
  79. cp csope /usr/bin/
  80. # Configuration
  81. ## Readline
  82. The readline integratoin should be complete -please let us know if not-, except for your prompt being used, which could easily break the TUIs display.
  83. The rl_readline_name variable will be set to "Csope", so you may have conditional configurations in your .inputrc with the following format:
  84. $if Csope
  85. # <whatever>
  86. $endif
  87. ## Colors
  88. All can be configured sucklessly under "config/colors.h". Hopefully the comments are self evident.
  89. # Future features / contributor wishlist
  90. + providing support for other languages by integrating new lexers (e.g. ctag's)