Source Insight feature highlights (SI功能分析)

3.5的功能列表拷贝自 http://www.sourceinsight.com/docs35/aa913254.htm source-insight

我们可以看看雏形的codeinsight有哪些功能已经实现,以及还有哪些需要通过插件可以实现(在文章内部有注释)

™ is a project-oriented program and code browser, with built-in analysis for C/C++, C#, and Java programs. parses your source code and maintains its own database of symbolic information dynamically while you work, and presents useful contextual information to you automatically.

Not only is a great program , but it also can display reference trees, class inheritance diagrams, and call trees. features the quickest navigation of source code and source information of any programming .

features quick and innovative access to source code and source information. Unlike many other products, parses your source code and gives you useful information and analysis right away, while you edit.

Figure 1.1 uses innovative syntax formatting and dynamic relationship graphing to illuminate source code design.

 

Always Up-To-Date Information

Because programs are constantly under development, it’s important that even symbols in code that will not compile can be browsed in with up-to-the-second accuracy. automatically builds and maintains its own high performance symbol database of functions, methods, global variables, structures, classes, and other types of symbols defined in your project source files. maintains its symbol database to provide browsing features instantly, without having to compile the project or having to depend on the compiler to provide browser files. quickly and un-intrusively updates its information about your files, even while you edit code. Furthermore, the symbol features are built into each project automatically. You don’t need to build any extra tag files.

Context Sensitive Dynamic Type Resolution

decodes the types of variables, including class inheritance, dynamically while you edit. ’s knowledge of classes gives you accurate information as soon as you need it.

Symbol Windows For Each File

Symbol Windows appear on the side of each source window and are dynamically updated to allow easy navigation within each file and to provide a quick overview of the file. See also “Symbol Windows ”.

 

Figure 1.2 A Symbol Window appears at the left side of each source file window.

 

You can click on any symbol in the Symbol Window and quickly jump there. You can also drag and drop symbols in to rearrange your code. The Symbol Window can be sorted by name, line number, and type. You can activate the Symbol Window and type the first few letters of a symbol’s name in order to quickly move to it. The Symbol Window also displays #ifdef-#endif nesting levels and symbol type icons for quick identification and orientation.

Automatic Display of Declarations in the Context Window

2.0 introduced an innovative feature called the Context Window. The Context Window automatically displays symbol definitions based on what identifier your cursor is in, or on what you are typing. See also “Context Window”.

The Context Window updates in the background and tracks what you are doing. You can click on an identifier, and the Context Window will automatically show the symbol’s definition. If the identifier is a variable, the Context Window will decode its declaration to show you its base structure or class type.

The Context Window also will automatically display files selected in the Project Window, symbols in the Relation Window, and clips selected in the Clip Window.

Call Graphs and Class Tree Diagrams [这个还需要实现]

The Relation Window is a innovation that shows interesting relationships between symbols. It runs in the background and tracks what symbols you have selected. With it, you can view class hierarchies, call trees, reference trees, and more. See also “Relation Window”.

The beauty of the Relation Window is that you don’t have to do anything special. It works in the background while you work, but you can interact with it when you want to.

The Relation Window can be viewed either graphically, or in outline format. You can also have several Relation Windows open, each showing different types of information. .

 

Figure 1.3 The Relation Window is showing references to a type, and indirect references through a function.

 

Syntax Formatting

Syntax Formatting is an important innovation that renders information in a dense, yet pleasing and useful way. It provides vastly improved display capabilities, including full rich text formatting with user-defined styles. applies styles automatically based on lexical and symbolic information about your project. See also “Syntax Formatting and Styles”.

 

Figure 1.4 Syntax Formatting makes your code come to life! This example demonstrates ’s unique comment heading styles, scaled nested parentheses, and a variety of symbol reference styles. The yellow marks in the left margin indicate lines that have been edited.

 

Syntax Formatting adds valuable information while you read your code. For example, references to local variables can look different from references to global variables. Or, references to functions can look different from references to C function-like macros. With Syntax Formatting, it becomes instantly obvious what an identifier refers to, or if it is misspelled.

Context-Sensitive Smart Rename

