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