This chapter describes SlickEdit Core Context Tagging® system used for symbol analysis, the features that use Context Tagging, and how to manage tag files.
Context Tagging® is a feature set that performs expression type, scope, and inheritance analysis as well as symbol look-up within the current context to help you navigate and write code. Context Tagging uses an engine that parses your code and builds a database of symbol definitions and declarations commonly referred to as tags. Context Tagging features work with your source code, not just standard APIs (Application Programming Interfaces). Symbol information is updated dynamically as you edit your source code.
The Context Tagging feature set includes:
Before you begin working with these features, some configuration is required. See Building Tag Files.
The Context Tagging database allows you to navigate your code, jumping from a symbol to its definition or its references. For more information, see Symbol Navigation.
When typing a member access operator (Dot, Comma, "->", and ":" for C++; Dot for Java; IN and OF for COBOL), members are automatically listed. You can access this feature on demand by pressing Ctrl+Space or Alt+Dot when the cursor is positioned after the member access character.
When the cursor is positioned after a member access character, like the dot in "foo.", Alt+Dot will display a list of members for that symbol. If the cursor is not positioned after a member access character, this key binding will display a list of symbols for the current context.
If you want to disable automatic listing and only list members on demand, turn List Members off, as follows:
From the main menu, click Window → SlickEdit Preferences → Languages, expand your language category and language, then select Context Tagging.
Clear the Auto-list members check box.
The following example shows the results of what is displayed after typing a Dot when entering Java source. Notice that the Javadoc comments are displayed in a mini-HTML browser. To view documentation for Java APIs, you must install the source files as part of the JDK. If clicking on a URL, the default HTML browser starts. Clicking on other hypertext links navigates within the comment window. The equals method in the example below has two occurrences, one in the String class and one in the Object class. Press Ctrl+PgDn or Ctrl+PgUp to select the next or previous occurrence.

The example below shows the display after typing a Dot when entering C++ source code. The stack class is one of the C++ standard template library classes.

The prototype for a function is automatically displayed when typing a function operator such as the open parenthesis. This also highlights the current argument within the displayed prototype. When working with C++, parameter info is also automatically displayed when typing a template argument operator such as <.
The following example shows the result of pressing Alt+Comma inside the argument list of the Java API String method startsWith. The Javadoc comments are displayed in a mini-HTML browser. To view documentation for Java APIs, you must install the source files as part of the JDK. If clicking on a URL, the default HTML browser starts. Clicking on other hypertext links will navigate within the comment window. The startsWith method has two overloads that accept different arguments. Press Ctrl+PgDn or Ctrl+PgUp to select the next or previous occurrence.

The example below shows the result of pressing Alt+Comma inside the argument list of the WIN32 API function CreateWindowEx.

When typing a function operator such as the open parenthesis, "(", a list of compatible variables and expressions for the current argument is displayed. Auto List Compatible Parameters can also be used instead of List Members, in assignment statements (x=<Alt+Comma>) and when listing members of a class or struct. Keep in mind, not all possible variables and expressions are listed. Press Alt+Dot if the symbol that you want is not listed. To access Auto List Compatible Parameters on demand, press Alt+Comma. If you want to disable automatic listing and only list parameters on demand, turn Auto List Compatible Parameters off, as follows:
From the main menu, click Window → SlickEdit Preferences → Languages, expand your language category and language, then select Context Tagging.
Clear the Auto-list compatible parameters check box.
The following example displays the results of pressing Alt+Comma after an assignment operator. The Rect, pRect, and argv are not listed because their types do not match.

Completions save keystrokes as you are typing code by providing a way to automatically complete partially-typed text. Press Ctrl+Space for SlickEdit® Core to automatically complete the rest of the symbol you're currently typing. If a unique match is not found, a list is displayed allowing the selection of the exact match. See Completions for more information.
SlickEdit® Core gives you the ability to browse and view symbols in your files or workspaces. There are several views and dialogs that display information as you work to help you find what you need exactly when you need it:
Class - This view provides an outline view of both the members of the current class as well as any visible inherited members. It also shows the inheritance hierarchy of the current class. The Class view is docked as a tab on the left side of the editor by default.
Outline - The Outline view provides an outline view of symbols in the current workspace.
Find Symbol - This dialog is used to locate symbols (tags) in your code. It allows you to search for symbols by name using either a regular expression, substring, or fast prefix match. This window can be displayed by clicking Search → Find Symbol or by using the gui_search command.
Preview - The Preview view provides a portal for viewing information in other files without having to open them in the editor. It automatically shows this information when you are working with certain features. This window is docked as a tab on the bottom of the editor by default.
References - This window displays the list of symbol references (uses) found the last time that you used the Go to Reference feature (Ctrl+/ or push_ref command (see Symbol Navigation for more information).
Symbols - The Symbols view contains the symbol browser, which lists symbols from all of the tag files. It is docked as a tab on the left side of the editor by default.
For more detailed information about these views and how SlickEdit Core can help you browse symbols, see Symbol Browsing. For information about how to navigate between symbols in files, see Symbol Navigation.
Statement Level Tagging is a feature of Context Tagging that provides a more detailed view of items in the Defs view for C/C++, Java, Python, and Visual Basic .NET. Along with definitions, view constructs like if, while, and for statements. It also displays every non-comment line of code. To see this feature in action, from the Outline View, right-click and select Show Statements.