’s indexes allow you to effortlessly rename variables, functions, and other identifiers in one simple step. ’s context-sensitive smart matching feature is smart enough to rename local scope variables, as well as global or class scope identifiers. See also “Smart Rename”.

Mixed Language Editing

supports HTML and Active Server Page files (ASP and JSP) with embedded script. The embedded script can be browsed symbolically, and displays with appropriate syntax formatting.

Keyword Searches Like an Internet Search on Your Code Base

The Search Project command allows keyword style searching, similar to an Internet search engine. This lets you find sections of code that refer to one or more topics within a specified number of lines. For example, you might type “save disk (copy or duplicate)” and will find all references to the words “save”, “disk”, and either “copy” or “duplicate” that occur near each other (as well as word variations, such as “saves”, “saved”, and “saving”). See also “Search Project”.

Symbolic Auto-Completion

When you begin to type an identifier name, will pop up a list of potential identifier names. can show you function and variable names, as well as class and structure fields up to many levels of depth. decodes the types of variables (including inheritance) on the fly.

Quick Access to All Symbols and Files

provides more useful programming information than any other . Not only are symbol definitions tracked dynamically, but also information is offered in its most useful form.

With , you can surf your project the way you would a web site. You can just double click on a local or global symbol, and takes you to the definition, or can pop up a quick information window. You can click on a symbol, and within seconds, have a list of all references to that symbol anywhere in the project. A symbol-browsing dialog box allows you to perform regular expression searches to locate symbols.

Project Level Orientation

Entire source directory trees, even multiple directories across your network, can be added to a Project. You can specify a file name quickly without having to know what directory it is in. automatically maintains its own database of symbols and indexes for each project. Project reports and cross-references can also be generated. When your source control program updates files in the project, notices and incrementally updates the symbol information for you automatically.

Team Programming Support[这个也需要实现]

Changes made by any member of a programming team are reflected automatically because the entire code base is scanned and resynchronized as needed.

Programmers need not be concerned with the organization of the project and its files, because they can instantly jump to the definition or usages of any symbol, and can access modules and other symbols without having to know what directory, machine, or file they are in.

gives each programmer the leverage to easily understand and edit large, detailed projects created by groups of programmers.

Find References Quickly

’s symbol indexes allow you to locate references to symbols across the project in seconds, and create a listing containing active source links to all locations. See also “Lookup References”.

Hyper Source Links to Link Compiler Errors and Search Results

Source Links let you jump between interesting places instantly. Source Links are hypertext-like links that connect a location in one file with a location in another file. Source Links are used to link search results with matches, and to link compiler errors with their targets. You can also parse file specifications out of any file and create links to those files. Source Links are actively maintained as files are edited. You can insert text anywhere in a file and the links will be retained on the correct lines. See also “Searching and Replacing Text”.

Fast Project-Wide Search and Replace

can quickly search and replace in project files. The result of each search is added to a Search Results window, which contains active source links to all the search matches. ’s search index makes project-wide searches take only a few seconds. Regular expression search patterns are supported.

Project Window With Multiple Views

’s Project Window displays the contents of your project, and it has several modes. In the File List mode, it lists all files in the current project. You can quickly open any file in the project from the Project Window, or drag files from the Windows Explorer onto the Project Window to add files to the project. See also “Project Window”.

The Project Window also has modes to display symbols by category, files by category, and all project symbols in a flat list. You can use partial matching on names or parts of names to quickly locate items.

can handle projects with millions of lines of code and hundreds of thousands of declared symbols.

Integrates with External Compilers and Tools[哦,SI也集成了编译调试功能?那还需要裁剪Codelite么?]

integrates with external tools, such as compilers, make programs, filters, and source control programs by using Custom Commands. Projects can be compiled from inside and compiler errors are tracked automatically while you edit. External tools can be launched concurrently in a shell command window from within . Program output can be redirected to a file buffer or can be parsed for errors messages. You can add your own Custom Commands, which spawn external tools. See also “Custom Commands”.

Clip Window for Storing Multiple Clipboards and Boiler Plate Code[这个也没有]

