
Source Insight is intended to help programmers edit, analyze and manage source code. In this regard, the program supports dynamic analysis of code written in various programming languages, like C++, C#, Java, Objective-C Perl, and many others.
The tool has a Spartan interface that does not have any “bells and whistles”. However, it is easily navigable. There is the main work area where the code is edited as well as a window that shows a tree structure of the component elements. In addition, the tool has a group of auxiliary panels that allow quickly browsing through your code as well as consulting other sources.
Source Insight has the ability to parse the code and build a database of symbols. This way, it can assist in the process of analyzing your code by displaying automatic contextual information. Another useful feature is the Relation window, where you can find the relationships between the symbols, in the form of hierarchies, call trees, and reference trees.
Fortunately, the program comes with various editing functions. For instance, it lets you find and replace strings, change between upper and lowercase and substitute spaces by tabs. As it indexes your source code, it can quickly find references to symbols in all your project. Besides, the product can complete identifier names automatically. In this respect, it is excellent that it allows navigating through function and variable names. The program also allows you to spot differences between two versions of the same code by displaying them side by side.
Finally, when you are done, you can generate a snapshot of the code to make it available for online browsing. It is possible to save all the files in a project to HTML files, which has the advantage of showing almost the same formatting as in the program itself.
All in all, Source Insight is definitely not a program for beginners. In the hands of expert users, it becomes a powerful tool for code editing, browsing and analyzing. The product is shareware and can be tried at no cost. However, if you are running on a low budget, its price may be well beyond what you are willing to pay.
v4.00.96 [Feb 21, 2017]
Fix: Crash when parsing some Perl files with long lines. This could happen during Synchronize Files, or when idle as the project is parsed in the background.
Fix: Auto complete finding wrong structure members in some cases when token macros are used.
Fix: Python: error parsing some import statements could cause the rest of the file to not parse.
Fix: Python: comment-only lines that start with '#' were incorrectly affecting the current indent/nesting level.
Fix: Auto-complete sometimes failed to work when member fields were defined with a token macro expansion.
Fix: Project Folder Browser panel, and in Project > Add and Remove Project Files: was unable to navigate down into a single folder whose name was longer than 64 characters.
Fix: C++: Failed to find the return type of a function if the return type used a "smart" pointer template type, such as shared_ptr.
Fix: C++: Global scope resolution operator :: was not always interpreted correctly.
Fix: C++: Failed to deduce the type of an array element in a template that implemented operator[].
Fix: Editing project-specific-conditions, and project-specific imports was allowed for read-only projects.
Fix: Project-specific configuration parts were not loading when you opened a different project.
Fix: View > Vertical Scroll Bar did not always show the scroll bar, if the vertical scroll bar was disabled in Options > Preferences > Windows, depending on whether the "enhanced" scroll bar was used or not.
Fix: Memory management problem when opening very large projects with over 50 million index entries.
Change: You can now set the Default font for the current file in the Style Properties. When you select the "Default" style, and pick a font, it sets the screen font of the current file, which is part of the File Type Options. It is equivalent to selecting Options > File Type Options and setting the Screen Font.
Change: Options > Preferences > Searching: "Automatically load selection into find pattern" has change its meaning slightly. If the option is disabled, the text at the insertion point or the selected text is never loaded into the search pattern. It used to load it if 1 or more characters were selected.