Source Insight 3.5 Change History

This page describes recent changes to Source Insight, starting with the most recent release.

For full product features, please see the Source Insight product information page.

To download the latest update, go to the download page.

Version 3.50.0083 - June 7, 2016

Fix: Macro functions GetSymbolLocation and GetSymbolLocationEx were failing to find project files when the given symbol parameter was the name of a file.

Version 3.50.0082 - March 11, 2016

Fix: Display bugs fixed for Windows 10, high DPI displays, and using Windows magnification greater than 100%. In particular, resizing or moving docked windows did not draw correctly in those situations.

Fix: C/C++ #include statements: The Jump To Definition command would not open the file in the include statement if the file was in a subdirectory. For example: #include "subdir\header.h". Now the path in the include statement is evaluated relative to the project source root directory.

Fix: Relation window was not showing function call trees correctly for Visual Basic and Basic.

Fix: Replace command: the "Whole File" option setting is now preserved after pressing the Replace button.

Version 3.50.0081 - October 23, 2015

Fix: Display was corrupted if line numbers were visible, and window was horizontally scrolled, then resized.

Fix: Running a Custom Command with "Paste Output" option enabled and no file open could cause a crash.

Changes: Added support for several C++ and C# language items:

managed C++ keywords: __gc, __abstract, __delegate, __event, __property, __sealed, and __value, value, and ref.
enum base types. For example: enum MyEnumType : int { ... }
C++ and C# override and final specifiers
C# async keyword.
C++ const member declarations.

Version 3.50.0079 - September 25, 2015

Fix: When clicking and dragging to select text with the mouse, the highlighted section stopped updating on the screen after about 5-6 seconds.

Fix: Sometimes tool windows such as the Relation or Context window would disappear.

Fix: C preprocessor #define contants would not be found if they started with "if" or "else" or "end".

Version 3.50.0076 - Feb 19, 2015

Fix: Draft View was showing source code in monochrome. Draft view is supposed to show only color formatting, but not font or font size changes.

Version 3.50.0075 - Feb 11, 2015

Fix: Crash when searching with certain regular expression patterns.

Fix: Crash when synchronizing projects and building the search index, which was caused by very long identifier names.

Fix: When using Search and Replace and the replacement string was empty, then the search would skip over the next character.

Fix: Crash in some cases during project synchronization if an error occurred updating the symbol database for a particular source file. It now skips the problem file and continues with synchronization.

Fix: Searching with the "whole words only" option would not find matches if the search pattern contained multiple words. For example, searching for "dog cat" with "whole words only" would fail to find some instances.

Fix: Crash could occur if a display Style contained both a "font size" AND a "font scale" value.

Fix: Crash could occur when exiting Source Insight on Window 8/8.1.

Update: The C/C++ token macros (in the c.tom file) were updated with more definitions.

Update: Code signing certificate was renewed.

Change: Switched to InstallShield for the installer program. Be sure to run as an Administrator when you run the setup program.

Change: The default font was changed to Consolas, and the default syntax formatting styles were changed. This only affects fresh installs, so your existing settings won't change. If you want to reset to the new defaults, exit Source Insight. Go to the "Documents\Source Insight\Settings" folder and rename "Global.CF3" to something else. Restart SI.

Change: Several "custom language" extensions are now part of the installation. They get installed into the \languages folder. They are automatically added to the languages list available via Options > Document Options. These files were (and still are) available on our web site at

Change: Some default settings were changed.

Change: Added additional logging and checking during program initialization.

Version 3.50.0073 - June 20, 2013

Fix: Crash when searching with certain regular expression patterns.
Fix: When using Search and Replace and the replacement string was empty, then the search would skip over the next character.
Fix: Crash in some cases during project synchronization if an error occurred updating the symbol database for a particular source file.

Version 3.50.0072 - March 19, 2013

Fix: C/C++ some parsing errors handling lines ending with the continuation mark (\).

Fix: C/C++ bug parsing of function formal arguments declaring pointers to arrays.

