/tools-SourceNavigator-NG

Source Navigator NG is based upon RedHat's Source Navigator. Source Navigator is a source code analysis tool. With it, you can edit your source code, display relationships between classes and functions and members, and display call trees. Development Status: 5 - Production/Stable Environment: Win32 (MS Windows), X11 Applications Intended Audience: Developers License: GNU General Public License (GPL) Natural Language: English Operating System: Windows, Linux Programming Language: C, Tcl Topic: Software Development, Integrated Development Environments (IDE)

Primary LanguageCGNU General Public License v2.0GPL-2.0

tools-SourceNavigator-NG

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

http://sourcenav.berlios.de

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 Source-Navigator.

USING SOURCE-NAVIGATOR:

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[]

    EXTERN(char, mybuffer);

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

Windows Menus

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 locations.

  • 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.