CHAPTER 1 Introduction
The Big Picture
Feature Highlights
System Requirements:
Technical Support
CHAPTER 2 Setup and Quick Start
Installing Source Insight
Installing on Windows NT/2000/XP
Upgrading from Version 2
Upgrading from Version 3.0 and 3.1
Insert the CD-ROM
Choosing a Drive for the Installation
Using Version 3 and Version 2 Together
Configuring Source Insight
Entering Your Serial Number
Creating Common Projects
Creating a Project
CHAPTER 3 Window Tour
Source Insight Application Window
Toolbars
Source File Windows
Symbol Windows
Floating Windows
Transparent Floating Windows
Project Window
Opening Files Quickly
Project Window Views
File List View
File Directory View
Symbol List View
File Types View
Symbol Class View
Context Window
Previewing Files
Showing Declarations and Definitions
Decoding Base Types to Show Structures
Customizing the Context Window
Relation Window
Outline and Graph Views
Relationship Types
Relation Window Performance
Relationship Rules
Call Graphs
Multiple Relation Windows
Customizing the Relation Window
Clip Window
What Is A Clip?
Creating a New Clip
Clip Storage
Search Results Window
CHAPTER 4 Source Insight Concepts
Projects
The Current Project
Project Features
Creating a Project
Project Directories
Project Source Directory
Normalized File Names
The Project List
Adding Files to a Project
Removing Files from a Project
Closing Projects
Opening Projects
Removing a Project
Changing Project Settings
Working in a Team Environment
Using a Network
Adding Remote Files to a Project
Using Source Control
Source Control Commands
Source Control Toolbar
Understanding Symbols and Projects
Languages Used to Parse Source Files
Symbol Naming
Updating the Symbol Database
File Names Are Like Symbols
Synchronizing Project Files
Using Common Projects: The Project Symbol Path
Searching the Project Symbol Path
Working With No Project Open
The Base Project
Programming Languages
Built-In Languages
Custom Languages
.Net Framework Support
Using HTML
Using HTML and ASP Compound Languages
Java Language Editing
C/C++ Language Features
Working with Inactive Code - ifdef Support
Conditional Parsing
Condition Variables
Preprocessor Token Macros
Token Macro Files
Parsing Considerations
Coding Tips for Good Parsing Results
Document Types
Document-Specific Options
Associating Files with Document Types
Associating Special File Names
Adding New File Types
Editing the Document Options
Typing Symbol Names with Syllable Indexing
What is a Symbol Syllable?
Symbol Indexes for Projects
Full Name Index.
Member Name Index.
Syllable Index.
Setting Index Options for Projects
Controlling Syllable Matching
Using Syllable Matching
Using Syllable Shortcuts
Analysis Features
Parsing
Symbol Navigation Commands
Jump to Definition command
Jump to Caller command
Refresh Relation Window command
Browse Project Symbols command
Project Window Symbol List
Call Trees and Reference Trees
Context Window
Command Line Symbol Access
Finding References to Symbols
Creating a Project Report
Smart Renaming
Syntax Formatting and Styles
How a Style Works
Formatting Properties
Parent Styles
How Styles Apply to Source Code
Language Keyword Styles
Declaration Styles
Reference Styles
Inactive Code Style
Comment Styles
Comment Heading Styles
Comment Right Style
Single and Multi Line Comment Styles
Comment Styles and Custom Languages
Syntax Decorations
Operator Substitutions
Scaled Nested Parentheses
Goto Arrows
End Brace Annotations
Controlling Syntax Formatting
Changing Style Properties
The Syntax Formatting Command
The Syntax Decorations Command
Turning Off Syntax Formatting
Switching Off Syntax Formatting Temporarily
I Don't Want Fonts to Change
I Want All Characters to Have the Same Width
Searching and Replacing Text
Searching for Symbol References
Renaming an Identifier
Searching the Current File
Replacing in the Current File
Searching Multiple Files
Replacing in Multiple Files
Searching for Keywords
Regular Expressions
Wildcard Matching
Matching the Beginning or End of a Line
Matching a Tab or Space
Matching 0, 1, or More Occurrences
Matching Any in a Set of Characters
Regular Expression Groups
Overriding Regular Expression Characters
Regular Expression Summary
Bookmarks
Navigation with the Selection History
Go Back and Go Forward commands
Navigation Using Source Links
Searching and Source Links
Creating Source Links
Source Links from Custom Command Output
Navigating with Source Links
Scrolling and Selecting Text
Moving Through a File
Scrolling Commands
Selection Commands
Extending the Selection
Selection Shortcuts
Selecting Whole Words
Selecting Whole Functions or Symbols
Selecting Matching Parentheses and Blocks
Selecting the Enclosing Block
Selecting a Whole Line
Selecting the Whole File
Selecting a Paragraph of Text
Selecting Between Lines
File Buffer Basics
Time stamping
What Happens when you Start Source Insight
Recovering From Crashes
Recovery Procedure
Warnings
Command Line Syntax
Specifying File Arguments
Opening Files
How a File is Located
Opening Workspaces
Command Line Options
Suppressing New Program Instances
Running a Source Insight Command
Specifying a Project to Open
Closing the Current Project
Using a Temporary Project
Finding a Symbol
Synchronizing Files in Batch Mode
Suppressing the Splash Screen
User-Level Commands
Custom Commands
Customizing Source Insight
Preferences
Document Options
Key Assignments
Menu Assignments
Loading and Saving Configurations
Project Settings
Project-Specific Configurations
Saving Configurations
Configuration Files
Where Are Configuration Files Stored?
Loading a Configuration
Saving a Configuration
Saving and Restoring Workspaces
Loading and Saving Workspaces
Managing Tasks With Workspaces
Performance Tuning
Factors That Affect Performance
Machine Speed
Project Size
Project Index Settings
Symbol Memory Usage
Virtual Memory Capacity
Physical Memory Capacity
Operating Systems
Custom Parsing Expressions
Location of Files on a Network
Location of the “My Documents” Folder
Speeding Up Program Features
Speeding Up Syntax Formatting
Speeding Up Typing in Browse Dialog Boxes
Speeding Up Building and Synchronizing Projects
Speeding Up Relation Windows
Speeding Up Auto-Completion
Speeding Up .Net Framework Auto-Completion
Speeding Up Searching Files
Speeding Up Lookup References
Files Created by Source Insight
Files in the Program Directory
Per-User Data Folder
Files Created for Each User
Configuration Template for All Users
Files Created for Each Project
CHAPTER 5 Command Reference
Commands Overview
About Source Insight
Activate Menu Commands
Activate Global Symbol List
Activate Relation Window
Activate Search Results
Activate Symbol Window
Add and Remove Project Files
What Files Should You Add to a Project?
Add and Remove Project Files Dialog Box
Add File
Add File List
Advanced Options
Back Tab
Backspace
Beginning of Line
Beginning of Selection
Blank Line Down
Blank Line Up
Block Down
Block Up
Bookmark
Bottom of File
Bottom of Window
Browse Files
Browse Project Symbols
Browse Global Symbols Dialog box
Browse Local File Symbols
Cascade Windows
Checkpoint
Checkpoint All
Clear Highlights
Clip Properties
Clip Window Properties
Close
Close All
Close Project
Close Window
Color Options
Command Shell
Complete Symbol
Context Window
Context Window Properties
Symbol Tracking Options
Copy
Copy Line
Copy Line Right
Copy List
Copy Symbol
Copy To Clip
Create Key List
Create Command List
Cursor Down
Cursor Left
Cursor Right
Cursor Up
Custom Commands
Custom Command Dialog box
The 'Run' Field Format
Running the Command Shell
Command Line Substitutions
ShellExecute Commands
ShellExecute Examples
Running Custom Commands in the Background
Creating a Compile and Build command
Cut
Cut Line
Cut Line Left
Cut Line Right
Cut Selection or Paste
Cut Symbol
Cut To Clip
Cut Word
Cut Word Left
Delete
Delete All Clips
Delete Character
Delete Clip
Delete File
Delete Line
Display Options
Character Spacing Options
Document Options
Document Types
Document Options Dialog box
Auto Indenting
Draft View
Drag Line Down
Drag Line Down More
Drag Line Up
Drag Line Up More
Duplicate
Duplicate Symbol
Edit Condition
Project vs. Global Conditions
Edit Condition Dialog box
Enable Event Handlers
End of Line
End of Selection
Exit
Exit and Suspend
Expand Special
File Options
File Options Dialog box
Folder Options
Folder Options Dialog box
Function Down
Function Up
General Options
General Options Dialog box
Background Tasks
Go Back
Using Go Back to View a Function Call Chain
Go Back Toggle
Go Forward
Go To First Link
First Source Link
Using Links With Compiler Errors
Using Links With Search Output
Go To Line
Go To Next Change
Go To Previous Change
Go To Next Link
Go To Previous Link
Help
Help Mode
Highlight Word
Incremental Search
Incremental Search Mode
Incremental Search Backward
Horizontal Scroll Bar
HTML Help
Indent Left
Indent Right
Insert ASCII
Insert File
Insert Line
Insert Line Before Next
Insert New Line
Join Lines
Jump To Base Type
Jump To Caller
Jump To Definition
Jump To Link
Jump To Prototype
Key Assignments
Key Assignments Dialog box
Numeric Keypad Keys
Assigning Keys and Mouse Clicks
Keyword List
Keywords and Styles
Language Keywords Dialog box
Importing and Exporting Keyword Lists
Language Options
Special Language Options
Language Properties
Language Info
Basic Language Options
Comments and Ranges
Range Definition
Custom Parsing
Custom Parsing Expression
Line Numbers
Link All Windows
Link Window
Load Configuration
Global Configuration
Partial Configurations
Load File
Load Search String
Lock Context Window
Lock Relation Window
Lookup References
Lookup References Dialog box
Keyword Expressions
Keyword Variations
Keyword Search Results
Make Column Selection
Menu Assignments
New
New Clip
New Relation Window
New Project
Where Should You Create A Project?
New Window
Next File
Next Relation Window View
Open
Open Project
Page Down
Page Setup
Header and Footer Codes
Page Up
Paren Left
Paren Right
Parse Source Links
Maintaining Multiple Parse Patterns
Paste
Paste From Clip
Paste Line
Paste Symbol
Play Recording
Preferences
Print
Color Printing
Print Relation Window
Project Document Types
Project File Browser
Project File List
Project Symbol Classes
Project Symbol List
Project Window Properties
Project Settings
Index Performance
Project Report
Project Window command
Rebuild Project
Record New Default Properties
Redo
Redo All
Redraw Screen
Reform Paragraph
Refresh Relation Window
Relation Graph Properties
Relation Window
Relation Window Properties
Relation Window Properties Dialog Box
Relationship Rules
Call Graph Filter
Symbol Type Filter
Symbol Tracking Options
Reload File
Reload Modified Files
Remove File
Remove Project
Remote Options
Rename
Renumber
Repeat Typing
Replace
Replace Files
Restore File
Restore Lines
Save
Save A Copy
Save All
Save Modified Files Dialog Box
Saving Without Prompts
Saving When You Switch to Another Program
Prompting for Each File Separately
Save All Quietly
Save As
Adding a New File to the Current Project
Save Configuration
Having Multiple Configurations
Save Selection
Save Workspace
Working With Multiple Workspaces
Scroll Half Page Down
Scroll Half Page Up
Scroll Left
Scroll Line Down
Scroll Line Up
Scroll Right
SDK Help
Search
Search Backward
Search Backward for Selection
Search Files
To Search a Set of Files
Search Forward
Search Forward for Selection
Search List
Search Project
Searching Options
Select All
Select Block
Select Char Left
Select Char Right
Select Function or Symbol
Select Line
Select Line Down
Select Line Up
Select Match
Select Next Window
Select Sentence
Select Symbol
Select To
Select To End Of File
Select To Top Of File
Select Word
Select Word Left
Select Word Right
Selection History
Setup Common Projects
What Are Common Projects?
Set Common Projects Dialog box
Setup HTML Help
Setup WinHelp File
Show Clipboard
Show File Status
Simple Tab
Smart End of Line
Smart Beginning of Line
Smart Rename
Smart Tab
Smart Tab Examples
Sort Symbol Window
Sort Symbols By Line
Sort Symbols by Name
Sort Symbols By Type
Source Dynamics on the Web
Start Recording
Stop Recording
Style Properties
Formatting Properties
Style Properties Dialog Box
Symbol Info
Symbol Lookup Options
Symbol Window command
Symbol Window Properties
Sync File Windows
Synchronize Files
Syntax Decorations
Syntax Formatting
Basic Options
Apply Styles for Language Elements
Comment Headings
Symbol Reference Lookups
Tile Horizontal
Tile One Window
Tile Two Windows
Tile Vertical
Toggle Insert Mode
Top of File
Top of Window
Touch All Files in Relation
Typing Options
Undo
Undoing Cursor Movement
Undoing All Changes
The Undo History
Restoring Lines
Undo All
Vertical Scroll Bar
View Clip
View Relation Outline
View Relation Window Horizontal Graph
View Relation Window Vertical Graph
Window List
Word Left
Word Right
Zoom Window
CHAPTER 6 Macro Language Guide
Macro Language Overview
Basic Syntax Rules
Macro Functions
Macro Scopes and References
Running Macros
Macros as Commands
Running Inline Macro Statements
Statements
Variables
Declaring a Variable
Variable Initialization
Global Variables
Variable Name Expansion
Expanding Variables in a String
Variable Arithmetic
Indexing Into Strings
Record Variables
Record Variable Storage
Array Techniques
Special Constants
Operators
Conditions and Loops: if-else and while
The if Statement
The while statement
Break and Continue
Conditional Evaluation
Naming Conventions
Standard Record Structures
Bookmark Record
Bufprop Record
DIM Record
Link Record
ProgEnvInfo Record
ProgInfo Record
Rect Record
Selection Record
Symbol Record
SYSTIME Record
Internal Macro Functions
String Functions
AsciiFromChar (ch)
cat (a, b)
CharFromAscii (ascii_code)
islower (ch)
IsNumber (s)
isupper (ch)
strlen (s)
strmid (s, ichFirst, ichLim)
strtrunc (s, cch)
tolower (s)
toupper (s)
User Input and Output Functions
Ask (prompt_string)
AssignKeyToCmd(key_value, cmd_name)
Beep ()
CharFromKey (key_code)
CmdFromKey(key_value)
EndMsg ()
FuncFromKey (key_code)
GetChar ()
GetKey ()
GetSysTime(fLocalTime)
IsAltKeyDown (key_code)
IsCtrlKeyDown (key_code)
IsFuncKey (key_code)
KeyFromChar(char, fCtrl, fShift, fAlt)
Msg (s)
StartMsg (s)
Buffer List Functions
BufListCount ()
BufListItem (index)
File Buffer Functions
AppendBufLine (hbuf, s)
ClearBuf (hbuf)
CloseBuf (hbuf)
CopyBufLine (hbuf, ln)
DelBufLine (hbuf, ln)
GetBufHandle (filename)
GetBufLine (hbuf, ln)
GetBufLineCount (hbuf)
GetBufLineLength (hbuf, ln)
GetBufLnCur (hbuf)
GetBufName (hbuf)
GetBufProps (hbuf)
GetBufSelText (hbuf)
GetCurrentBuf ()
InsBufLine (hbuf, ln, s)
IsBufDirty (hbuf)
IsBufRW (hbuf)
MakeBufClip (hbuf, fClip)
NewBuf (name)
OpenBuf (filename)
OpenMiscFile (filename)
PasteBufLine (hbuf, ln)
PrintBuf (hbuf, fUseDialogBox)
PutBufLine (hbuf, ln, s)
RenameBuf (hbuf, szNewName)
SaveBuf (hbuf)
SaveBufAs (hbuf, filename)
SetBufDirty (hbuf, fDirty)
SetBufIns (hbuf, ln, ich)
SetBufSelText (hbuf, s)
SetCurrentBuf (hbuf)
Environment and Process Functions
GetEnv (env_name)
GetReg (reg_key_name)
IsCmdEnabled (cmd_name)
PutEnv (env_name, value)
RunCmd (cmd_name)
RunCmdLine (sCmdLine, sWorkingDirectory, fWait)
SetReg (reg_key_name, value)
ShellExecute (sVerb, sFile, sExtraParams, sWorkingDirectory, windowstate)
ShellExecute Parameters
sVerb Values
Window List Functions
WndListCount ()
WndListItem (index)
Window Functions
CloseWnd (hwnd)
GetApplicationWnd ()
GetCurrentWnd ()
GetNextWnd (hwnd)
GetWndBuf (hwnd)
GetWndClientRect (hwnd)
GetWndDim (hwnd)
GetWndHandle (hbuf)
GetWndHorizScroll (hwnd)
GetWndLineCount (hwnd)
GetWndLineWidth (hwnd, ln, cch)
GetWndParent (hwnd)
GetWndRect (hwnd)
GetWndSel (hwnd)
GetWndSelIchFirst (hwnd)
GetWndSelIchLim (hwnd)
GetWndSelLnFirst (hwnd)
GetWndSelLnLast (hwnd)
GetWndVertScroll (hwnd)
IchFromXpos (hwnd, ln, xp)
IsWndMax (hwnd)
IsWndMin (hwnd)
IsWndRestored (hwnd)
MaximizeWnd (hwnd)
MinimizeWnd (hwnd)
NewWnd (hbuf)
ScrollWndHoriz (hwnd, pixel_count)
ScrollWndToLine (hwnd, ln)
ScrollWndVert (hwnd, line_count)
SetCurrentWnd (hwnd)
SetWndRect (hwnd, left, top, right, bottom)
SetWndSel (hwnd, selection_record)
ToggleWndMax (hwnd)
XposFromIch (hwnd, ln, ich)
Bookmark Functions
BookmarksAdd (name, filename, ln, ich)
BookmarksCount ()
BookmarksDelete (name)
BookmarksItem (index)
BookmarksLookupLine (filename, ln)
BookmarksLookupName (name)
Symbol List Functions
SymListCount ()
SymListFree (hsyml)
SymListInsert (hsyml, isym, symbolNew)
SymListItem (hsyml, isym)
SymListNew ()
SymListRemove (hsyml, isym)
Symbol Functions
Symbol Record
GetBufSymCount(hbuf)
GetBufSymLocation(hbuf, isym)
GetBufSymName(hbuf, isym)
GetCurSymbol ()
GetSymbolLine (symbol_name)
GetSymbolLocation (symbol_name)
Locating File Names
GetSymbolLocationEx (symbol_name, output_buffer, fMatchCase, LocateFiles, fLocateSymbols)
Locating File Names
GetSymbolFromCursor (hbuf, ln, ich)
GetSymbolLocationFromLn (hbuf, ln)
JumpToLocation (symbol_record)
JumpToSymbolDef (symbol_name)
SymbolChildren (symbol)
SymbolContainerName (symbol)
SymbolDeclaredType (symbol)
SymbolLeafName (symbol)
SymbolParent (symbol)
SymbolRootContainer (symbol)
SymbolStructureType (symbol)
Searching Functions
GetSourceLink (hbufSource, lnSource)
LoadSearchPattern(pattern, fMatchCase, fRegExp, fWholeWordsOnly)
ReplaceInBuf(hbuf, oldPattern, newPattern, lnStart, lnLim, fMatchCase, fRegExp, fWholeWordsOnly, fConfirm)
SearchForRefs (hbuf, word, fTouchFiles)
SearchInBuf (hbuf, pattern, lnStart, ichStart, fMatchCase, fRegExp, fWholeWordsOnly)
SetSourceLink (hbufSource, lnSource, target_file, lnTarget)
Project Functions
AddConditionVariable(hprj, szName, szValue)
AddFileToProj(hprj, filename)
CloseProj (hprj)
DeleteConditionVariable(hprj, szName)
DeleteProj (proj_name)
EmptyProj ()
GetCurrentProj ()
GetProjDir (hprj)
GetProjFileCount (hprj)
GetProjFileName (hprj, ifile)
GetProjName (hprj)
GetProjSymCount (hprj)
GetProjSymLocation (hprj, isym)
GetProjSymName (hprj, isym)
NewProj (proj_name)
OpenProj (proj_name)
RemoveFileFromProj(hprj, filename)
SyncProj (hprj)
SyncProjEx(hprj, fAddNewFiles, fForceAll, fSupressWarnings)
Miscellaneous Macro Functions
DumpMacroState (hbufOutput)
GetProgramEnvironmentInfo ()
GetProgramInfo ()
Other Information about Macros
Debugging
Persistence
No Self-Modifying Macros
Sample Macros
Event Handlers
CHAPTER 7 Macro Event Handlers
Macro Event Handlers
Event Handler Uses
Adding Event Handlers to Source Insight
Enabling Event Handlers
Editing Event Handler Files
Errors in Event Handlers
Synchronous Vs. Asynchronous Events
Other Tips
Application Events
event AppStart()
event AppShutdown()
event AppCommand(sCommand)
Document Events
event DocumentNew(sFile)
event DocumentOpen(sFile)
event DocumentClose(sFile)
event DocumentSave(sFile)
event DocumentSaveComplete(sFile)
event DocumentChanged(sFile)
event DocumentSelectionChanged(sFile)
Project Events
event ProjectOpen(sProject)
event ProjectClose(sProject)
Statusbar Events
event StatusbarUpdate(sMessage)
CHAPTER 8 Appendix: Upgrading From Older Versions
Upgrading from Version 3.1 or Version 3.0
Per-User Data Folder
Per-User Project List
Project File Storage
Custom Command Directory Expansion
.Net Framework Support
Upgrading from Version 2
Installing Version 3
Opening Older Projects
Finding Your Old Projects
Loading Old Customizations
Using Version 3 and Version 2 Together
What's New in Version 3
Improved Language Features
Improved Browsing and Analysis Features
Improved Editing and Display Features
New Commands
New Command List
File Format Compatibility with Older Versions
CHAPTER 9 License Agreement