Fix: C/C++ parsing support for managed pointers and "handles".

Fix: C# symbol resolution for property and indexer member types.

Fix: Several VHDL parser fixes.

Misc: Code signing certificate updated.

Version 3.50.0070 - June 20, 2012

Fix: Java: Generic functions with a type specifier before the function name would cause a parsing failure.

Fix: C#: long nested namespace names resulted in a corrupted namespace name.

Fix: Macro Language: post and pre-increment on a variable caused an error when used as a single statement.

Version 3.50.0069 - April 20, 2012

Fix: Several fixes to C# parsing.

Fix: Changed slow animations on Win 7 and Vista.

Version 3.50.0067 - April 12, 2012

Fix: Parsing errors that could happen in C++ templates.

Fix: When using Add and Remove Project Files, if you click "Add Tree" or "Add All" and include sub-directories, then Source Insight will only add known document types (for example, just C++ Files), even if you uncheck the box that says "Show only known document types".

Fix: Removed compiler optimization causing a crash during Source Insight parsing of user source files.

Change: Updated filealias.txt file for new standard dotless header files.

Version 3.50.0066 - November 2, 2011

Fix: Some parsing errors that could happen in comments lines that end in continuation mark (\)

Fix: Search command: the option to automatically load the selected text was incorrectly loading the whole word, instead of exactly the selected text.

Fix: Macro event DocSaveComplete was not getting called in some cases.

Version 3.50.0065 - May 31, 2011

Fix: Holding down the CTRL key for a long time on Vista or Windows 7 would cause the application to become gray and inactive.

Fix: Misc symbol lookup and syntax formatting fixes.

Fix: Added support for Java annotations.

Fix: General parsing errors caused by very long symbol names.

Fix: Some parsing errors that could happen in lines that end in continuation mark (\)

Fix: File seeking error that happened when the SI.LOG file got too big.

Version 3.50.0064 - June 24, 2009

Fix: Crash during Search Files when the search pattern is very large

Fix: VHDL variable declaration parsing.

Fix: Event Handlers: The AppStart event (and possibly others) that are saved in the Base project were not getting called consistently.

Fix: Un-named function parameters highlighted the last word (usually the type) as the parameter name, incorrectly.

Fix: Template arguments don’t always highlight in the function – they stay as Default Text.

Fix: Visual Basic / VBScript added support for classes

New: Custom Commands: added %R meta character which expands to the path of the current file, relative to the project's main source directory.

Change: This release includes v 2.0 Microsoft .NET Framework symbols.

Version 3.50.0063 - March 21, 2008

Fix: Hi-resolution mice on Vista could scroll in reverse with the scroll wheel.

Version 3.50.0062 - March 14, 2008

Fix: Potential crashing bug that can happen when searching for references, or when the Relation Window updates.

Fix: On Windows Vista, the CPU usage got very high during the Search & Replace prompt.

Fix: Editing and character selection was fixed for double-byte character sets.

Fix: Crash when the network path to the default printer is long, which seems to happen more often on Windows Vista.

Fix: Macro Function AssignKeyToCmd was not working if the command was a user defined macro command.

Fix: Printing: Long lines that wrapped caused some lines to be repeated or appear with the wrong line numbers printed, particularly if the long appeared at the bottom of a page.

Fix: x86 Asm: The TITLE directive was not formatted correctly.

Fix: Hi-resolution mice on Vista sometimes would not scroll with the scroll wheel.

Fix: Java: Functions that returned generic types were not parsed correctly.

Fix: C++/C#: comma separated list of object initializations were not parsed correctly. For example:

SomeClass x(1), y(2);

Version 3.50.0058 - July 16, 2007

Fix: Potential crashing problem caused by corrupted project file.

Version 3.50.0057 - April 13, 2007

Fix: Problem parsing #if or #ifdef statements that had a continuation \ mark at the end of the line.

Fix: Crashing bug when parsing #define statements with a continuation \ mark at the end of a file.

Fix: Rare crashing bug that could happen when reading files with lines > 255 characters in length.

