This is Source-Navigator NG, an IDE for C/C++/Fortran/Java/Tcl/PHP/Python
and a host of other languages. It includes powerful
source code comprehension features that help a developer understand
complex relationships between elements of a program's source.
Source-Navigator NG is a fork of the original Source-Navigator and it is
released under the terms of the GPL; see the COPYING file for more
information about the GPL.
The Source-Navigator NG project is hosted at
A number of public mailing lists are available to answer general end
user questions, as well as developer's questions. Go to the project
website to find more information about the mailing lists.
One can find documentation in the snavigator/doc/html
directory. Documentation is available in HTML format only.
Consult the INSTALL.TXT file to learn how to build and install
binaries of Source-Navigator.
Consult the CHANGELOG file to learn about recent modifications to
We have removed the license manager from Source-Navigator. You will no
longer need to have a license key to run this product.
Access to Cross-Reference Information
- Source-Navigator parses and builds a project database in two steps.
The first step is to build the project's symbol tables. A progress
bar is displayed during this time, when complete, the application
will display the browser windows. Phase 2 is when the cross-
referencing (XRef) info is computed. Source-Navigator will continue
to build the cross reference database in the background. While
building the cross reference database, the cross reference icon will
not be accessible in the toolbar, and the application will be less
responsive. Once the cross reference database is built, the
application performance will return to normal. You can locate such
identifiers with the Grep tool.
C Parser Issues
- C declarations that are generated by a macro are not detected
correctly by the C and C++ parser. For example:
#define EXTERN(type, array) extern type array
In this example, the parser should pick up information about a global
variable called "mybuffer" whose type is char. However, it doesn't.
Tcl Cross-Referencing and Common Tcl Commands
- The following Tcl, Tk, and [incr Tcl] common commands are not put into
the cross-reference (XRef) database:
append eval itcl_class objects string
args exists itcl_info parray switch
array expr itk previous this
binary file iwidgets private tkinfo
body for join proc unset
break foreach lappend protected uplevel
catch format lindex public upvar
class gets local rename variable
common glob lrange return virtual
concat global lreplace regexp vwait
configbody if lsearch regsub while
constructor incr lsort scan winfo
continue info lstat set @scope
default inherit method source #auto
delete isa namespace split
destructor itcl object stat
In Windows Menus, the '^' symbol means Ctrl and 'x' next to a
letter means Alt plus that letter.
Multiple Machine Issues
- If you build a project on machine A with sources rooted at /foo
and real path /disk/user/foo, Source-Navigator will store these
files in the project as being rooted at /disk/user/foo, not /foo.
If you try to access these files from machine B, where
/usr/disk/foo is not visible, you will get an error.
- If you instruct Source-Navigator scan /usr/include for C and C++ projects,
the contents will be machine specific. It is important to keep
these issues in mind when accessing common projects from different
- If you have a heterogeneous environment, or if two machines have
a different perspective on the disk/filesystem layout, there may
be problems sharing projects between the two machines.
- If Source-Navigator is built on a Digital UNIX system, projects
created by the Digital UNIX system will not be readable on other
operating systems, and projects created by other operating systems
will not be readable on a Digital UNIX system.
Using CVS as a version control system
- In order for CVS to work properly, your project file needs to be
one of two places:
- In the same directory as the source files. This only works
if your project has no subdirectories.
- In the directory where the toplevel of your source tree is.
Basically, the relative path from your project to each of your
source files has to be the same as the relative path from the
CVSROOT to the files on the repository.
Running the generated executable on UNIX
When configuring your executable command line in the Edit Target dialog,
if your executable expects stdin or terminal input, the application will
hang waiting for the input. To fix this, add a command like:
xterm -e myapp
in this dialog. Make sure that xterm is on your path. Now, when you hit
"Run" from the Make window, your application will run.
If you need to debug your application with Insight, however, you will need
to remove "xterm -e" from your command line in the Edit Target window.