You can easily rearrange code and insert boilerplate text by using the Clip Window. The Clip Window contains clips of text that you can keep handy for dropping into their source files when needed. Clips are automatically saved and maintained across sessions. Clips also remember what function or symbol they came from. See also “Clip Window”.

Two-Stage Line Revision Marks and Selective Line Restoration

displays line revision marks in the margin next to lines that have been changed, or where lines have been deleted. This makes it easy to see where you have made changes in your files. Not only can you see where you made changes, but also you can restore them to their original text with the Restore Line command. The Restore Line command is undoable. This gives you powerful, out-of-order undo capabilities!

The undo and change history for each file is preserved after you save the file. The line revision marks also change color when a file is saved. After saving a file, you can still see what lines were edited, and restore them, or perform undo operations.

Extensible Document Types and Languages

You can teach about new file types by defining Document Types. This allows different editing, display, and language parsing options for different types of files. See also “Document Types”.

You can also add your own custom languages to . A custom language specifies syntax rules, syntax formatting keywords, and simple parsing expressions. See also “Custom Languages”.

Crash Recovery Offers Full-Time Protection

saves your editing changes transparently and frequently to a recovery file. In the event of a computer crash, can recover all the changes made to files, even if you didn’t save them. This is not an auto-save feature, which interrupts you so that files can be saved. Only the changes you have made are stored in the recovery file and only when you are idle. You can specify how often the recovery file should be saved.

Persistent Workspaces

You can group sets of files and other session information into Workspaces. You can save all session state into workspace files, and restore sessions from other workspace files easily. saves the current workspace automatically when you exit. The workspace is restored when you run again, or when you open other projects. You can exit , close a project, or even crash your machine, but everything will be just as you left it when you start it up again.

Customizable Menus and Keyboard

Not only is the keyboard configurable, but also the mouse buttons and the menus are fully configurable. All your configuration settings can be stored and restored from configuration files very easily, while running . There is no need to write custom macros or to use a separate “setup” program.

Windows 2000/XP and Window 9x/Me Support

supports Windows 2000/XP features, such as semi-transparent windows for floating tool windows, and Terminal Server sessions.

Outstanding Windows User Interface

is a full 32 Bit implementation and supports Multiple Instances, Long and UNC File Name, Right-Click Shortcut Menus, and Toolbars.

uses right mouse button shortcut menus in many of its windows to provide easy access to commands and object properties.

Many useful windows can be either floating or docked to the main application window for flexibility.

Full Featured

Of course, offers great editing features, such as multi-level Undo & Redo per file, smart indenting, syntax coloring, parentheses and brace matching, renumbering, keystroke and command recording, and special selection modes for selecting blocks, functions, paragraphs, and whole words. The mouse is fully supported. Multiple windows can be open on the same file. Workspaces are used to restore files and windows from previous sessions.

Drag and Drop Editing

supports drag and drop editing of text between source files and between clips in the Clip Window. Whole symbols can be dragged and dropped from the Symbol Window, which makes rearranging functions and things very easy. You can also drop files on ’s Project Window to add a file to a project, or onto the Clip Window to load a new clip.

Real World Tested

is an industrial strength that is used by thousands of programmers at major public software companies today. has been used on complex commercial projects containing many thousands of files, many millions of lines of code, and hundreds of thousands of declared symbols.

Speed and Convenience

The philosophy of is to increase programming team productivity by clarifying source code, presenting information in a useful way, and allowing programmers to modify software in large, complex projects. By quickly providing you with complete project-wide program information, and giving you a rich program-editing environment, will enable you to work quickly and smartly.

Share and Enjoy:
  • Print this article!
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Live
  • MySpace
  • RSS
  • Slashdot
  • Technorati
  • TwitThis

Related posts:

  1. Release Early, Release Often – Open Source Project的开发策略
  2. C::B IDE Plugin插件简介
  3. 加法?减法:CodeLite or Code::Blocks just for another sourceinsight
  4. Code::Blocks IDE in openSUSE 11.1编译和安装指南
  5. Code::Blocks IDE: 手动安装和配置编译器指南
  6. Debugging With CodeLite - CodeLite调试简介
  7. Python 3.1.1 RC发布

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word

Contact us

Admin: Bryan Wu