Fix: Windows Vista: Floating tool windows stayed on top of dialog boxes.

Fix: Some compiler optimization bugs were found, and optimizations turned off.

Version 3.50.0054 - March 14, 2007

Fix: Crashing bug when parsing very long #define statements with a lot of line continuation tokens.

Fix: Crashing bug while parsing some deeply nested anonymous structs and unions.

Fix: Maximum nesting level for parsing block scopes has been increased.

Fix: Document Types using file filters with more than a single dot (.) would not match correctly. For example, "*" would not match

Version 3.50.0053 - March 12, 2007

Fix: Windows Vista compatibility changes to improve some GUI issues, such as slow animating, and slow window dragging.

Fix: Using a preprocessor "token macro" when defining a class would not parse correctly in some cases.

Fix: C# operator member functions were not being parsed correctly.

Change: Long dotted symbol names can now be longer before they are abbreviated with ellipses.

Change: Token macros can be composed of non-alphanumeric characters. Previously, they had to consist only of characters legal for indentifiers.

Change: The "smart paste" feature has been renamed "intelligent paste". This was done at the request of SlickEdit Inc., since they feel "smart paste" infringes on their trademarked term "SMARTPASTE". The functionality of this feature is unchanged.

Version 3.50.0052 - Feb 8, 2007

New: Options in Options > Preferences: Typing - for auto-complete of function names, two new options were added: "Insert spaces between parameters", and "Insert space after function name"

Fix: C# parsing of generic function with nested type parameters. For example:

private Dictionary<Guid, List<Guid>> MethodThatIsNotParsed()

Fix: C# further fixes to generics parsing.

Fix: Crash that could occur if a class was missing a semi-colon after the closing brace, and you attempted Jump To Definition.

Version 3.50.0051 - Dec 26, 2006

New: NewProjEx macro function.

Syntax: NewProjEx(name, homedir, datadir, fGlobalConfig, fStoreLocals, fStoreMembers, fStoreSyllables)

name: the project name. Eg. "myproject".

homedir: the home directory of the source files.

datadir: the directory where project data files are stored.

fGlobalConfig: true if the project should use the global settings file, or false if it should use its own configuration.

fStoreLocals: store data about function local variables in the database for browsing.

fStoreMembers: store data about class/struct members in the database for browsing.

fStoreSyllables: store data about syllables for browsing.

Returns the new project handle (hprj) or nil if errors.

New: Java: Added support for enums, including enum member functions.

New: Java: Added support for Java Generics.

New: C#: Added new support for C# Generics.

Fix: Unable to save changes in Default Project Settings dialog.

Fix: The Browse Files dialog did not show all "Known Document Types". This is a limitation of the Windows common dialog for Open File. Now you can select each document type seperately in the dialog's "Type" drop-down list.

Fix: .Net Framework symbols might not show up in the auto-complete list. Due to a change made in an earlier update, the class members in the NetFramework may not be found in the auto-complete feature. If .Net symbols do not auto-complete, then open the NetFramework project, and select Project > Rebuild Project.

Fix: Sometimes files were said to be modified outside of SI, but they were not. This most likely happened on network drives. Under some conditions, the Windows directory information can lag for remote drives. SI now uses a better method of getting file information.

Fix: Various bugs caused by compiler optimization bugs. In some cases, SI would simply crash. This has been tracked down to a code generation bug in the compiler, so the offending optimizations have been turned off in this build of SI.

Change: Some changes to default Document Options.

Version 3.50.0050 - Oct 12, 2006

Fix: File Menu was missing the Load Workspace command.

Fix: Context Window Display bug that could result in a crash.

Fix: Relation Window could omit symbols.

Fix: Macro function SetWndSel() was not working for rectangular selections.

Change: Macro function RunCmdLine now returns the process exit code if the fWait parameter is true.

Change: Logging options in the Preferences: General dialog. Clicking the Logging button lets you specify what to log. This is intended for troubleshooting. The log files are now stored in "My Documents\Source Insight\Logs", and they now contain more useful information.

