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.