"Browsing" is the ability to understanding a body of source code by examining its logical structure through the use of a symbolic object browser.
Visual Sidekick's object browser can display various objects (symbols, files and folders) grouped in separate "sections" in the Browse Tree. Each section is separated by a dividing line.
The objects that are displayed in the Browse Tree depend on the currently select View, and the current contents of the Filter Boxes (see Filtering).
Visual Sidekick defines a number of views that set up the Browse Tree with a specific set of symbols.
These views are controlled by the 5-button group in the Browse Toolbar. Alternatively, each view can be selected directly with a hotkey.
| View | 2003 Icon | 2005 Icon | Hotkey | Description |
|---|---|---|---|---|
| Local | Ctrl-Shift-L | Displays symbols that are context-dependent on the current file. | ||
| Solution | Ctrl-Alt-N | Displays symbols from all files in the current solution (or workspace). | ||
| Unmanaged C++ Library | Ctrl-Alt-U | Displays symbols from all files in the selected unmanaged C++ libraries. Libraries include: STL, MFC, ATL, Win32, DirectX and more. You can select which libraries to load on a per-solution basis. | ||
| Solution Hierarchy | Ctrl-Alt-H | Display an inheritance tree for all classes declared in the current solution. | ||
| Clipboard History | Ctrl-Alt-C | Shows the last 15 clipboard copy operations, allowing pasting of this historical content. |
For the Local View, Visual Sidekick displays the following sections in the Browse Tree:
| Section | Description |
|---|---|
| Projects and Folders | Shows all Visual Studio projects that all folders that contain the current file. Expanding each folder shows the files stored in the folder as well as all classes defined in those files. |
| Types | Shows all types in the current file and all associated files (e.g. the main header), including classes, structs, unions, interfaces, enums, delegates, typedefs. Expanding each type shows all nested symbols. |
| Files | Shows the current file and all #include'd files in an flat alphabetical format. Expanding each file shows the symbols defined in that file. |
| Global Symbols | Shows all symbols defined in the current file and all associated files (e.g. the main header) in a flat alphabetical format. Expanding each symbol shows symbols related to the parent symbol (eg. parameters, parent class, etc). |
For the Solution View and the Unmanaged C++ Library View, Visual Sidekick displays the following sections in the Browse Tree:
| Section | Description |
|---|---|
| Projects and Folders | Shows all Visual Studio projects with their logical folders. Expanding each folder shows the files stored in the folder as well as all classes defined in those files. |
| Namespaces | Shows all namespaces and namespace members in a hierarchical format. |
| Types | Shows all types in the solution in an flat alphabetical format. These include classes, structs, unions, interfaces, enums, delegates, typedefs, etc. Expanding each type shows all nested symbols. |
| Files | Shows all files in an flat alphabetical format. Expanding each file shows the symbols defined in that file. |
| Global Symbols | Shows all symbols defined in all the solution files in a flat alphabetical format. Expanding each symbol shows symbols related to the parent symbol (i.e. parent class, parameter types and return type). |
The following table lists all the Global Symbols that Visual Sidekick supports, together with a description of their child symbol links:
| Symbol | 2003 Icon | 2005 Icon | Description | Children |
|---|---|---|---|---|
| Namespace | ![]() |
![]() |
Represents a C++, MC++ or C# namespace definition. | All nested namespaces and namespace member types. |
| Class | ![]() |
![]() |
Represents a C++, MC++ or C# class definition. | Base classes and interfaces; nested classes/ enums/ typedefs/ events/ delegates/ etc; methods; members and friend functions. (More details) |
| Struct | ![]() |
![]() |
Represents a C++, MC++ or C# struct definition. | See Class. |
| Union | ![]() |
![]() |
Represents a C++ union definition. | See Class. |
| Interface | ![]() |
![]() |
Represents a MC++ or C# interface definition. Also represents any C++ class that consists of only public pure-virtual functions. | See Class. |
| Enum | ![]() |
![]() |
Represents a C++, MC++ or C# enum definition. | All Enum Identifiers for this Enum. |
| Enum Identifier | ![]() |
![]() |
Represents a C++, MC++ or C# enum "identifier" inside a enum definition. | None. |
| Property | ![]() |
![]() |
Represents a MC++ or C# property or indexer definition. | The property type. |
| Delegate | ![]() |
![]() |
Represents a MC++ or C# delegate definition. | The return type and the types of any parameter. This is useful as a quick link to the referenced type. |
| Event | ![]() |
![]() |
Represents a MC++ or C# event definition. | The event type. |
| Typedef | ![]() |
![]() |
Represents a C++ or MC++ typedef name. | The aliased type. This is very useful to link through to the typedef alias in the browser. |
| Function Specification | ![]() |
![]() |
Represents a C++ specification of a global function or method (header file). | The return type and the types of any parameter. This is useful as a quick link to the referenced type. |
| Function Body | ![]() |
![]() |
Represents a C++ implementation of a global function or method. | See Function Specification. |
| Abstract Method Specification | ![]() |
![]() |
Represents the specification of a C++ pure virtual or C# abstract method. | See Function Specification. |
| Static Method Specification | ![]() |
![]() |
Represents the specification and/or the implementation of a C++ or C# static method. | See Function Specification. |
| Implemented Method | ![]() |
![]() |
Represents the specification and/or body of a non-static method (child of a class symbol.) | See Function Specification. |
| Operator Method | ![]() |
![]() |
Represents both the specification and/or the implementation of a C++, MC++ or C# overloaded operator or operator cast. | See Function Specification. |
| Variable / Field | ![]() |
![]() |
Represents a global variable, member variable or field. | The type of the variable, member or field. |
| Constant | ![]() |
![]() |
Represents a C++, MC++ or C# const declaration. | The type of the constant. |
| Define | ![]() |
![]() |
Represents a C++, MC++ or C# #define pre-processor declaration. | None. |
| Include File | ![]() |
![]() |
Represents a C++ file #include directive. | None. |
| Include Namespace | ![]() |
![]() |
Represents a MC++ or C# #using directive. | None. |
Any symbol that is enclosed in a class namespace (e.g. a method or member or nested class) will have its parent class added to its children. This is useful in the Global Symbol flat view to easily navigate or browse from member symbol to the parent class.
| Accessibilty | 2003 Icon | 2005 Icon | Description |
|---|---|---|---|
| Public | ![]() |
![]() |
Public accessibilty is indicated by having no annotated symbol. |
| Protected | ![]() |
![]() |
Protected accessibilty is indicated with a yellow key symbol. |
| Private | ![]() |
![]() |
Private accessibilty is indicated with a gray padlock symbol. |
| Internal | ![]() |
![]() |
Internal accessibility is indicated with a yellow envelope symbol. |
| Friend | ![]() |
![]() |
Friend accessibilty is indicated with a yellow smiley symbol. |
| Symbol | 2003 Icon | 2005 Icon | Description | Children |
|---|---|---|---|---|
| Base Classes & Interfaces | ![]() |
![]() |
A grouping of base-classes and interfaces that the current class is derived from. | All derived base classes, structs, unions or interfaces. |
| Derived Base Class | ![]() |
![]() |
Represents a base class in a hierarchy of descendant classes. | All classes that have the current class as a parent, as well as a link to the base class symbol itself. |
| Derived Leaf Class | ![]() |
![]() |
Represents a leaf class in a hierarchy of descendant classes. | A link to the leaf class symbol. |
| Clipboard Entry | ![]() |
![]() |
A historical clipboard copy. | None. |
| Undefined Symbol | ![]() |
![]() |
A symbol that is referenced by name, but does not have a definition in the solution or set of libraries. | None. |
| Source File | ![]() ![]() | ![]() ![]() ... |
Different icons are used to represent differernt file types. There are icons for .cpp, .h, .inl, .cs and so forth. | Flat list of all symbols in the file, sorted by order in the file. |
| Other File | ![]() ![]() | ![]() ![]() ... |
Different icons are used to represent differernt file types. There are icons for .htm, .xml, .txt and so forth. | None. |
| Project | ![]() ![]() | ![]() ![]() ... |
Different icons are used to represent differernt project types. There are icons for C++ projects, C# projects, VB projects and so forth. | All files and child folders inside the project. Optionally includes all classes defined within these files. |
| Keyboard | Description |
|---|---|
| Right Arrow | Expands a tree node. |
| Left Arrow | Collapses a tree node and all its children. |
| Ctrl-Left Arrow | Collapses all tree nodes and all their children. |
| Home | Moves to the first row in the Browse Tree. If already on the first row, moves to the filter box. |
| End | Moves to the last row in the Browse Tree. |
| Ctrl-N | Loads the current symbol's name into the Primary Filter (see Filtering). |
| Ctrl-S | Loads the current symbol's scope into the Primary Filter (see Filtering). |
| Enter | Activates the primary function on the current symbol (see Navigating). |
| Ctrl-Enter | Activates the secondary function on the current symbol (see Navigating). |
| . (full-stop) | (On a classname) Inserts the classname into the Primary Filter and inserts an asterix into the Secondary Filter, thus expanding the class's members. |