Version 3.50.0049 - June 29, 2006

Fix: Syntax Formatting was not always displaying class names correctly when used with a new statement.

Fix: C/C++ - the #if defined X preprocessor statement was not working, unless the expression X was enclosed in parentheses.

Fix: C/C++, C# - some 'parse too complex' problems were fixed.

Fix: Macro Language - it was possible to run out of project handles too soon.

Fix: File Save - temporary files are now created in the default Windows temp folder (on the local drive) during the 'Save' operation, instead of in the target file's folder. This is more compatible with certain file systems.

Fix: Windows Vista: Dialog boxes were causing heap corruption due to the fact that Vista uses a different GUI font name, and was causing a buffer overflow in Source Insight.

New: Multiple Backup Files - When you save a file, a new copy of the file is saved into the Backup folder (see: Options > Preferences: Folders) Source Insight used to keep only one version of the backup file. Now, each backup file is given a unique name, and the backup files are kept for a specified amount of time. Select Options > Preferences: Files to see a new option: "Remove backup files older than (days)". You can indicate the maximum age of backup files.

Version 3.50.0045 - Jan 27, 2006

Fix: Relation Window - clicking the Refresh button when locked would not refresh the window.

Version 3.50.0044 - Jan 26, 2006

Fix: Custom Commands that contained a semi-colon in the "Run" string inside quote marks would not run correctly.

Fix: Search Forward for Selection command would give an error if you used the command when white-space was selected.

Fix: Preferences:Typing the "After pasting select ..." setting was not being saved in the configuration file.

Fix: C/C++ #if statements where sometimes evaluated incorrectly.

Fix: C/C++ Edit Condition - Scan Files would not update the condition list correctly. Sometimes it had no effect. (New values were entered into the list, but a bug caused the new entries to be ignored.)

Fix: C/C++ Strings - long strings (such as L"text") that spanned more than 1 line were not parsed correctly.

Fix: 'Parse too Complex' - several situations were fixed.

Fix: C++ conversion operator were not parsed correctly. These are also known as "cast operators".

Fix: Window Activation was incorrectly shown in the window titlebar when opening a file from the Project Window, in some cases.

Fix: Performance improvements when checking file status in the background. This helps the situation when many files are open, and those files are on a remote network drive.

Change: Context Window will continue to track in the background, even if it is in the "rolled-up" state.

New: Macro Language 'global' statement A new statement was added to declare global variables. Global variables have global scope, and they persist for the duration of the session. For more information, see Global Variables.

New: Macro Language pre/post increment/decrement operators are now supported, like in C. That is, ++i, i++, --i, i++.

New: Macro Event Handlers have been added. An event handler is a function that gets called when specific events occur.

For more information, see Event Handlers.

Version 3.50.0042 - August 8, 2005

Fix: 'Parse too Complex" problem was fixed.

Version 3.50.0040 - July 11, 2005

Fix: Keyboard input could be confused by a keyboard overrun (i.e. you hold down a key and overflow the input buffer).

Fix: Macro function Msg() now has a Cancel button, along with the OK button. Clicking Cancel aborts the macro.

Version 3.50.0039 - June 22. 2005

New: Preferences: General: A new option was added: "Remove missing files from project" under the "Project File Synchronization" section. If enabled, project files that cannot be found will be automatically removed from the project. In previous versions, Source Insight behaved as though this option was enabled. However, if you often open projects that have files on a remote network drive, and that drive is sometimes not connected, then Source Insight would automatically remove your "missing" project files just because the network connection was down. To resolve that problem, disable this option.

New: Preferences: General: A new option was added: "Keep dialogs on the same monitor as the main window". Normally, dialog positions are remembered, even if they are on a second monitor.  If this option is enabled, then dialogs will only be forced onto the monitor where the main Source Insight window resides.

New: Special Window Color setting for each source window. Right-click on a source window and select Special Window Color to set the background color of that particular window. Right-click and select Remove Special Window Color to return the window color to the normal color. The special color is lost when the window or file is explicitly closed, but it is retained between sessions of Source Insight.

