* Overview

This is an emacs interface to the 'cscope' source cross-referencing tool
(http://cscope.sf.net). It can answer such questions as

- Where is this symbol used?
- Where is this function called?
- Where is this variable set?
- Where is this file #included?

The 'cscope' tool does the actual searching and lookup, while xcscope.el
provides a convenient interface.

* Provenance

This is a continuation of the xcscope.el (by Darryl Okahata) that ships in the
CVS tree of cscope itself. The code in the cscope tree is stable, so /this/ tree
expands on the original source, fixing various bugs and adding features.

* New features relative to the cscope CVS tree

- *(cscope-setup) must be called to enable cscope-minor-mode in C and C++ major
  modes*

- New searches are appended to the *cscope* buffer, instead of overwriting. The
  user thus sees a history of cscope search results in this buffer, and is able
  to navigate through all of them. There is a size limit to keep the buffer from
  growing out of control.

- The *cscope* buffer can be navigated and edited similarly to emacs Diff buffers:

  - n/p navigates over individual results
  - k kills individual results

  - N/P or M-n/M-p navigates over file results
  - M-k kills file results

  - M-N/M-P navigates over result sets
  - M-K kills result sets

  - Navigation from outside the *cscope* buffer (C-c s n/p/N/P) is restricted to
    the result set at (point)

- Previous searches can be re-run with the 'r' key in the *cscope* buffer. These
  are written in-place, overwriting the older results.

- Fuzzy matching is now enabled/disabled for specific types of searches. This
  was implemented earlier, but the implementation had a bug and wasn't working

- xcscope.el can now work remotely over TRAMP

- The cscope-index output now goes to the echo area instead of an explicit new
  buffer that the user must deal with

- Fuzzy searching now works for non-trivial regex searches

- The mouse face respects cscope-use-face

- Better mouse support:
  - button3 opens a popup menu that runs prompt-less searches
  - shift-button3 reruns the last search on the point. This is thus even more
    prompt-less

- Shift-return or Shift-mouse2 now open the result in the same window as the
  *cscope* buffer

- Some bold highlighting in the *cscope* results: the sought term, the search
  directory

- Removed the external 'cscope-indexer' script; this is now handled inside
  xcscope.el. Additionally the list of source directories to ignore and the list
  of filename extensions to index are now customizable in the emacs
  customization interface

- Various cscope options (kernel mode, inverted index, etc) can now be accessed
  through the emacs variables

* License

xcscope.el is distributed under the terms of version 2 (or later) of the GNU
General Public License

* Contact

The maintainer is Dima Kogan <dima@secretsauce.net>
