Skip to content

Searle/raxref

Repository files navigation

Raxref - Simple, lightweight and fast Cross Referencing
=======================================================

Raxref cross references the source files of your project for you.

It's REALLY REALLY simple to use - this is how it goes:

1. Call Raxref and tell it where your source files are and where to put
   the generated files.
2. Point your web browser to the generated main html file.

That's it. Enjoy your new web application!

(Or, write a simple conf file, or modify and use one of the distributed
one.)

Some Details:

Raxref was inspired by tools like LXR, LXRng and MXR. These are all
great tools but are rather complicated to use, partly because of the
many additional requirements or because they're to specialized (MXR).

Raxref only needs a reasonable new Perl to run. It can cope with any
kind of source language because it's dead stupid and doesn't try to
understand the code it's cross referencing.

Raxref consists of two simple parts, an analyzer (Perl) and a runtime
(JavaScript).

The analyzer goes through your source files and takes hold on everything
that looks like a token. Some filtering is done, and some goodies like
POD detection. Then a load of files is written to the output directory,
consisting of a main html file, the runtime requirements and lots of
data files. This is done pretty fast on the first run, and even faster
in later runs because of caching.

The generated web application includes the runtime. Basicly you just
have to open it with a browser(*) and use it. You'll see different
panels showing the project, project sections, source files, and the
cross references. Every panel type has a color code and links to a panel
have the same color. You may resize the panels.

Optionally, you can write a small configuration file inside of which you
may define different sections of your project. You'll find examples in
the "conf" directory. For more information, type "./rabak --man".


(*) Raxref makes use of some CSS 2/3 features that older browsers don't
support. Tested with FF3 3.0.7, Safari 3.2.2 and Chrome 2. Will propably
not work with any IEs, they are rubbish anyway.


Licences:
=========

Please look at the LICENSE* files


TODO by priority:
=================

- UI: Remove 'source:' Prefix whereever possible
- Add "include" detection
- Deep Link support
- JS: Add "new source window", "new xref window"
- Add Project Meta Info e.g 'meta author Blah', 'meta url parrot.org'...

TODO misc, unsorted:
====================

- Add Project description
- HTML Encoding
- Analyse Shebang for file type detection
- Force analysis if conf file changes
- Optimize File scanning for PHP
- Fix the FIXMEs
- Include Raxref Version in output
- Add conf directive for sections: "filetypes c99 perl php html"
- Make conf direcive 'token_threshold' section-specific
- Xref: Load visible files first
- Xref: List least indented first
- "--clean" option to clean output directory
- Make several Async-GETs (3?) simultaniously
- Support JavaDoc
- JS: Add Slot dragging
- Add simple GIT and SVN-Support ("source git://..")
- Add tab-width directive for tab expansion. Now hard-coded with 8, but vi's 'tab-width' supported

DONE:
=====

- CSS: Finish color coding
- Add Xref-Keyword Search
- JS: Add Slot resizing
- Add a simple possibility to build a rexref web app without a conf file
  e.g. raxref --source some/path (auto-include conf/std.conf)
- Implement conf directive "omit"
- Tab expansion: Use MXR code

About

Raxref - Simple, lightweight and fast Cross Referencing

Resources

License

Unknown and 3 other licenses found

Licenses found

Unknown
LICENSE
Unknown
LICENSE.jQuery
Unknown
LICENSE.jQuery-UI
Unknown
LICENSE.jQuery-scrolltTo

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published