Fix: C++ Namespace alias resolution of the form: namespace ABC = Alpha::Beta::Charlie, where ABC is an alias for "Alpha::Beta::Charlie".

Fix: C# Generics - "where" keyword: Generics that used the "where" constraint keyword were not parsed correctly.

Fix: Custom Commands: A double % symbol in the custom command "run" string is now interpreted as a single % in the output.

Fix: Search Files and Replace Files: the state of the "Project Wide" check box is remembered.

Fix: Various fixes to file handling when the file name begins with a dot (.).

Fix: C++: Preprocessor #if statements were not interpreted correctly if a space was missing between the #if and the next token. For example: #if(ABC)

Fix: Javascript: Declaring and assigning function objects was not parsed correctly.

Fix: Macro Language: GetReg Function: The function was limiting the return value to 254 characters.

Fix: In file and symbol lists, there is a substring search function. There was a 5000 item limit, above which no filtering would happen. This limit has been removed.

Version 3.50.0038 - December 22, 2004

New: Custom comment line formatting - allows you to have special formatting for comment lines that begin with a particular string. This works in C, C++, Java, C#, and JavaScript. For example, you can have comments that begin with //#COOL displayed in a particular style. To create a custom comment format:

1. Select Options > Preferences: Languages, select the language (for example C++) and then click Properties. Alternatively, you can right-click on a source file and select Language Properties.

2. Click the Comments and Ranges tab at the top of the dialog.

3. Click the Add button to add a new comment range. For non-custom languages such as C++, you can only add "Line" style comment ranges. Furthermore, you cannot edit or delete the built-in comment ranges that are normal for the language.

4. In the Range begins with text box, enter the starting text of the comment range . The text must begin with double forward slash //. For example you can enter a string like //#COOL, but not #COOL.

5. In the Syntax Formatting Style drop-down list, select the style you want to format the comment with.

Fix: Stack Overflow crash was fixed.  This bug was made more likely by a change in the previous update.

Version 3.50.0037 - November 26, 2004

New Preference tab: "Folders" - lets you specify the location of the Source Insight data and project files stored on your computer.  By default, all files are stored in "My Documents\Source Insight".

New: Macro function GetSymbolFromCursor(hbuf, ln, ich) returns a Symbol record that describes the symbol currently at the location in the given buffer. hbuf is the buffer handle. ln is the line number, ich is the zero based index of the character on the line.

New: The Relation window can now show relations for files, as well as symbols. For example, you can show what files refer to functions within a given file. Or, you can show what functions are inside of a given file.

New: option in Preferences: Symbol Lookups: "Find symbols in open files not part of current project". If this is checked (the default) then symbol lookup operations will locate symbols declared in files that happen to be open, but are not added to the project. If this is unchecked, then only symbols in files that are actually part of the project will be found.

New: C# language support for sealed and partial keywords, as well as C# generics.

New: option in Preferences: General: A check box was added to enable or disable drag-and-drop editing.

Fix: Macro function Msg would not display correctly if percent marks were in the output string.

Fix: Search Project dialog box would not load the selected text automatically.

Fix: A bug in Search Files and Lookup References could leave files open in the background.

Fix: Macro function GetSymbolLocationEx contained a bug that would cause the function to return no matches.

Fix: C/C++ parsing fix for empty formal parameter lists using the void keyword, such as "int Hello(void);".

Fix: C/C++/CS/Java symbol lookup fix for determining the type of a variable when the declaration spans more than 1 line.

Fix: Symbol database was not preserving the number of function arguments for function symbols. This could lead to incorrect symbol lookups for overloaded functions in C++.

Fix: Symbol lookups were not functioning correctly for class and struct variables declared as "extern".

Fix: Custom commands would not set the current working directory correctly if it contained a space in the name.

Version 3.50.0035 - Jan. 29, 2004

Fix: Macro function RunCmd would not run macro commands.

