Source Insight – version 4.0.0126

Source Insight

Version 4.0.0126 - November 28, 2022

Fix: Crash: Regression bug introduced in 4.0.0125 could cause a crash when using the Jump To Definition or Jump To Prototype commands when only white space or a whole line was selected.


Source Insight – version 4.0.0125

Source Insight

Version 4.0.0125 - November 22, 2022

Fix: C# expression-bodied member functions were not recognized.

Fix: C/C++ Preprocessor conditional values using hex numbers were not working: eg: #if ABC < 0x100

Fix: C++ and C#: various parser fixes.

Fix: Some symbol lookups were not working.

Fix: Limit recursive symbol lookups for symbols that have direct or indirect recursive definitions.

Fix: Crash when adding a large number of Edit Condition symbols to a project.

Fix: Performance improvement when a project contains a large number of conditional values set by Edit Condition.

Fix: Better error handling for exceeding limits with large projects.

Fix: In the Context window and the File Compare window, the overview would not close if you right-click on it and select 'Hide'.

Fix: Pasting text now ensures the resulting new lines are scrolled into view.

Change: The Context window now shows the definitions of symbols selected in the File Compare window.

Change: The Relation window now shows results of symbols selected in the File Compare window.

Change: Performance improvement synchronizing projects by avoiding unnecessary project data writes.

Changes Minor changes to some toolbar buttons to work better on dark backgrounds.

Change: Source Insight Macro Language: The == and != operators now compare numbers differently. If both operands are numeric decimal or hex, then they are compared as numbers instead of as strings. The relational operators, such as <, <=, >, and >= already do this.

Deactivating the License

When you deactivate the license, it means that Source Insight can no longer be used on the computer. You are free to activate it again on the same computer, or a different computer.

Make sure you save the license serial number if you want to activate it again. Once you deactivate it, the license information is deleted from the computer.

To deactivate the currently installed license:

Run Source Insight. If it is already running, select Help > Manage LicenseIn the License Management window, select the option to deactivate the license on this machine:

 Click Next and click Yes to confirm you want to deactivate it:

The following message will appear to tell you the license has been deactivated:

After you click OK, the License Manage window appears as though you have no license active, and you can either enter the license serial number again, or import a license file, or simply exit the program. The option to start a 30-day trial now will not work if you already used a trial license before.


Deactivating the License from the Command Line

You can also use the following command line to deactivate the current license instead of using the dialog boxes.

sourceinsight4.exe -reset-license

This will deactivate and delete the license on the computer. The next time Source Insight runs, it will prompt to activate the license. This option is effectively the same as selecting Help > Manage License and selecting "Deactivate license". If a network connection exists, it will inform the license server that the license has been deactivated.

Importing a License File

If you received an offline license file from us, use these instructions to import that license file into Source Insight. The offline license file lets you activate the license without a network connection.

We email the license file to you as an email attachment. Save the attached license file to your local drive or somewhere on your internal network that your computer can access.

Importing the License File

Run Source Insight. If it is already running, select Help > Manage LicenseIn the License Management window, select the option to import a license file:

 Click Next and navigate to the license file you just saved, and open it.

If the license file is valid, it will be imported and your copy of Source Insight will now be activated. You should see this message:


Source Insight – version 4.0.0124

Source Insight

Version 4.0.0124 - February 21, 2022

Fix: Improved auto-completion when typing the name of a local variable or function parameter. Parameters and local variables appear first in the list.

Fix: Relation Window could cause the program to pause for several seconds if it was processing an identifer that had 1000s of matches.

Fix: Import External Symbols - Import from INCLUDE path did not support Unicode paths, and could crash if the INCLUDE environment variable was undefined.

Fix: Python: Function return annotations using the -> syntax was not parsed correctly.

Fix: Python: Relative imports were not recognized correctly.

Fix: Python: Renaming a python file now causes a re-parse of the file.

Fix: C++: was not able to jump from a member function declaration inside a class to the member function definition outside of the class if the definition was in the same file as the class declaration.

Fix: C++: was not recognizing variable declared in an 'if' statement.

Fix: C++: range-based 'for' statements: the iterator variable's auto type is now recognized.

Fix: C++: was not recognizing some declarations that used attributes such as [[deprecated]] and others.

Fix: C++: improved resolution of types when smart pointer template classes are used, such as unique_ptr<>.

Fix: C#: the 'ref' and 'readonly' keywords are now parsed correctly.

Fix: C#: foreach statements: the iterator variable's type is now recognized.

Fix: Sometimes using Jump To Definition would jump, then jump back to the original location.

Fix: Project Report could crash.

Fix: Add and Remove Project Files: You can type in a wildcard filter, such as *.h and press Enter to filter the files that are to be added. This was only working in the project's root directory. It did not respect the filter if you added a whole tree including subdirectories.

Fix: Makefile parsing: now recognizes 'export' keyword on definitions.

