Skip to content
Reborn cscope extension for emacs
Emacs Lisp
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
LICENSE
README.org
rscope-nav.el
rscope.el

README.org

Introduction

This is “yet” another interface to cscope tool (http://cscope.sf.net) for emacs.

It provides the same information as its backend cscope :

  • what functions are calling a function
  • where is a global symbol
  • what is the calling hierarchy of a function

Usage

Quick-start

  1. Download rscope.el
  2. Evaluate it
    • (load “rscope.el”)

Source browsing

Once loaded, each C/C++ file will be offered all the “C-C s” key prefix bindings, providing access to the rscope functions.

You can experiment by :

  1. Have a cscope database generated somewhere
  2. Load a C file
  3. Use a command, for example type “C-c s g”

Global keys launching source browsing

All keybindings use the “C-c s” prefix:

C-c s sFind symbol.
C-c s =Find assignments to this symbol
C-c s dFind global definition.
C-c s gFind global definition (alternate binding).
C-c s cFind functions calling a function.
C-c s CFind called functions (list functions called from a function).
C-c s tFind text string.
C-c s fFind a file.
C-c s hFind calling hierarchy of a function
C-c s nOpen rscope navigation tool

The Result buffer keys

  • Normal keystrokes :
    • Use “n” to navigate to next entry in results
    • Use “p” to navigate to previsous entry in results
    • Use ENTER bury result buffer and switch to the previewed entry
    • Use “q” to bury result buffer and switch to other window.
  • Advanced keystrokes:
    • Use SPACE to preview an entry
    • Use Ctr-ENTER to bury result buffer, and replace it by the selected entry
    • Use number <N> to develop current leaf’s subtree up to Nth level

The rscope-nav tool

rscope-nav-mode is a major mode to help viewing and manipulating rscope marker ring. It displays rscope markers from the newest to the oldest and provides the following bindings:

nNext entry
pPrevious entry
qQuit window
gRefresh
kKill current entry
KFlush marker ring
sSet current entry as the newest one. All newer entries are deleted
ENTERGoto current entry
Shift-ENTERGoto current entry in the same window
SPACEPreview current entry

Goal

It is born to challenge its cousins :

  • xscope
  • ascope
  • bscope

The main advantages of this interface WRT to its elders are :

  • cscope process are spwaned only once for a give cscope.out
  • multiple cscope database are allowed
  • automatic cscope database is provided
  • previews of results
  • buffer number limitation (ie. close preview buffers, close buffers with pop-mark when they haven’t been touched)

Once one of the cousins will have achieved the same functionnalities, it will slip in slumber.

You can’t perform that action at this time.