Skip to content

Source Insight – version 4.0.0107

Source Insight

Version 4.0.0107 - February 14, 2020


Fix: A Clipboard handling bug was introduced in version 4.0.0104 in December 2019. Sometimes Source Insight would not update the system clipboard, or would paste the wrong contents.

Fix: Misc Perl parsing and display bugs.

Source Insight – version 4.0.0106

Source Insight

Version 4.0.0106 - January 7, 2020


Fix: For pure ANSI C files, a nested struct's members are in the parent struct's scope. For example:

struct Outer { struct Inner { int hello; }; } an_outer; 
an_outer.hello = 1; // member "hello" is visible in Outer.

Fix: The following fix from version 4.0.0104 was not quite correct. It has been fixed: For ANSI C: in a nested struct, the inner struct name is also defined and in scope outside the outer struct, whereas in C++ it's defined only within the scope/namespace of the outer struct.

Fix: Relation Window regression bug appeared in version 4.0.0104 that caused references to anonymous struct members to not be found.

Fix: Relation Window: when showing references, a function could appear to refer to itself.

Fix: Lookup References and Relation Window was not correctly associating a variable with its initializer list.

Fix: Other small fixes.

Source Insight – version 4.0.0104

Source Insight

Version 4.0.0104 - December 9, 2019


Fix: C/C++: Some casts were not understood. For example: ((foo *)ptr)->member... Also added better understanding of static_cast<>, dynamic_cast(), etc.

Fix: C/C++: multiple declarations within a for-statement were not recognized. For example: for (int i = 0, j = 0; ... ; ...) { ... }

Fix: ANSI C: in a nested struct, the inner struct name is also defined and in scope outside the outer struct, whereas in C++ it's defined only within the scope/namespace of the outer struct. The "ANSI C" language type in Source Insight now supports this correctly. If you use pure C code, consider changing the File Type Options to associate *.c and *.h with the "C Source File" type, and not the "C/C++ Source File" type. (see File Type Options)

For example:

struct Outer { struct Inner { ... }; };
struct Inner foo; // you can refer to Inner outside of Outer in C

Fix: C/C++: Parsing bug when using a token macro that expands to a try or catch block.

Fix: Sometimes the Relation window and Search Results didn't show a proper function name, but would instead show something like "if (condition...)..." which is actually a snippet of an if or while statement contained within the function in question.

Fix: C#: some generic classes were not parsed correctly.

Fix: Auto-completion was not proposing struct members for some nested structs.

Fix: Perl: many fixes to parsing and syntax formatting.

Fix: If a block of code was collapsed, searching or jumping to a definition would not expand the blocks to reveal the target line.

Fix: Scrolling down using Page-Down, and then Page-Up did not return to the same line number at the top of the window.

Fix: In some conditions, you might be prompted to reload a file that has changed, when in fact the file had not changed.

Fix: Context window was tracking identifiers inside string literals. The default setting was supposed to turn this off.

Fix: Formatting: references to member functions were not always styled with the correct "Ref To Method" style.

Fix: File Compare window: some keyboard commands were not working.

Fix: Stability fixes.

Performance: Initial startup and Load Configuration was sped up.

Performance: Small speed up in Lookup References and Relation Window.

Performance: Improved display update speed while typing when the Overview control is visible.

New: You can disabled text scaling with CTRL+Mouse Wheel. Normally mouse-wheel plus the CTRL key scales text. Select Options > Preferences > General and use the option that reads "Allow Ctrl+Mouse Wheel to scale text".

New: License Installation command line options were added to help make automated installations easier. You can read about them in the Automated Installation topic in Frequently Asked Questions

Source Insight – version 4.0.0102

Source Insight

Version 4.0.0102 - October 31, 2019


Fix: Licensing: when using an offline license file, a message window could pop up that says "This page requires a secure connection which includes server authentication...". This was not supposed to happen and has been fixed.

