From 5dd0410fb6585f57f5895b1b2f204cdcc4a0487e Mon Sep 17 00:00:00 2001 From: anon Date: Thu, 14 Nov 2024 15:51:40 +0100 Subject: [PATCH] update README --- README.md | 124 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 76 insertions(+), 48 deletions(-) diff --git a/README.md b/README.md index 73255ce..ba95d82 100644 --- a/README.md +++ b/README.md @@ -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 + # +$endif +``` - $if Csope - # - $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)