Fix: C++ declarations involving nested templates were not parsed correctly. For example: typedef B<A<int> > BAInt;

Fix: Displaying line numbers could result in some garbage characters displayed, depending on the contents of lines.

Fix: Search Project and Lookup References bugs when using the keyword search method: the case sensitive option had no effect, and searching for language keywords, such as "typedef", or "case" would not find matches.

Fix: C++ Function Templates: The template symbol entries in the Symbol window pane would appear out of order if a non-template symbol was defined in between the function templates.

Fix: C# verbatim strings that spanned more then a single line broke the parsing.

Change: The project-symbol-path size has been increased from 254 chars to 2558 chars in length. You can edit it in the Options > Preferences: Symbol Lookups dialog.

New: C# Generics are now parsed. Two new styles were added: "Declare Type Parameter", and "Ref to Type Parameter", which are used to display the type parameters.

Version 3.50.0034 - September 8, 2003

Fix: Crash could occur if you type backspace at the start of a line that causes the previous line to exceed the maximum size of 4092 characters.

Fix: Display bug when displaying a line with 4092 characters.

Fix: Crash could occur when parsing #if statements if a single identifier was longer than 127 characters long.

Version 3.50.0033 - September 2, 2003

New: Preferences: Display: option "Trim long path names with ellipses". This is the default behavior, but you can now turn it off.

Fix: Crash using the Search Files command to search a directory with a large number of files.

Fix: Text formatting was improved to handle longer, more complex lines, with many tokens and formatting transitions.

Fix: C# new array initializations were not parsed correctly. For example, int[] rmap = new int[] {0, 1, 2, 3, 4};

Fix: Potential crash that could occur when displaying some C/C++ code. The crash was caused by an infinite recursion in the code that finds the most-base type of a typedef.

Change: The maximum line length of the editor was increased from 2046 to 4092 characters.

Version 3.50.0032 - July 30, 2003

Fix: Crash on opening a C/C++ file with a line longer than 2040 character containing a preprocessor #if statement.

Version 3.50.0031 - July 28, 2003

New: Conditional Parsing Variables: "Scan" function. In the Edit Condition and Project-Specific Conditions dialog boxes, there is a new "Scan Files..." button. Click it to have Source Insight scan your project's source files looking for conditional variables used in any #if, #ifdef, and #elif statements. The resulting variable names are loaded into the condition list. Afterwards, you can edit their values, or remove them from the list.

New: Block Cursor Shape: Enable this in Options > Preferences: Typing.

Fix: Load Workspace command was missing the the command list. It is back now.

Fix: Memory leak while paginating files in the background.  This would happen if you had the options set to show either page breaks in the display, or the page number in the status bar.

Fix: Symbol Info window size and position is saved between sessions. The information is saved in the configuration file as part of the "Display" settings.

Fix: Relation Window: If you click on the column headers in the outline view of the Relation Window, it sorts the listing. Now, that same sorting order is used when computing the graphical view of the Relation Window.

Fix: Lookup References and Search Project commands: selecting the "Simple String" mode under "Search Method" was interpreting regular expression meta characters in the string.

Fix: Heap clobber bug fixed in code that fires during Undo saving and selection history saving.

Fix: Expand Tabs To Spaces: This was sometimes not working due to an uninitialized buffer bug. The expansion to spaces was also not happening in some cases if "Smart Paste" or auto-indenting was causing extra indentation.

Fix: Auto-Complete: The auto-complete feature would insert bogus characters if you selected C++ operator-overload functions from the list.

Fix: C# : The #region and #endregion lines are now treated like comments by the syntax formatting.

Fix: Project Window: Clicking on the file name column header would crash. This only happened if the project window was showing files in the current directory, not the project file list.

Fix: Potential crash could occur while rebuilding a project if a source file window needed to repaint.

Fix: Bug in the internal "missing symbol cache" could cause some symbol references not to be show correctly by syntax formatting.

Fix: Improved performance for symbol lookups and rendering syntax formatting for deeply nested classes and namespaces.