Fix: Formatting: references to member functions were not always styled with the correct "Ref To Method" style.

Fix: C/C++: Sometimes Relation window and Search Results didn't show a function name, but would instead show something like "if (condition...)" which is a snippet of a compound statement contained within the function in question. Now it correctly shows the function name.

Fix: Crash when hovering the mouse over a file-tab when the file path was very long.


Source Insight – version 4.0.0099

Source Insight

Version 4.0.0099 - August 19, 2019


Fix: A significant stability bug that could cause unpredictable crashes has been fixed. We recommend that you update soon.

Source Insight – version 4.0.0098

Source Insight

Version 4.0.0098 - June 24, 2019


Fix: Project Settings: The "..." button used to browse for a folder was not saving the selection.

The following fixes were published previously in version 4.0.0097:

Fix: C++ was not correctly identifying classes, structs, and namespace with full qualified names using the :: operator. For example, namespace Foo::Bar { ... }

Fix: C/C++: nested inlined struct declarations were not working. For example: struct X { struct Inlined; };

Fix: C++: *.cc files are now included in the C++ File type by default.

Fix: C/C++: Using extern "C" { ... } nested withing another scope, such as a namespace, was not parsed correctly.

Fix: C++: Was not parsing function try blocks correctly. That is, when the try block encloses the whole function body. For example: Foo::Foo () try : bar(1) {...} catch( const SomeException &e ) {...}

Fix: C/C++/C#: enum declarations created duplicate enum values in the symbol pane at the left side of the window.

Fix: C++ alignas() directive was not being parsed correctly.

Fix: Java: lambda expressions were not getting parsed correctly.

Fix: XML: An single double quote inside a CDATA section caused the file to not parse. 

Fix: Python: Assigning multiple variables in one statement was not initializing variable definitions so the variables were not recognized.

Fix: Snippets: Inserting a snippet would not auto-indent it if the "Enable text variables when inserting" option was not enabled in the snippet.

Fix: Relation Window could on occasion cause the UI to pause while typing in a source file window, or in the Project Symbol List
panel, or in the auto-completion list.

Fix: Removing a Project left behind two index data files. All other data files were correctly deleted.

Fix: You might get a series of message boxes that you cannot avoid about not being able to open a file while Source Insight is idle. This would happen if you have the option enabled to highlight references to the selected symbol (found in File Type Options), and you moved a source file to a new directory without synchronizing your project.

Fix: Folder Browser dialogs (such as used in Project Settings to select the project source directory) were not selecting the correct folder in the tree when it opened.

Fix: If you are using an offline license file provided by Source Dynamics, and the license does not contain a user name, then the Help > About Source Insight window would incorrectly state that the license is not activated. 

Fix: Ctrl+A to "select all" in various lists was not working.

Fix: Project Folder panel: The Search Files command on the right-click menu was not working if you selected a directory in the directory list.

Change: The code signing certificate has been updated.

Source Insight – version 4.0.0096

Source Insight

Version 4.0.0096 - September 26, 2018


Fix: Snippet Editor - a bug was introduced in build 4.00.0095: while editing a snippet via the Snippet panel, typing a character would insert the character twice inside the snippet editor.

Fix: Perl parsing bugs.

Fix: Tweaked the project index file performance in large projects.

Source Insight – version 4.0.0095

Source Insight

Version 4.0.0095 - August 21, 2018


Fix: Wine: When running under Wine on Linux, there were display problems caused by the toolbars drawing incorrectly. This probably also fixes the same problem when running on Crossover on MacOS. Note: Source Insight is developed for Microsoft Windows, and is not officially supported on emulators such as Wine and Crossover.

Fix: Revised memory management for large project indexes. This should eliminate the "Out of memory" errors when using very large projects.

Fix: C/C++: Parsing bug when an #if, #ifdef, #else, or #endif statement ended with a /* comment that continued onto the next line.