Fix: Style Properties: The Expanded character spacing format is not supported if you are using a monospaced font with ligature combinations. A spacing bug was fixed if you combined these options.

Change: Project Report has a new Info... button which invokes the new Project Info command. It displays statistics about the current project, including any errors that were logged.

Change: You can choose the color of visible tabs and spaces by editing the "Visible tabs and spaces" style in Options > Style Properties. You must enable that mode with View > Visible Tabs and Spaces to see them.

Change: New option in Tools > Reformat Source Code: In the Layout and Flow tab: "Keep '} else' on same line". This keeps the 'else' keyword on the same line as the preceding closing } brace. This allows formats like this:

if (c) { 
} else {

Change: better detection of too many symbols or index entries in a project.

Change: revised some of the default visual theme colors.

Change: updated the code signing certificate on the sourceinsight4.exe file and the installer file.

Change: A new Advanced Option was added to disable the use of memory-mapped files for text files and some data files. This may be helpful for some users that run with file system extensions or encryption which is not stable with memory mapped files. To disable memory mapped files, hold down CTRL while selecting Options > Preferences. The Advanced Options will appear. Tick the options "Disable memory mapped files" and "Disable memory mapped database files". Performance is reduced a little. Background: Some users have reported an issue where Source Insight freezes and cannot be closed even with Task Manager. Using dump files kindly provided by some users, we have traced this to the system freezing inside the WinAPI CreateFileMapping. The exact reason is unknown, but the effected users were using a file system encryption product. If anyone has more information or thoughts on this subject, please contact us

Changing the Source Insight Data Folder Location

Source Insight stores its project and configuration data files by default in the "Documents\Source Insight 4.0" folder, where "Documents" is the Windows user Documents folder. Each Windows user account has its own Documents folder.

If your Windows user Documents folder has been relocated to a remote drive, for example on OneDrive, we recommend that you move the Source Insight data folder to somewhere on your local drive.

The Source Insight project data files should be on a local drive for best performance and reliability.

To place Source Insight files in a different location, select Options > Preferences > Folders and change the Main User Data Folder to a new location that is in a local, non-network folder. When you edit the main folder item, the other folders items change automatically to be sub-folders of the main folder. In this example, we created a folder "C:\Source Insight 4 Data" and set the main folder there.

Note: If there are multiple users on the PC, you will need to specify a different folder for each user. The folder options in Source Insight are stored separately for each user.

When you use the Folder Options dialog, Source Insight will ask you if you want to move the contents of the folders too.

If you are having problems and cannot run Source Insight to get to the Folder options dialog, you will have to edit the Windows Registry. Run regedit.exe and navigate to HKEY_CURRENT_USER\Software\Source Dynamics\Source Insight\4.0\Paths. You will see entries there for each folder option.

Edit each path string to point to an existing location that is in a local folder. If you edit the registry directly, the folder contents won't be moved. You will have to copy the contents manually.

Source Insight – version 4.0.0120

Source Insight

Version 4.0.0120 - November 12, 2020

New: Added support for monospaced programming fonts that use ligatures for special character combinations. Example fonts are Fira Code and Jet Brains Mono. There is also a display preference that enables font ligatures. It is enabled by default, but you might want to disable it to show a font without its ligatures. To access the option, select Options > Preferences > Display and set the item "Enable font ligatures for character combinations" to your preference.

Note that Source Insight has had a feature for a long time that substitutes certain operators with symbols. For example -> is replaced with  . To control it, select Options > Preferences > Syntax Decorations. The syntax decorations can be used in combination with the new font ligature support.

Also note that some fonts use make use of the font leading area. Source Insight has an option that reduces the font leading in order to condense more lines vertically.  See Options > Preferences > Display > Spacing > "Smaller line heights". Disable that option if you are using a font that has glyphs that extend into the leading; otherwise the top or bottom of some characters might be clipped out.

New: When a file changes externally, the Reload File prompt appears. There are new buttons in the prompt: Yes and View reloads the file and activates its window.  Yes and Compare makes a backup of the current file buffer, reloads the file, and uses the File Compare panel to show the differences. If you don't want to keep the changes, you can restore from the backup file. See the next item.

New: File > Open Backup File there are new buttons: Restore File loads the selected backup into the current file buffer. The buffer remains unsaved, and it is possible to undo. Compare opens the File Compare panel to show the differences between the current file buffer and the selected backup file. Tools > Compare With Backup also has a similar Restore File button.

Fix: Source Insight could pause for several seconds periodically if you have many project files on a remote drive. The pause was caused by the Project Folder Browser panel. The Folders panel now populates in a separate thread. 

Fix: Source Insight could sometimes prompt to reload a file that changed, even if the file didn't change. It was not consistent, but this only would happen if the file was on a network drive.

Fix: Reformat Source Code: statements using a C-style cast caused an incorrect line break after the cast.

Fix: Searching for a long string could crash.

Fix: Misc smaller bug fixes.

Source Insight – version 4.0.0118

Source Insight

Version 4.0.0118 - August 10, 2020

Fix: In some situations, changing screen resolutions or monitors could cause docked panels to get positioned incorrectly.

Fix: The end-of-line character(s) might not be preserved if you used the Paste command and it changed the indent level.

Fix: Auto-complete was not proposing struct members if the struct was anonymous and nested inside another struct and the nested struct was used to declare a member of the outer struct. eg:

struct Outer { struct { int member_foo; } data; }; 
struct Outer an_outer; <-- member_foo not proposed

Fix: Lookup References & Smart Rename: if you selected a (non-class member) function prototype and performed the operation, Source Insight would prompt you to choose either the function prototype or the function definition with the same name. Now it assumes you are referring to both. This already worked correctly for class member function prototypes vs. member functions.

Fix: C++: Using the = default or = delete keywords after a member function definition outside of the class body was not recognizing the function. Eg: ClassFoo::ClassFoo() = default;

Fix: Overview scroll control: the code popup was not working.

Fix: Other stability fixes.

Source Insight – version 4.0.0116

Source Insight

Version 4.0.0116 - July 3, 2020

End-of-Line Characters: A number of fixes and enhancements were made to handle mixed end-of-line (EOL) sequences:

  • If you open a file that has a mixture of line endings, Source Insight will retain the line endings and not change them when you save the file.
  • You can use File > Save As and select a new EOL format to save and change the line endings to the selected format.
  • When you open a file with mixed line endings, you will get a prompt to normalize and fix the line endings. You can choose at that point what EOL format to use. If you don't want this prompt, you can enable or disable it from Options > Preferences > Files with the option: " Ask to fix inconsistent line endings". It is enabled by default.
  • You can fix inconsistent EOL formats in an open file buffer by selecting Edit > Special Edit > Normalize End Of Line Characters; you can choose the EOL format. You can also select whole lines and only process the selected lines.
  • The default EOL format set in Options > Preferences > Files is used for new files that you create in Source Insight. Previously it was also used on any lines you edited in a file. Now, editing a file that you opened retains the EOL format of the original line.
  • You can force all files to be saved with the default EOL format by enabling a new option in Options > Preferences > Files: "Convert to default line ending format when saving". This option is disabled by default. It converts all EOL sequences to the default setting whenever you save a file.
  • You can make the EOL characters visible by selecting View > Visible End Of Line. The EOL visibility is controlled per file type in Options > File Type Options. The display formatting of the EOL marks are controlled by a new style: "End of Line". You can edit this in Options > Style Properties. For example, you can change the background color or size. 
  • There are 2 options for how the EOL marks are displayed. You can set the option in Options > Preferences > Syntax Decorations.

File Type Options - Reorganized the dialog box; Added "Visible End of Line" option, and changed the Screen/Printer Font buttons to use a mini-menu to select fonts.

Context Window: clicking on a local variable or function parameter highlights references within the function. Note: the highlights use the style named "Reference Highlight" from Options > Style Properties.

Context Window: clicking on the toolbar button for "Show in Relation Window" now opens the Relation window if it is not already visible.

Replace Files and Smart Rename: Files that were opened and changed by the replace/rename operation were left open as unsaved file buffers. Now the changes in those files are saved back to disk. Prior to this change, after a Replace Files operation, some changes might not be saved to files unless you used the File > Save All command.

General Display: Resizing the program window very small or narrow would cause docked panels to be closed if they got too small. This was by design, but has now been changed so the panels do not close. This avoids layout problems when moving the program window between monitors with different sizes or resolutions, or when waking from sleep/hibernation, or when connecting to a different monitor, or remote desktop.

File Compare panel: now syncs to the current selection in the Directory Compare panel, so you can use them side by side and they behave as a whole. Also improved responsiveness of the File Compare panel.

File Compare panel: the Copy Line Right/Left feature was not copying all the lines in a block if you selected a single line within the block.

Relation Windows: Changing the screen resolution, switching to a new monitor, or sometimes waking from sleep/hibernation would cause the Relation window(s) contents to disappear if the Relation Window was locked.

Relation Window: fixed a performance problem if you selected a language keyword or other common "stop" word that would cause a lot of extra work.

Overview scroller (the mini-view): fixed a bug where it might not respond to clicks if some parts of the source file were collapsed using the outlining features.

Enhanced vertical scroll bar: Added some visual updates; added an option to highlight the current function; Shift-Key plus mouse-click will scroll to the clicked position; reduced flickering of code tip window that displays while dragging the thumb control.

JSON files: fixed a parsing bug where it did not show symbols if the JSON contained an empty array within it. 

Source Insight – version 4.0.0114

Source Insight

Version 4.0.0114 - April 27, 2020

Fix: Snippet Properties: fixed a number of bugs when editing the text of the snippet.

Fix: The Check for Updates command could cause a crash for some users behind a network proxy. The same bug could cause the program to crash a few seconds after launching when it was checking for an update in the background. 

Fix: Other stability fixes.