Fix: Some symbol lookup operations could hang while trying to resolve "import <package>" in Java and "using" in C++/C#.

Fix: Made small change to allow call trees to be computed with custom languages.

Fix: Auto-complete list would not appear when editing a custom language file.

New: Macro function: XposFromIch (hwnd, ln, ich) - returns the x position of a character. The x position returned is relative to the left edge of the window. The line number is given in ln. The character position is given in ich. Both ln and ich are zero-based indexes. Hwnd is the handle to the window displaying the line. Note that the line does not actually have to be displayed in the window when this function is called.

New: Macro function IchFromXpos (hwnd, ln, xpos) - returns the character position of the character that is displayed at the given x position xpos. The line number is given in ln. Xpos is the given x position relative to the left edge of the window. Hwnd is the handle to the window displaying the line. Note that the line does not actually have to be displayed in the window when this function is called.

New: Macro function: AddConditionVariable (hproj, szName, szValue) - adds a new conditional parsing variable used to evaluation conditional statements such as #if. Hproj is a handle to the project. If hproj is hNil, then the new variable is added to the global condition list. The name is given in szName, and the value is given in szValue.

New: Macro function: DeleteConditionVariable (hproj, szName) - deletes a conditional parsing variable used to evaluation conditional statements such as #if. Hproj is a handle to the project. If hproj is hNil, then the variable is deleted from the global condition list. The name is given in szVariable.

Version 3.50.0029 - April 2, 2003

Fix: Several fixes were made to handle the possibility of network drives being disconnected.

Fix: Using the Close All command, and then cancelling the "Save Modified Files" dialog box would sometimes leave Source Insight in a "shut-down" state, which would disable certain commands and stop background parsing.

Fix: Syntax Formatting was incorrect near the end of lines if the "annotate closing braces" options were enabled.

Fix: Symbol Lookup sometimes failed due to a bug in the internal "Missing Symbol Cache".

Fix: C# Verbatim strings could cause symbols below them to not parse.

Fix: Project Settings for the "Source Directory" were sometimes corrupted due to a bug that did not resolve relative paths correctly. This could lead to strange and incorrect names in the project's file list.

Change: Long file path names are now trimmed down to show the first and last folder names in several dialog boxes and notice windows. This will allow you to read at least the most relavent file path information, instead of just truncating the name.

Version 3.50.0028 - March 12, 2003

Fix: Files could be truncated if the option to "remove extra white space" is enabled. It is strongly recommended that you upgrade to this version if you have Options > Preferences: Files: "Remove extra white space when saving" enabled.

Version 3.50.0027 - March 7, 2003

Fix: Relation Window: The Relation Window was not expanding correctly when showing multiple references inside the same node box.

Fix: Saving Files that contain lines longer than 2026 characters was corrupting the file and introducing new line breaks.

Fix: ASP/JSP/HTML: Several bug fixes were made to how scripts were parsed and formatted. Also, a freezing bug was fixed in this area that could happen when typing in a script body.

Fix: Searching: Fixed a bug that caused some regular expressions to freeze the program.

Fix: C#: Some Verbatim strings were not parsed correctly.

Fix: Paste: After pasting and using the UP or DOWN arrows, the horizontal position was kind of arbitrary. Now when you use the UP or DOWN arrows after pasting, the cursor will move vertically from the position the cursor is in after the paste.

Fix: C++/Java/C#: Symbol lookup was not finding members of a base class when the derived class was referred to with a namespace prefix. For example:

namespace NS
	class Base 
		void member();	

	class Derived : Base { };

NS::Derived d;
d.member(); // member was not being found in NS::Base

Change: Replace command: After the replace operation, the original whole line-selection is restored. You can disable this with a new check box added to the Options > Preferences: Search dialog.

New: Macro function: AddFileListToProj ( hprj, szListFileName) - adds all the files listed in the given file to the project.

hprj is the project handle