Fix: C/C++/C#: A struct or class declared inside a function scope could cause its members to not be formatted correctly when referenced elsewhere inside the function.

Fix: C/C++/C#/Java: In some cases, a variable or parameter was given the wrong type if token macro substitutions happened on its declaration line.

Fix: C/C++: Display of comment was incorrect if // comment ended in a backslash continuation mark.

Fix: C++: Jump to Definition from a member function prototype inside a class template was not working.

Fix: Display of multi-line comments using /* and */ delimiters were displayed wrong if they started on the same line as a preprocessor statement such as #if or #endif.

Fix: Java: Was incorrectly parsing statically initialized arrays, such as: String [] test = new String []{"abc"};

Fix: Perl: Several parser fixes, including "our" and "my" variable declarations.

Fix: Python: Added support for "async def" coroutine definitions.

Fix: Window Tab Options: The option to sort by name was not being retained.

Fix: Relation Window: Clicking the Name heading to change the sort order, changed the sort, but did not retain the setting from session to session. It is saved in the layout file.

Fix: Creating a project in the non-default location could corrupt the file paths of the project files. The result is that you could not open project files.

Fix: Changing the Projects folder using Options > Preferences > Folders was not working correctly depending on the paths chosen.

Fix: Clicking and dragging quickly a tab in a panel group could cause the window to be positioned oddly while dragging it.

Fix: Project Search Bar: the Match Case option was not working if the "Word Fragments" option was enabled. Also, if you clicked the Advanced button and set options, the options were not reflected in the search bar check boxes.

Fix: Clips and Snippets that end with a blank line would have the blank line removed when pasted into a file.

Fix: Entering character codes in a source file window using ALT+nnn was not working.

Fix: Crash in Search & Replace: when using Perl-compatible regex and replacing the end-of-line ($) with anything on a blank line.

Fix: Page Setup settings were not being preserved and loaded from the configuration files.

Fix: Project Search Bar (and Search > Search Project) using Keyword Expressions - it was not respecting the options "Skip Inactive Code", "Skip Comments", and "Search Only Comments".

Fix: Selecting multiple files in Windows Explorer, then right-clicking and selecting "Open with Source Insight" would only open the first file.

Fix: Loading a file that had lines exceeding the max line length of 4092 would result in no symbol parsing in the file.

Fix: Invoking from the command line with file name arguments did not add the file to the File > Recent Files menu. Same problem happened when selecting a file in the Windows Explorer and selecting "Open with Source Insight".

Change: The Symbol Info command was added to the Context Window toolbar, and right-click menu.

Fix: Macro function RunCmdLine was returning an incorrect value. It now complies with the documentation and returns True if the process was launched successfully, and False if not. If the process sets an exit code, then you can call the new function GetRunCmdLineExitCode to obtain it.

New: Macro Functions:

GetRunCmdLineExitCode() : returns the exit code of the last process launched by calling RunCmdLine. This only works if the fWait parameter to RunCmdLine is set to True when called.

GetProjMasterFileList (hproj) : returns the path of the project's Master File List, or the empty string if a Master File List is not being used in the project.  hproj = the project handle, such as returned by NewProj or GetCurrentProj.

SetProjMasterFileList (hproj, sMasterFile) : Sets the path of the project's Master File List. hproj = the project handle, such as returned by NewProj or GetCurrentProj. sMasterFile = the new Master File List file-path. The file should exist already. Pass an empty string to turn off the use of the Master File List in the project. Note: the file list will not affect the project until it is synchronized, for example by calling SyncProj.

Source Insight – version 4.0.0093

Source Insight

Version 4.0.0093 - March 20, 2018


Fix: C++ regression bug started in version 4.0.0092:  Failed to find the correct return type of a function if the return type used a "smart" pointer template type, such as shared_ptr.



Source Insight – version 4.0.0092

Source Insight

Version 4.0.0092 - March 19, 2018


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.

Scroll To Top