Setting Studio Options
You can modify the behavior of aspects of Studio by selecting Tools > Options.
The options dialog contains tabs described in the following sections.
Environment Options
These options control the Studio environment:
Preferred Language: Sets the default language version used to create new classes.
Items shown in recently used lists: Specifies the number of items displayed in the most recently used file list (under the File menu).
Open File Added to Project: If enabled, adding a file to the current project automatically opens the file in Studio.
Tabbed Document Selector: If enabled, displays a tab for each open document. You can choose whether the row displays on the top of bottom of the Studio window.
When connected show documents from last time: If selected, when you start Studio all documents that were open the last time you were in the current namespace are reopened. To bypass this option, hold down Shift when Studio opens.
Hide Find and Replace window after operation complete: If selected, the Find and Replace dialog exits when it completes it task.
Compare: Select a document to compare this document to using Tools > Compare.
Specifies the typeface and size of the fonts used in the following windows and print. Each can use any Windows font but it is limited to a single typeface and size: Editor Window, Output Window, Print, Workspace, Inspector.
Show commands containing: Specify a command to search for.
Shortcut for selected command: Shows Whether the selected command has a shortcut key assigned to it.
Press new shortcut key: Enter a shortcut key to assign to the selected command.
Short currently used by: Shows whether the shortcut key you entered is currently assigned to another command.
Reset All Resets all keyboard shortcuts to original settings.
Remove Removes an existing shortcut key for the selected command.
Automatically apply last mask. If checked, the last search mask is used automatically in the File > Open dialog. Selected by default.
Use additional dedicated server process. Recommended only on very large systems if user want option to abort data collection. In rare situations on very large systems, searching for a file in the File > Open dialog can take a significant amount of time. To solve this, check this option to run the search in a separate process. If the search take more than .2 seconds, Studio displays a progress bar with a Cancel button. Note that if you check this box and an additional process is started, it affects the license count.
You can select a color for the status panel background or the document background for a software instance. Display a color palette by selecting the square to the far right of the instance. Select a color from the palette, which is shown by a color swatch and its hexadecimal color code.
HTTP Address used to serve on-line documentation: Specifies the location Studio uses to fetch on-line documentation. Select Automatic to use the default location associated with the instance, or HTTP Address to supply a different location.
Templates and add-ins will use Proxy server for 'Caché_instance': Specify the server address and port number of a Proxy server to load templates and add-ins for the current instance. The Address field supports the address formats http:// and https://, as well as address such as localhost. If no :// detected in the address, Studio adds http://.
Multiline Method Argument: If selected, method arguments are displayed in the class editor one per line. Note that if Multiline Method Argument is enabled and you use Find in Files and then select a line in the Find in Files output of a file that has multiline method arguments, the cursor may go to the wrong line number. Disable Multiline Method Arguments if this is a problem.
Option explicit: If selected, you see a syntax error if you refer to a variable that hasn't been declared. (Select this and Studio Assist to display undeclared local variables when entering a #DIM statement in a method or a DO statement in a routine.)
Show internal class members in Studio Assist: If selected, Studio Assist lists class members marked as internal.
Track variables: If selected, a green wavy underline indicates any questionable use of a variable—specifically: A variable is used that has no value, was never created, or has already been killed. Or a variable is given a value, but never used or killed before being used.
Open class in contracted view: If selected, by default a class opens with all collapsible sections contracted (as though Ctrl+- had been pressed). If not selected, a class opens with collapsible sections open (as though Ctrl++ had been pressed).
Display Snippets Check the types of code snippets you want Studio to display. You can define your own sets of code snippets by specifying a name and a text file. Use Create Code Snippet from the document's context (right-click) menu. The snippet is created in your currently-active user-defined set or if no set is currently-active, then in the first set.
Auto Save prevents you from losing changes to Studio documents on a software or system failure. By default, Auto Save is enabled and saves every 5 minutes. It saves any document that is open and has been modified since the last save into a file that is a text representation of the document, C:\Documents and Settings\<username>\Local Settings\Temp\CST*.tmp. If you subsequently save (or close) the document, this .tmp file is deleted. If Studio crashes, the next time that Studio is opened, you get a message telling you that the temporary file exists. If you open this temporary document, you can paste the relevant portions into a Studio document.
Enable service status check (Recommended) determines how often Studio checks to see if open documents and/or the open project changed on the Server outside of this Studio process. If Studio is the active application, it uses the first setting, Studio is active application (2–60 sec). If Studio is running in the background, it uses the second setting: Studio is background application (30–600 sec). If you are on a slow sytem, you can uncheck this option. As result studio will not check server status and will not be able timely detect if documents or project on server were modified or studio lost connection. Use with caution.
Automatically reload document when it is modified on the server and it has not been edited in Studio: If selected and you have a document open in an editor, but have not yet edited it, and someone else saves a new version to the server, the file in your window is automatically updated. This setting can be enabled on a namespace basis using a global: Set ^%SYS("Studio","Reload")=1 (or 0 to turn off).
Show generated documents in Namespace tree: If selected, the namespace window in workspace shows generated files. If not selected, generated files are not displayed.
Use INT as default for ObjectScript: If selected, when you select File > New > Caché Objectscript Routine, an INT file is opened. If not selected, a MAC file is opened.
Pass credentials to View Web Page: If selected, Studio checks your permissions when you select View Web Page.
Use default language (will cause reset toolbars and restart). If checked, Studio loads language specific resources. To override your system’s default language (that is, to see all menus in English) uncheck this box. When you accept the changes, toolbars are reset and Studio is restarted
Export flags:Enter flags that you want to use when exporting files. See theFlags and Qualifiers section of the $SYSTEM entry in the Caché ObjectScript Reference for more information.
Editor Options
The editor options allow you to control the behavior of the Studio text editor. These options include:
Enable Syntax Checking: If enabled, syntax errors are highlighted. You can specify when syntax checking should be performed - either on each change (each character that you type or erase) (Syntax Check on Change) or when the cursor leaves the current line (Syntax Check on Leave Line).You can specify whether you also want the errors to be underlined with a wavy red line (Underline Errors).
Parsing delay. Check if parsing slow. Uncheck if line flashing. If Syntax Check on Change and Parsing delay are both enabled and you are entering text faster than the parser can reparse, the text flashes between black and the parsed color. If the text is flashing, disable Parsing Delay by clearing this option or pressing Ctrl+Alt+O. Response may slow slightly since every keystroke causes a reparse, but the flashing stops. This switch needs to be set at the start of each Studio session.
Enable Bracket Matching: If enabled, pairs of matching brackets enclosing the current cursor point are bolded. Depending on the language you are in, brackets include [ ] square brackets, ( ) parentheses, and < > angle brackets. Note that for Enable Bracket Matching to work, Enable Syntax Checking must be checked. Bracket Matching Line LimitLimits the number of lines to search above and below the caret position to locate a matching bracket (as an unlimited search in a long file would slow the editor down significantly).
Studio Assist: Enables code completion. As you are entering ObjectScript code, a drop-down menu is displayed showing available options for what you can enter next. If you type a package name, available classes are listed. If you type a class, available methods are listed. If you type a method, available arguments are listed. Available options may be listed in other locations as well, such as with #dim declarations and trigger code.
To display undeclared local variables when entering a #DIM statement, you must be in a method, and you must have selected Studio Assist and Option Explicit. To be listed, a variable must not begin with %, must not be a parameter or in the public list, and must not have been declared already. ))
If you type $$$, available macros are listed as follows: User-defined macros are listed if they are defined in the current file and if they are defined in an include file and, within the include file, they are preceded by a line beginning with three slashes, ///. System-defined macros are listed if the current file is a class file.
Following a partial member name, Studio displays a list of matching members as follows: If the partial entry begins with double-quotes (or a single quote), the popup contain only members whose names must be quoted in the program; that is, they contain spaces or other non-alphanumeric characters. If the partial entry does NOT begin with double-quotes, the popup contains only members whose names do not need to be quoted. If Studio Assist is triggered directly after a period, the popup contains all member names.
The Studio syntax checker uses a different coloring scheme for each language it supports. This option lets you specify the colors used to highlight syntactic elements when Studio syntax coloring is enabled.
To change the color used by the Studio Editor for a specific syntax element do the following in the Options dialog Appearance tab:
-
Select a language (such as ObjectScript) from the available options
-
Select a syntax element (such as comments)
-
Select the desired foreground (and background color if you must!) color
-
Select Apply to use the new color scheme.
Reset reverts the selected syntax element to its default color.
Reset All reverts all syntax colors to their default values.
You can also change the color for a particular syntax element by right-clicking it in the editor window and selecting Set Syntax Color.
This feature only applies to ObjectScript routines.
Specifies the case (Use Current Case, Uppercase, Lowercase, or Mixed Case) used to expand ObjectScript commands when you select Edit > Advanced > Expand Commands. Set this option, highlight the code you want to expand, then select Edit > Advanced > Expand Commands. This also applies if you are compressing commands.
Defines characteristics of automatic indentation.
-
Basic: If enabled, if a line begins with a tab, a space, or any combination of spaces and tabs, when you press Enter, the next line is started automatically with the same combination of spaces and tabs.
-
User-defined ('/t' for tab)
: If enabled, you can specify any characters that you would like to be automatically entered at the start of each subsequent line. For example, if you enter the set of characters \t.#/; (tab, dot, pound, slash, semi-colon) and if a line begins with any of these characters or any combination of these characters, when you press Enter, the next line is started automatically with the same combination of characters.
-
None: No automatic indentation is provided.
Displays a table of comment delimiters for Studio document types. Select in a cell to enter a delimiter. Highlight a block of text in a Studio document and press Ctrl + Alt + / to delimit the block with Multi-Start and Multi-End characters.
Controls the display of some items.
-
Show Special Characters: If enabled, the editor displays newline and tab characters using special symbols.
-
Show Line Numbers: If enabled, the editor displays line numbers.
-
Tab Size: Specifies the size of a tab by number of spaces.
-
Convert tabs to spaces: If enabled, the editor converts tabs to spaces.
-
Cloudy background color for generated files: If enabled, the editor displays generated files with a greyed background color to differentiate them from user-created files.
Compiler Options
These options affect how Studio compiles your code. There are two pages, Flags and Optimization and Behavior.
This page includes 3 sections: Compile Flags, Optimization Level, and Flags.
The Compile Flags section includes
Keep Generated Source Code: If enabled, specifies that the compiler should not delete any intermediate source code (routines) that it creates as a consequence of compiling.
Compile Dependent Classes: If enabled, the compiler compiles all of a class' dependent subclasses.
Skip Related Up-to-date Documents: If enabled, this sets the “Do not compile up-to-date documents” flag and the compiler does not compile related documents that have not been modified since their last compilation. The document that is current in the editor is always, however, recompiled.
Compile In-use Classes: If enabled, the compiler compiles a class even if there currently are instances of the class in active use.
In the Optimization Level section, you can set the level of optimization to improve execution speed. If optimization is enabled, the compiler reorganizes the code for maximum benefit, including the copying of expressions between classes to eliminate method calls. Levels are:
-
No optimization: Recommended during development. It does not recompile dependent classes and it keeps a strong correspondence between source and object code so it is easier to read and debug. Default.
-
Optimize properties: Optimizes any reference to ..property to the instance variable reference (for simple properties described by datatypes where the get/set method is not overridden).
-
Optimize within class and calls to library classes: Optimizes classes, as well as calls to system (% ) classes (as code may be extracted and moved during the process). Note that incremental compile no longer works for optimized classes.
In the Flags field, enter compiler flags you want used in this field shown in the table.
To see this list of flags in the terminal, enter: d ##class(%SYSTEM.OBJ).ShowFlags()
To see a list of qualifiers, enter: d ##class(%SYSTEM.OBJ).ShowQualifiers()
Flag | Effect |
---|---|
a | Include application classes. This flag is set by default. |
b | Include sub classes. |
c | Compile. Compile the class definition(s) after loading. |
d | Display. This flag is set by default. |
e | Delete extent. |
h | Generate help. |
I | Validate XML export format against schema on Load. |
k | Keep source. When this flag is set, source code of generated routines is kept. |
l | Lock classes while compiling. This flag is set by default. |
p | Percent. Include classes with names of the form %*. |
r | Recursive. Compile all the classes that are dependency predecessors. |
s | Process system messages or application messages. |
u | Update only. Skip compilation of classes that are already up-to-date. |
v | Include classes that are related to the current class in the way that they either reference to or are referenced by the current class in SQL usage. |
-
Before Compile: You can choose a default behavior for Studio to take when you select Compile. You can select that, before compiling, Studio will automatically save all modified documents, prompt to save modified documents, or do not save modified documents.
-
Compile Routine on Save Select this option to have the system compile any modified documents when you select Save. By default, this option is turned off.
SQL Options
Use these options if you primarily use Studio to create classes that map onto existing legacy data.
If enabled, the other default settings on this tab are enabled. This option effects only how Studio wizards operate; it has nothing to do with the runtime behavior of applications.
Default Storage Type: Specifies the storage class used when the New Class wizard creates a new class.
Default $Piece Separator: Specifies the default data delimiter used when defining a mapping to legacy data structures.
Default Collation: Specifies the default index collation used when defining a mapping to legacy data structures.
Private Row ID: Specifies whether new classes should have their SqlRowIdPrivate flag set by default.
Automatically Generate Row ID: Automatically creates a row id field when mapping data to existing storage structures.
Studio Look Options
Select a theme from the list to change the color scheme of Studio using this option.