update README

This commit is contained in:
anon 2024-11-14 15:51:40 +01:00
parent 4c27e8d99e
commit 5dd0410fb6

124
README.md
View File

@ -2,21 +2,35 @@
> 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,
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.
# Demo
## Table of contents
- [Demo](#demo)
- [Features](#features)
- [Interface](#interface)
- [Usecases](#usecases)
- [Improvements](#improvements)
- [Installation](#installation)
- [Gentoo](#gentoo)
- [From source](#from-source)
- [Quick start](#quick-start)
- [Configuration](#Configuration)
## Demo
![demo](documentation/csope.GIF)
# Before/After
## After
### Before/After
#### After
![after](documentation/after.jpg)
## Before
#### Before
![after](documentation/before.jpg)
# Features
#### Search for
## Features
**Search for**
+ symbol
+ global definition
+ assignments to specified symbol
@ -26,18 +40,22 @@ Csope is alive and well.
+ egrep pattern
+ file
+ files #including specified file
#### ...and open with your editor.
#### Batch change search results **interactively**.
#### Save/load/pipe results.
**...and open with your editor.**
**Batch change search results _interactively_.**
**Save/load/pipe results.**
#### It fully supports:
+ C
+ Lex
+ Yacc
#### Partially supports
#### Partially supports:
+ C++
+ Java
+ Specification and Description Language
# Interface
## Interface
<-- Tab -->
+--Version-----------------Case--+ +--------------------------------+
A |+--------------+---------------+| |+------------------------------+|
@ -51,16 +69,20 @@ Csope is alive and well.
V |+--------------+---------------+| |+------------------------------+|
+---------------------Tool Tips--+ +--------------------------------+
# Usacases
## Usacases
Csope shines at exploring stranger and obscure code bases due to its TUI.
It sometimes gets mislabelled as a code navigation tool, but the original documentation describes it best as a "code browsing tool".
It sometimes gets mislabelled as a code navigation tool,
but the original documentation describes it best as a "code browsing tool".
Many tools can jump you to a definition or grep for patterns,
but Csope is unique in that it allows for those and many other functionalities while providing you with a very comprehensible list of all results,
but Csope is unique in that it allows for those and many other functionalities
while providing you with a very comprehensible list of all results,
ready to fire up your editor at just the spot.
An example of its excellence is this project. The Cscope code-base used to be a total mess,
fixing it would have been a lost cause, if not for Cscope itself. Well, Csope now.
fixing it would have been a lost cause, if not for Cscope itself.
Well, Csope now.
## Improvements/Changes
# Improvements/Changes
## User side
+ Renamed the program, because "cscope" is annoying to type
+ Improved tui
@ -68,52 +90,58 @@ fixing it would have been a lost cause, if not for Cscope itself. Well, Csope no
## To the code
+ Nuked autoconf, replaced with single Makefile
+ Reorganized the control flow
+ Encapsulated changes to the TUI into display.c
+ Encapsulated searching into find.c
+ Removed "scanner.l" which seems to be an ancient version (and redundant copy) of "fscanner.l" forgotten by all
+ Removed macro hell put in place to allow compiling on a dead badger
+ Encapsulated various functionalities
+ Removed macro hell used for compiling on a dead badgers
+ Reduced global state hell
+ Use stdbool instead of YES/NO macros
+ Saved kilobytes by stripping trailing whitespace
+ Removed dead code
+ ...and much more
# Installation
You will have to compile from source.
## Installation
## Gentoo
Add [my overlay](https://bis64wqhh3louusbd45iyj76kmn4rzw5ysawyan5bkxwyzihj67c5lid.onion/anon/agvxov-overlay.git)
and install using portage.
## From source
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)
+ ncurses
+ GNU Readline
+ GNU History (should come with Readline)
+ Lex (or GNU Flex)
+ Yacc (or GNU Bison)
Just run:
make
```sh
make
```
This will yield the executable "csope", which you are free to do whatever with.
Hint:
```sh
cp csope /usr/bin/
```
cp csope /usr/bin/
# Quick start
## Quick start
Start browsing your project by running csope over it's source dir.
csope -s source/
```sh
csope -s source/
```
# Configuration
## Readline
## Configuration
### Readline
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:
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
```
$if Csope
# <whatever>
$endif
## Colors
### Colors
All can be configured sucklessly under "config/colors.h". Hopefully the comments are self evident.
# Future features / contributor wishlist
+ providing support for other languages by integrating new lexers (e.g. ctag's)