szListFileName is a string containing the name of the list file. The list file should be a text file containing one file name per line. The file can also contain one directory per line, in which case the directory's contents are added to the project.

New: Macro function: EmptyProj (hprj) - empties the project by removing all files from the project. The files themselves are not deleted or affected.

hprj is the project handle

Version 3.50.0026 - February 10, 2003

Fix: ASP/JSP error parsing some server-side scripts.

Fix: Auto-complete window was not showing separate entries for overloaded functions.

Fix: Repainting bug when drawing the application background, which would cause the background to be drawn using the wrong color when the Style Properties dialog was up.

New: Preferences: Display option: "Enable Animations". This controls various window border animations that occur when you activate and roll-up some windows. You may want to disable these animations if your video performance is too slow.

Version 3.50.0025 - February 7, 2003

Fix: Task switching into Source Insight could be slow when many files were open in Source Insight. Unnecessary formatting and redrawing was being done.

Fix: Java: Crashes in symbol lookup operations and displaying code.

Fix: Java Symbols: Display speed and general symbol lookup speed was increased for Java files. Some very slow situations were found and removed.

Fix: The symbol-lookup engine was not handling symbols that had embedded dots (.) in the name. Normally symbols do not have dots in the name, but it is possible to create a custom parsing pattern that results in such a symbol name. Source Insight stores symbol names internally in a "dotted-name" format, such as "classname.membername".

Fix: Pasting lines when the "Smart Paste" mode is on caused the lines to be re-tabbified. This could result in some spaces appearing where there used to be tabs. Now, if the paste does not need to alter the indentation of the line, the tabs in the line are not altered.

Fix: Pasting a whole line now moves the insertion point to the beginning of the next line, instead of the end of the new line.

Fix: HTML/ASP/XML parsing: Attribute strings that spanned more than one line were not parsed correctly.

Fix: Symbol Lookup could result in a crash, especially in deeply nested blocks, or in Java with many import statements.

Fix: C/C++ parsing: Function declarations were not parsed if a struct was declared in the formal argument list.

Fix: C++ parsing: In a class or struct, the member that followed the "public:" label was not being parsed correctly. This was caused by a bogus entry for "public" in the c.tom file. A new c.tom file is installed with this version. If you don't want to accept this new c.tom file, then open "My Documents\Source Insight\c.tom" and find the line with "public" on a line by itself. Delete that line.

Fix: C# parsing: Global Function declarations were not parsed (at the file scope).

Fix: Auto-completion: the auto-completion list would fail to appear at times, even if the option was active.

Fix: Resource leak when docking and undocking windows.

Fix: Project Report: File name case was not being preserved in the project report.

Fix: The check mark on the menu item "View > Visible Tabs" was not working correctly.

Fix: Minor adjustments to toolbar positioning.

Change: Java: Nested package names now appear on one line in the symbol window pane, instead of showing a tree of package nodes.

Version 3.50.0023 - January 14, 2003

Fix: Crash Parsing HTML & XML: Including CDATA sections inside of some HTML and XML files could cause the parser to crash.

Fix: HTML & XML: Custom parsing patterns were not finding symbols in element tags.

Fix: Slowness in C/C++/Java/C#: Symbol lookup operations in some projects could be very slow, due to duplicate symbols being returned by the lookup engine.

Fix: Some dialog boxes did not display correctly in Asian versions of Windows. Notably, the Preferences multi-page dialog box was not sized large enough to display the font used in the dialog box.

Fix: The styles used to display references to Java packages and namespaces were swapped.

Fix: JSP script comments were not recognized. For example:

<%-- this is a comment --%>

Fix: ASP/HTML/JSP script languages were not recognized in cases where version number was appended to the language name. For example:

<script language="JavaScript2.0">......</script>

Fix: Java: Initializer lists following a new array was not parsed correctly. For example:

static int[] newarray = new int[] { ...... };

Fix: Project Synchronizing could put up warning messages, even if the "Suppress warning messages" option was checked.

For a list of new features introduced in version 3.5, see the Source Insight 3.5 Changes page.