@@Menus \ \ @@FileMenu <title File Menu> <GROUP Menus> The File Menu contains many of the standard new, open, save, close, and printing buttons that one would expect in a text \or code editor. * Menu Items * <table> Menu Item \Description ----------------- --------------------------------------------- New... Create a new File or Project. Open File... Open an existing file. Close File Open Project... Open an existing Project file. Close Project Save Saves the currently active file if changes have been made. If the file is new, you will be prompted for a file name and location. Save As... Save the currently active file with a different name. Save All Saves any unsaved changes to project and script files. Print... Print the currently active file. Print Setup... Print Preview... Recent Files List of recently closed files. Recent Projects List of recently closed projects. Exit </table> * Tutorials * <link HowToCreateNewProject, Create a New Project> @@EditMenu <title Edit Menu> <GROUP Menus> This menu list contains many of the standard text and code editing functions. * Menu Items * <table> Menu Item \Description ------------ ---------------------------------------------------- Undo Undo the last edit. Unfortunately with ActiproSoftware SyntaxEditor, a selective Undo \History is not possible. Redo Redo the last edit. Unfortunately with ActiproSoftware SyntaxEditor, a selective Redo \History is not possible. Cut Copy Paste Delete Indent Insert a tab at the beginning of the current line. Outdent Remove a tab at the beginning of the current line. Comment Insert "// " at the beginning of the current line. Selection Uncomment Remove "// " from the beginning of the current Selection line. Make Convert all letters in the selection to uppercase. Uppercase Make Convert all letters in the selection to lowercase. Lowercase Delete Remove trailing whitespace at the end of the Horizontal current line. Whitespace Bookmarks Toggle, Next, Previous, and Clear bookmarks. Show Line Hide/show line numbers on the left side of the Numbers document. Insert Code If your Code Snippets Path has been set, allows Snippet you to browse and insert one of those snippets. See <link LanguageSettingsCategory, Language Settings Category>. </table> @@ViewMenu <title View Menu> <GROUP Menus> The View Menu allows you to open and/or give focus to any of the dockable windows found in the application: Project Explorer, Document Outline, Output, Find Results, Errors, and Help. Each window's menu item contains a drop down menu with the following items: <table> Menu Item \Description ---------- -------------------------------------------------------- Show Shows the window and gives it focus. Center Centers the window over the Main Window. Dock If the window is floating, it returns to its last known docked position, if any. Float If the window is docked, it will float in its last known floating position or in its default floating position. </table> @@CompilingMenu <title Compiling Menu> <GROUP Menus> All of your compiling needs can be found here. When compiling a Project, the date-time stamp of each script \file is checked against it's compiled object files and skipped if the object files are newer. Compiling a single script file ignores the date-time stamp. * Menu Items * <table> Menu Item \Description ------------ ------------------------------------------------------------------------------------------ Compile Compiles the project (or all open files if no project Project / is loaded), sending progress messages to the <link OutputWindow, Output Window>. Compile All Errors are directed to the <link ErrorsWindow, Errors Window>.<p/><p/>In Files the case of a project, a list of all the files that were compiled (all the files in the project) is generated and saved in the project directory. It has the same file name as the project file, but with a '.scolist' extension. This list is used in a Post-Compile process that you can specify in the <link ProjectSettingsCategory, Project Settings Category> \of the Settings dialog.<p/><p/>Also, a batch file is saved so that you may compile your projects offline. Recompile Deletes the project's .sco and .scd files (or the Project / \output files for all open files if no project is Recompile loaded) before compiling it. All Files Compile Compiles the current script file, sending relevant \File progress and error information to the <link OutputWindow, Output Window>. Errors are directed to the <link ErrorsWindow, Errors Window>. Stop Halts the compiling process. Compile Goto Next After a compile that has generated errors, this button Error will cycle you through the line or lines in the file \on which a compile error occurred. Save Before Toggle this on to save the current script file before Compile attempting to compile it. Don't Save Disables 'Save Before Compile'. Before Compile Save All Saves all open script files before compiling. Before Compile Start Debug Executes the Run Command specified on the <link ToolsMenuSettings, Settings> dialog. Performs a compile if you have edited any of the project's file(s) (or open files if no project is loaded) since the last time they were compiled. </table> * Tutorials * <link HowToCompileScript, Compile a Script> <link HowToCompileProject, Compile a Project> @@IntellisenseMenu <title Intellisense Menu> <GROUP Menus> From the MSDN Website : "IntelliSense provides an array of options that make language references easily accessible. When coding, you do not need to leave the Code Editor or the Immediate Mode command window to perform searches on language elements. You can keep your context, find the information you need, insert language elements directly into your code, and even have IntelliSense complete your typing for you." If autocomplete is enabled, a dropdown menu will appear with a list of alphabetically matching syntax keywords when you begin typing. Double-click the left mouse button on the desired item, or use the arrow keys to scroll through the list and press enter or tab to select it. Press escape to close the dropdown menu, thus canceling autocomplete. The list of autocomplete keywords is derived from keywords in the current file and from files included with the USING directive. In addition, your Compiler settings for Include \File and Include Path will have their keywords added as well. If a project is loaded, we also add the keywords for every file in the project. See <link ToolsMenuSettings, Settings> for more information. The exact behavior of the Intellisense system is determined by your game-specific <link ParserPluginDll, Parser Plugin DLL>. In an effort to emulate Visual Studio and plugins such as Whole Tomato's Visual Assist X, many of the files' Intellisense are reparsed for you. This happens the first time a file is loaded (or reloaded). Also, it can happen every time the file is saved and/or every time the active \file is changed via the Document Tab. In addition, whenever the <link ToolsMenuSettings, Settings> are updated, all files are reparsed in case the <link CompilingSettingsCategory, Compiling Settings Category's> Include File and/or Include Path were changed. * Menu Items * <table> Menu Item \Description ------------- ---------------------------------------------------------- Refresh Refreshes the Intellisense on the current file by Intellisense forcing a Semantic Parse that looks for keywords and colors them appropriately. Intellisense Enables IntelliPrompt Autocomplete (if checked), Enabled IntelliPrompt Struct MemberList, QuickInfo Popups (when the mouse hovers over keywords) and the Document Outline. Autocomplete Displays the IntelliPrompt Autocomplete list providing Enabled keywords that begin with the letter typed. Autocomplete Keywords that are function calls will add the With parentheses automatically when selected from the Brackets IntelliPrompt Autocomplete list. Also, typing ", (, [, or << will automatically add the ending pair. Complete When this is enabled, and the word typed matches a Word On word in the IntelliPrompt Autocomplete List, First Match case-insensitively,, then Complete Word is triggered. For \example, if the List contains "INT" and "INT_TO_ENUM" and the user types "int", Complete Word will replace "int" with "INT" and close the Autcomplete List. Complete Word can be triggered manually by pressing Ctrl + Space, or by selecting an item from the IntelliPrompt Autocomplete List. Complete When this is enabled, and only one item exists in the Word On IntelliPrompt Autocomplete List, and the word typed Exact Match matches case-insensitively, then Complete Word is triggered. This means "activate" will become "ACTIVATE" and, when Autocomplete With Brackets is enabled, "ENDACTIVATE" will also be inserted. Complete Word can be triggered manually by pressing Ctrl + Space, or by selecting an item from the IntelliPrompt Autocomplete List. Complete No Complete Word is triggered based on the words typed Word by the user. Complete Word can be triggered manually Disabled by pressing Ctrl + Space, or by selecting an item from the IntelliPrompt Autocomplete List. Show Items When checked, the IntelliPrompt Autocomplete list That includes keywords that contain the letter(s) typed. Contain Current String Add Project When this option is checked, symbols from every file Symbols in the current project will be added to the IntelliPrompt Autocomplete list. Add When this option is checked, symbols from files IncludePath residing in the IncludePath will be added to the Symbols IntelliPrompt Autocomplete list. Filter This menu items in this drop down menu allow the user to control what kinds of language elements get added to the IntelliPrompt Autocomplete List. Selections include Constants, Subroutines, Struct Types, and several more. Highlight Not functional. May be used again at a future date. Enums Highlight When checked, QuickInfo Popup text will be colorized QuickInfo according to the current Syntax Highlighting options. Popups Turn this off if your color scheme does not mesh well with a light yellow background. </table> * Tips for Improving Performance * If you feel the text editor is performing too slowly or is less responsive that you would like, try disabling the following items one after the other until the performance is acceptable: * Add IncludePath Symbols and/or Add Project Symbols * Show Items that Contain Current String * Autocomplete Enabled * Intellisense Enabled On certain single core machines, or machines without hyper-threading capability, it may be advantageous to disable a couple of advanced <link ToolsMenuSettings, settings>: * Parsing Service enabled during Project loads. See <link ProjectSettingsCategory, Project Settings>. * Parsing Service enabled during File editing. Set <link FileSettingsCategory, File Settings>. @@SearchMenu <title Search Menu> <GROUP Menus> The Search menu contains the most common functionality for searching your documents for words and phrases. * Menu Items * <table> Menu Item \Description ----------------------------------------------------------------- ------------------------------------------------- Use new Find/Replace dialog <link SearchMenuFindReplace, Find/Replace...> Launches the Find/Replace window for searching the current selection (if a file is open), the current file (if there is one), all open documents, or the entire project (if one is loaded). Use new Find/Replace in Files dialog <link SearchMenuFindReplaceInFiles, Find/Replace In Files...> Launches the Find/Replace In Files window for searching the current file, open files, files in the project and/or files in a specified directory. Goto Next After a Find/Replace in Files operation has Find Result filled the Output window with results, this button will cycle through them. Incremental An incremental search will find the first Search matching pattern of characters past the cursor as you type them. Reverse Same as incremental search except it finds the Incremental first match before the cursor. Search Go To Line... Launches a dialog box where you enter the desired line number to place the cursor on. Go To In the current open file and context, locates Definition the definition of the keyword underneath or right before the cursor. </table> @@SearchMenuFindReplace <title Find/Replace> <GROUP SearchMenu> This dialog provides most of the same functionality as Microsoft Visual Studio .NET's Find dialog with the Replace functionality. When you launch the dialog box, It will attempt to seed the 'Find what' text box with one of the following: * Highlighted text if no newline character is found. * The word (separated by white space) found at the current cursor position, if any. * The last search text if the first two options fail. * Search Options * <table> Option \Description ------------ ------------------------------------------------------ Match Case Perform a case-sensitive search. Match Whole Only match letters/words separated by white space Words characters. Search Up When unchecked, searches down the document from the current cursor position. Otherwise searches up. Use Use Regular Expressions Mark with Not allowed on an Entire Project search. When checked Bookmarks and the Mark All button is pressed, will mark any line that has the search text with a blue box, similar to Microsoft Visual Studio .NET. When not checked, will underline each occurrence found. </table> * Search Filter * <table> Filter \Description ---------- ------------------------------------------------ Current Search is confined to the highlighted text. Selection Current Search through the current active script file. Document All Open Search through all open script files. Documents Entire Searches through all files found in the current Project project (if any), plus all open documents not found in the project. <b>Replace All cannot be undone if this is selected.</b> </table> * Buttons * <table> Button \Description ------------ ---------------------------------------------------------- Find Highlights the next occurrence of the search text. After the initial find, acts like a Find Next. Enabled when text is entered in the 'Find what' box. Replace Replaces the search text with the replacement text, then finds the next occurrence. Enabled when text is entered in the 'Replace with' box Replace All Replaces all occurrences of the search text with the replacement text. <b>This process cannot be reversed if 'Entire Project' is selected. </b>Enabled when text is entered in the 'Replace with' box. Mark All Places a bookmark next to each line with an occurrence of the search text. Enabled when text is entered in the 'Find what' box, and anything but 'Entire Project' is selected. Close Closes the dialog </table> @@SearchMenuFindReplaceInFiles <title Find/Replace in Files> <GROUP SearchMenu> Like the Find/Replace dialog, this dialog also provides most \of the same functionality as Microsoft Visual Studio .NET's Find in Files dialog with the Replace functionality. When you launch the dialog box, It will attempt to seed the 'Find what' text box with one of the following: * Highlighted text if no newline character is found. * The word (separated by white space) found at the current cursor position, if any. * The last search text if the first two options fail. The line(s) in each file that contain the search text will fill the Output Window. <b>Search Options</b> <table> Option \Description -------------- ------------------------------------------------- Match Case Perform a case-sensitive search. Match Whole Only match letters/words separated by white Words space characters. Look in When searching a directory, indicates whether to Subfolders recursively search subfolders. \File Types Filter what type(s) of files to search in. Separated by semi-colons. Open modified When performing a Replace All, all files in files after which replacements occurred will be opened after Replace All the operation has completed. </table> <b>Search Filter</b> <table> Filter \Description ---------- ------------------------------------------------ Current Search through the current active script file. Document All Open Search through all open script files. Documents Entire Searches through all files found in the current Project project (if any), plus all open documents not found in the project. \<User Type or browse for a folder to search in. The defined\> search will also include all open documents and project files. </table> <b>Buttons</b> <table> Button \Description ------------ ------------------------------------------------------------------ Find Searches for the text and displays the results in the \Output Window.. Enabled when text is entered in the 'Find what' box. Find Next Finds the next occurrence in the current file. When the end of the file is reached, opens the next file and highlights the search text. Replace Replaces the search text with the replacement text, then finds the next occurrence. Enabled when text is entered in the 'Replace with' box Replace All Replaces all occurrences of the search text with the replacement text. <b>This process cannot be reversed. </b>Enabled when text is entered in the 'Replace with' box. ... Browse for a folder to search in. Stop Halt the current search. Close Closes the dialog </table> @@SearchMenuRegularExpressions <title Regular Expressions> <GROUP SearchMenu> The SyntaxEditor regular expression engine accepts an extensive set of regular expression elements that enable you to efficiently search for text patterns. This section details the set of characters, operators, and constructs that you can use to define regular expressions. Whitespace characters are ignored in all regular expression patterns. Use the \\s character class to indicate whitespace matching. * Character Escapes * Most of the important regular expression language operators are unescaped single characters. The escape character \\ (a single backslash) signals to the regular expression parser that the character following the backslash is not an \operator. For example, the parser treats an asterisk (*) as a repeating quantifier and a backslash followed by an asterisk (\\*) as the Unicode character <i>\\u002A</i>. <table> Escaped \Description Character ------------ -------------------------------------------------------- (Ordinary Characters other than <i>. $ ^ { [ ( | ) * + ? \\</i> characters) match themselves. \\a Matches a bell (alarm) <i>\\u0007</i>. \\t Matches a tab <i>\\u0009</i>. \\r Matches a carriage return <i>\\u000D</i>. \\v Matches a vertical tab <i>\\u000B</i>. \\f Matches a form feed <i>\\u000C</i>. \\n Matches a new line <i>\\u000A</i>. \\e Matches an escape <i>\\u001B</i>. \\040 Matches an ASCII character as octal (exactly three digits). The character <i>\\040</i> represents a space. \\x20 Matches an ASCII character using hexadecimal representation (exactly two digits). \\u0020 Matches a Unicode character using hexadecimal representation (exactly four digits). \\ When followed by a character that is not recognized as an escaped character, matches that character. For \example, <i>\\*</i> is the same as <i>\\x2A</i>. </table> * Character Classes * The following table summarizes character matching syntax. <table> Character \Description Class ------------ ------------------------------------------------------- . Matches any character except <i>\\n</i>. When within a character class, the <i>.</i> will be treated as a period character. [aeiou] Matches any single character included in the specified set of characters. [^aeiou] Matches any single character not in the specified set \of characters. [0-9a-fA-F] Use of a hyphen (�) allows specification of contiguous character ranges. \\w Matches any word character, which includes letters, digits, and underscores. \\W Matches any non-word character. \\s Matches any whitespace character. \\S Matches any non-whitespace character. \\d Matches any decimal digit. \\D Matches any non-digit. [.\\w\\s] Escaped built-in character classes such as <i>\\w</i> and <i>\\s</i> may be used in a character class. This \example matches any period, word or whitespace character. </table> * Quantifiers * Quantifiers add optional quantity data to a regular expression. A quantifier expression applies to the character, group, or character class that immediately precedes it. The following table describes the metacharacters that affect matching quantity. <table> Quantifier \Description ----------- ------------------------------------------------------------- \* Specifies zero or more matches; for example, <i>\\w*</i> \or <i>(abc)*</i>. Same as <i>{0,}</i>. \+ Specifies one or more matches; for example, <i>\\w+</i> \or <i>(abc)+</i>. Same as <i>{1,}</i>. ? Specifies zero or one matches; for example, <i>\\w?</i> \or <i>(abc)?</i>. Same as <i>{0,1}</i>. {n} Specifies exactly n matches; for example, <i>(pizza){2}</i>. {n,} Specifies at least n matches; for example, <i>(abc){2,}</i>. {n,m} Specifies at least n, but no more than m, matches. </table> * Atomic Zero-Width Assertions * The metacharacters described in the following table do not cause the engine to advance through the string or consume characters. They simply cause a match to succeed or fail depending on the current position in the string. For instance, <i>^</i> specifies that the current position is at the beginning of a line or string. Thus, the regular expression <i>^#region</i> returns only those occurrences of the character string <i>#region</i> that occur at the beginning of a line. <table> Assertion \Description ---------- --------------------------------------------------------------------- ^ Specifies that the match must occur at the beginning of the document or the beginning of the line. $ Specifies that the match must occur at the end of the string, before <i>\\n</i> at the end of the string, or at the end of the line. \\A Specifies that the match must occur at the beginning of the document. \\z Specifies that the match must occur at the end of the document. \\b Specifies that the match must occur on a boundary between <i>\\w</i> (alphanumeric) and <i>\\W</i> (nonalphanumeric) characters. \\B Specifies that the match must not occur on a <i>\\b</i> boundary. </table> * Grouping Constructs * Grouping constructs allow you to capture groups of subexpressions and to increase the efficiency of regular expressions with noncapturing lookahead and lookbehind modifiers. <table> Construct \Description ---------- -------------------------------------------------------------------- ( ) Captures the matched substring if used in a find/replace \operation. In lexical parsing, provides non-captured grouping. Find/replace captures using <i>( )</i> are numbered automatically based on the order of the opening parenthesis, starting from one. The first capture, capture element number zero, is the text matched by the whole regular expression pattern. (?= ) Zero-width positive lookahead assertion. Continues match \only if the subexpression matches at this position on the right. For example, <i>_(?=\\w) </i>matches an underscore followed by a word character, without matching the word character. (?! ) Zero-width negative lookahead assertion. Continues match \only if the subexpression does not match at this position \on the right. For example, <i>\\b(?!un)\\w+\\b</i> matches words that do not begin with <i>un</i>. (?\<= ) Zero-width positive lookbehind assertion. Continues match \only if the subexpression matches at this position on the left. For example, <i>(?\<=19)99</i> matches instances of <i>99</i> that follow <i>19</i>. (?\<! ) Zero-width negative lookbehind assertion. Continues match \only if the subexpression does not match at this position \on the left. </table> * Substitutions * Substitutions are allowed only within find/replace replacement patterns. Character escapes and substitutions are the only special constructs recognized in a replacement pattern. For example, the replacement pattern <i>a*$1b</i> inserts the string <i>a*</i> followed by the substring matched by the first capturing group, if any, followed by the string <i>b</i>. The <i>*</i> character is not recognized as a metacharacter within a replacement pattern. Similarly, <i>$</i> patterns are not recognized within regular expression matching patterns. Within regular expressions, <i>$</i> designates the end of the string. The following table shows how to define named and numbered replacement patterns. <table> Construct \Description ---------- --------------------------------------------------------- $1 Substitutes the last substring matched by group number 1 (decimal). The second group is number 2 (<i>$2</i>), and so on. $0 Substitutes a copy of the entire match itself. $& Substitutes a copy of the entire match itself. $$ Substitutes a single <i>$</i> literal. </table> * Other Constructs * The following table lists other regular expression constructs. <table> Construct \Description ---------- --------------------------------------------------------------------- " " Encapsulates a fixed string of characters. { } Provides a call to a lexical macro. The use of a WordMacro (which is similar to <i>\\w</i>) would appear as <i>{WordMacro}</i>. (?# ) Inline comment inserted within a regular expression. The comment terminates at the first closing parenthesis character. | Provides an alternation construct that matches any one of the terms separated by the <i>|</i> (vertical bar) character. For example, <i>cat|dog|tiger</i>. The leftmost successful match wins. </table> @@OutliningMenu <title Outlining Menu> <GROUP Menus> Outlining provides a way to selectively hide blocks of code to make working with a large file more manageable. * Menu Items * <table> Menu Item \Description ------------ ----------------------------------------------------------- Start Turns on Automatic Outlining. Plus/minus boxes on Automatic the left side of the document appear next to each Outlining block of code, according to the methods in your game-specific <link ParserPluginDll, Parser Plugin DLL>. Start Turns on Manual Outlining. Now you can specify Manual your own expandable and collapsable blocks of Outlining code. Stop Turns off Outlining. All plus/minus boxes on the Outlining left side of the document disappear. Hide Manual Mode only. Highlight a block of code and Current select this option to create a code block and Selection collapse it. Stop Hiding Manual Mode only. Expands the collapsed code block Current immediately to the right of the cursor. Toggle Collapses or expands the code block closest to the Outlining cursor. Expansion Toggle All Collapses or expands all outlined code blocks. Outlining </table> @@ToolsMenu <title Tools Menu> <GROUP Menus> * Menu Items * <table> Menu Item \Description ------------- ----------------------------------------------------------- Macro Menu See <link ToolsMenuMacros, Macros> Items Settings... See <link ToolsMenuSettings, Settings> Highlighting See <link ToolsMenuHighlightingStyleEditor, Highlighting Style Editor> Style Editor... Custom See <link ToolsMenuCustomButtonManager, Custom Button Manager> Button Manager... View Log View the program execution log. Previous This dropdown menu stores the last 10 program execution logs. Logs </table> * A note about logs * The log files are stored in <i>%TEMP%/ragScriptEditor</i>. They contain a record of many of the high-level operations that the Script Editor performs. Dialog boxes, handled exceptions, and unhandled exceptions are all logged to this file. The log is automatically included when submitting bugs with the Submit Feedback Dialog (see <link HelpMenu, Help Menu>) and the Unhandled Exception Dialog. Additional logging information may be stored by adding the <i>-admin</i> command line parameter when launching the ragScriptEditor.exe executable. This additional information includes SanScriptIdentifierCache operations. Be warned: there is a steep performance penalty. @@ToolsMenuMacros <title Macros> <GROUP ToolsMenu> Macros Recording is a new feature for version 1.8.x of the Script Editor. It allows the user to record any text editing \operations performed on an open file and play back that sequence of steps repeatedly. Currently, only one recording is allowed. Additionally, mouse input is ignored during recording. * Menu Items * <table> Menu Item \Description ----------------------- ---------------------------------------- Record Temporary Macro Begins recording a new temporary macro. Play Temporary Macro Plays the last macro recorded. Cancel Recording Cancels a macro recording operation. </table> Additional Functionality is provided on the Macro Toolstrip. * Toolstrip Button Items * <table> Button Item \Description ---------------------- ----------------------------------------- Record Macro Begins recording a new temporary macro. Pause Macro Recording Pauses the recording. Stop Macro Recording Ends the recording, allowing you to play the macro. Cancel Macro Cancels a macro recording operation. Recording Play Macro Plays the last macro recorded. </table> @@ToolsMenuSettings <title Settings> <GROUP ToolsMenu> The Settings dialog allows you to customize some of your experience with the Script Editor. It contains several categories: Projects, Files, Toolbar, and Compiling, Language, and Source Control. Each category contains a "Reset to Defaults" button. Clicking this will reset the options in that category to the states defined by the current language (the project loaded, or the type of the active file when the Settings dialog was opened, or the language of the specific Compiling sub-cateogory or Language category). The change will not fully take effect until the OK or Apply button is clicked. See <link ParserPluginDll, Parser Plugin DLL>. @@ProjectSettingsCategory <title Project Category> <GROUP ToolsMenuSettings> \ \ <table> Item \Description ------------- ------------------------------------------------------------------ Reload last When checked, if a project file was loaded when the project editor was last closed, it will be reloaded the next time you start the editor. Close With this checked, all open files that belong to the project Project will be closed when the Project is closed. files when Project closes Clear Removes all project files from the <link FileMenu, Files> Recent Recent -\> Projects list. Projects Automatic When checked, any files and folders that are moved or Sorting added to the Project will be ordered alphabetically. If the folder to which you are adding the item(s) is not already sorted, the new item(s) will be added alphabetically from the top down. In this case, it is possible to have a partially sorted folder. Post-Compile A command line program to run after a project has been Command compiled with no errors. Use the '...' button to browse for a command. You can add whatever command line argument(s) you want. Quotation marks are not allowed, so all command(s) and arguments must <i>not</i> contain any spaces in their path names.<p/><p/>After a successful project compile, a text file of all files that were compiled is generated. This file is appended to the end of the Post-Compile Command line so that you may use it at your discretion. Start Debug This command is executed when the <link CompilingMenu, Compiling> Command \-\> Start Debug menu item is selected. If any of the project's files have been edited since the last project compile, the project will be compiled first before proceeding. The same formatting rules as the Post-Compile Command apply here as well. Enable When checked, the threaded Parsing Service is enabled, Semantic allowing a minimal amount of user interaction during a Parsing project's load, including the ability to see the number Service \of files left to be parsed. This option is disabled by during default on single-core, non-hyper-threaded machines to project improve load times. Disabling this on mulit-core load machines may also provide the same benefit. </table> @@FileSettingsCategory <title Files Category> <GROUP ToolsMenuSettings> \ \ <table> Item \Description ------------ ------------------------------------------------------ Reload last When checked, all files that were loaded when the files at editor was last closed, will be reloaded the next startup time you start the editor.<p/><p/>Also, all files belonging to a project that were open when you last closed the project (or closed the editor with a project open), will be loaded when that project is loaded. Even if this is unchecked, the project will still remember which file(s) it last had open. Clear Removes all files from the <link FileMenu, Files> -\> Recent Recent Files list. Files Middle When this is enabled, clicking the middle mouse mouse button on the file's tab will close the file. button closes file Enable When checked, the threaded Parsing Service is enabled Semantic allowing a smoother experience when typing with Parsing Intellisense. Disabling this will likely hinder the Service user's ability to type with Autocomplete enabled, but during File may improve performance on a single core computer editing without hyper-threading capability. </table> @@ToolbarSettingsCategory <title Toolbar Category> <GROUP ToolsMenuSettings> \ \ <table> Item \Description ----------- ---------------------------------------------------------- Remember When checked, all buttons that were invisible when button you last closed the editor will be Hidden the next visibility time you open the editor. Even if this is unchecked, the editor will still remember which buttons were hidden and which were shown. Clear Delete any custom buttons that have been created. Changes Custom will not take effect until the OK or Apply button is Buttons clicked. Reset Resets the visibility of each button its their Visibility default state. Changes will not take effect until the OK or Apply button is clicked. </table> @@CompilingSettingsCategory <title Compiling Category> <GROUP ToolsMenuSettings> This category contains a sub-node for each language defined for the Script Editor. Each sub-node displays an array of compiling options specific to that language. Every sub-node contains the same basic set of options: <table> Item \Description -------------- ------------------------------------------------------- Break on Halts the compiling process on the first file with error errors found. Open Files When checked, files that contain errors will be opened With Errors and their errors highlighted during the compile process. Configuration This combo box allows the user to select which Configuration to view or edit. \+ Adds a new configuration after the user is prompted to provide a name. The new configuration is initialized with the currently selected configuration. \- Permanently remotes the currently selected configuration after a confirmation dialog. Include Sends the -include argument to the compiler. \File Include Adds the -ipath argument to the compiler. The include Path path can contain more than one item as long as there are no spaces, with a semicolon separating each one. Compiler The executable for the script compiler, or a batch Executable \file that calls it. \Output Set this to save output files (.sco and .scd) to a Directory different directory from where the source files (.sc) reside. This can be path-rooted or relative to the currently loaded project (or the file if no project is loaded). </table> * SanScript Compiling Settings * These additional options are available to the SanScript language: <table> Item \Description ------------ ------------------------------------------------------- Debug Turn on debugging output text during compilation. Parser Dump Thread Display the thread state during the compile. State Display Show the disassembly after the compile finishes. Disassembly Enable HSM Enables the new Hierarchical State Machine features of the SanScript compiler. Dependency Check this to output a text file containing each \File \file's dependencies. While the text box is blank by default, the compiler itself defaults to the equivalent of "%~n1.d". Native File Check this to output a text file containing a list of all of the NATIVE functions called by a file. ".native.txt" will be automatically appended by the compiler. Globals Specifies where global variables are stored. If not \File path-rooted, this file will be saved in the Output Directory. Custom Enter your own custom commands and keywords here. Use '%1' to reference the current file that is being compiled when this command executes. </table> Each Text Box accepts file arguments similar to the way in which batch files can be passed argument that is a file and that argument can be interpreted as a file name, path, directory root, file name without extensions, etc.. Here is a complete list of supported file arguments: <table> \File \Description Argument --------- -------------------------------------------------------- %1 Represents the script file being compiled. We always pass in the fully qualified path name of the file. %~1 Removes the quotes around a fully qualified path name %~f1 Fully qualified path name (t:\\rage\\assets\\script.sc) %~d1 Directory root (c:, d:, etc.) %~p1 Path (\\rage\\assets\\) %~n1 \File name without the extension %~x1 \File extension %~a1 \File attributes (--a------) %~t1 Last date/time the file was written to %~z1 Size of the file %~dp1 Directory root and path name (c:\\rage\\assets) %~nx1 \File name and extension %~ftza1 DIR-like output line (--a------ 06/15/2006 11:24 AM 73 c:\\test.txt) </table> For example, in the sample script project <i>t:\\rage\\assets\\sample_scr_generic\\sample_scr_generic.scproj</i>, we have Globals set to %~n1.sgv which will cause our globals \file to be saved with the same name as the script that contains them, but with the sgv extension. Since the global variables can be found in <i>demo.sc,</i> the globals file is saved as <i>demo.sgv</i>. in the output directory which happens to be the same directory as the project. @@LanguageSettingsCategory <title Language Category> <GROUP ToolsMenuSettings> This category contains a sub-node for each language defined for the Script Editor. Each sub-node displays an array of compiling options specific to that language. Every sub-node contains the same basic set of options: <table> Item \Description ---------- ------------------------------------------------------------------------------------------------------------------ Save Saves the settings file associated with the game-specific Default Parser Plugin DLL for the current file type in the Settings editor. You will be prompted to confirm before the save \File takes place. Only available in Admin Mode. See <link HowToCreateDefaultSettings, Create a Default Settings File>. Load Loads the settings file associated with the game-specific Default Parser Plugin DLL for the current file type in the Settings editor.<p/><p/>Loading the setting file does not \File automatically overwrite your current settings, but merely makes a "new" set of defaults available to revert to with each Setting Category's "Reset to Defaults" button. You are prompted if you want to make the default settings your current settings. The Compiling and Language settings for other languages remain untouched. Clear Deletes all files in the Cache Directory. Cache Cache To improve performance, Language Parsers often store Directory settings out to disk for faster retrieval than by reparsing each file in its entirety. This option specifies where those data files gets saved.<p/><p/>By default, the directory is %HOMEDRIVE%%HOMEPATH%\\\<languageName\>IdentifierCache. If an error occurs trying to retrieve either of the Environment Variables, %TEMP% is used in their place. If the Environment Variables exist, but the directory they form does not, C:\\ is used.<p/><p/>When making a change. the user is asked if they want to move the files from the previous Cache Directory into the new one. Code Semicolon-separated folder paths to script files Snippet containing code which can be inserted with the Insert Path Code Snippet option found on the <link EditMenu, Edit Menu>. </table> * SanScript Language Settings * These additional options are available to the SanScript language: <table> Item \Description ---------- --------------------------------------------------- Language Specifies the language's help file. By default, Help File this is defined by Rage and packaged with the Script Editor. Reference Specifies the language's Reference help file which Help File contains a listing of all NATIVE items in the language. This is typically defined per project. </table> * Tutorials * <link HowToCreateDefaultSettings, Create a Default Settings File> @@SourceControlSettingsCategory <title Source Control Category> <GROUP ToolsMenuSettings> Source Control through Alien Brain and Perforce has been integrated into the Script Editor. When it is enabled, you will be able to check out files that are under source control. Currently, there is no support for checking in. The default for each of the check-out actions below may not be the most desirable or useful, but they do reflect the way the Script Editor originally behaved for read-only files. <table> Item \Description ----------- --------------------------------------------------- Enabled Turns on source control integration and enables editing of the items below. Server Specifies the Alien Brain server where your files reside. Project The name of the project on the Alien Brain server. Login Name Login Name to use to check out files. The default is "ReadOnly". When What to do when you start to edit a file under checked-in source control for the first time and the file is script checked in: files are * Prompt to check out edited * Automatically check out * Do nothing (default) When What to do when you save a file under source checked-in control that is checked in: script * Prompt to check out (default) files are * Automatically check out saved * Save as a new file When What to do with the compiler output files that are checked-in checked-in under source control: \output * Prompt to check out files are * Automatically check out compiled * Automatically overwrite the file (default) </table> @@ToolsMenuHighlightingStyleEditor <title Highlighting Style Editor> <GROUP ToolsMenu> The Highlighting Style Editor is for customizing the syntax coloring of your script files. You can change the overall background color, as well as the foreground and background colors of each syntax item. Your game-specific <link ParserPluginDll, Parser Plugin DLL> determines the default colors. * Text Background Color * This is the color that fills all space apart from the text. Select from Custom, System, and Web colors. * Languages * Select which language to customize the syntax coloring. * Display Items * The list of syntax items that you can choose the color for. For each item, you can customize the following: * Foreground color * Background color * Bold * Italic * Underline @@ToolsMenuCustomButtonManager <title Custom Button Manager> <GROUP ToolsMenu> This dialog box is for viewing, creating, editing, and deleting your own tool bar buttons. Your custom buttons are saved with your layout file so they are persistent across sessions with the Script Editor. Additionally, your game's lead Scripter can create default custom buttons for everyone \on their team. See <link HowToCreateDefaultSettings, Create a Default Settings File>. * List Pane * On the top half of the dialog, you can view a list containing all the custom buttons you've created. Highlight one to view it's details in the lower pane. Use the 'Move Up' and 'Move Down' buttons to change it's position in the list. Press 'Edit' to change any of it's details. Press 'Delete' to permanently remove it. Press 'New' to create an entirely new custom button. * View/Edit Pane * Below the List Pane, is the View/Edit Pane where you can see the details for a button. Name: The name of the custom button. This becomes the tool tip you see when hovering over the button on the tool bar. Icon: The icon to use for the button. The best icons to use are 16 x 16 pixels. We store a reference to your icon file and load it each time you launch the Script Editor, so if the original file is moved or deleted, it will not show up on the tool bar or in the Custom Button Manager. Command: The command to execute when clicked. You can type in the command to call, or browse for it. We support any command that can normally be called from the command line. This includes: * System programs (like notepad) and programs in your path (like rag), with or without arguments * File types registered with a program * Other executables with any number of arguments as long as the path does <i>not</i> contain spaces <code> notepad c:\\myfile.txt c:\\myfile.txt c:\\soft\\rage\\base\\samples\\mysample.exe -rag -cammachdebug </code> To help ensure unwanted changes, you must press the 'Accept' button to make your changes permanent. However, your personal layout file is not saved until you exit the Script Editor * Tutorials * <link HowToCreateCustomButton, Create a Custom Button> @@WindowMenu <title Window Menu> <GROUP Menus> Items in this menu allow you to split the current script into multiple views so you can independently scroll through different sections of the same file. * Menu Items * <table> Menu Item \Description ------------------- ------------------ Split Horizontally Split Vertically Split Four-Way No Splits Remove all splits </table> @@HelpMenu <title Help Menu> <GROUP Menus> * Menu Items * <table> Menu Item \Description -------------- --------------------- Contents Select this menu item or press F1 to view this help file. Language Help A list of language-specific help files for the various Parser Plugins will appear here. File(s) Submit Opens a dialog that allows you to report bugs, make comments or suggestions, Feedback... and provide general feedback. The various settings and log files used by the program will be included in the submission to aid in bug reporting. About Displays copyright information and the version number of the program. </table> @@ParserPluginDll <title Parser Plugin DLL> <toctitle Parser Plugin DLL> This user-definable plug-in serves several purposes. * It provides a syntax definition for a language used by the Script Editor. * It defines the <link CompilingSettingsCategory, Compiling> and <link LanguageSettingsCategory, Language> classes used by the language, and their corresponding User Interface elements for the <link ToolsMenuSettings, Settings> Form. * It specifies the default options for users programming in the language. We have implemented the SanScriptParser, CSharpParser, and XmlParser plug-ins as examples. * Syntax Definition * A Syntax Definition consists of a Lexical Parser and an \optional Semantic Parser. Lexical Parsing breaks a document up into tokens, or keywords, that can be colorized (also know as syntax highlighting) for better readability. Language keywords, colors, and strings are typically tokenized. Semantic Parsing consists of analyzing the results of the Lexical Parse to give meaning to groups of tokens. For \example, identifying a function declaration. Defining a Semantic Parser is essential in order to enable <link IntellisenseMenu, Intellisense> and <link OutliningMenu, Outlining> features, but it is not required. Intellisense features include Autocomplete, IntelliPrompt, and Info Tips. * Compiling and Language Settings * Each Parser Plug-in must derive from CompilingSettings and LanguageSettings to provide the language-specific options that are not included in the base class. The CompilingSettings class is for providing control over the command line options that are passed to the Compiler. A derived LanguageSettings class typically adds options for specifying the Help File for the language. * Default Options * Each Parser Plug-in must also derive from LanguageDefaultEditorSettingsBase to override methods that allow the editor to create and manipulate the language-derived CompilingSettings and LanguageSettings classes. You may also add additional fields, as well. On the <link ToolsMenuSettings, Settings> Form's Language category for a specific language, is a button to Save and Load a Default Settings File. You must run the Editor with "-admin" on the command line to be able to save. These buttons allow you to save or load a default settings \file that will be automatically loaded at startup. Regardless of the existence of this file, your derived LanguageDefaultEditorSettingsBase class will be used to reset settings to their default states when commanded to do so. For the SanScript language, teams typically define an options \file that contains Code Snippet Folders, Include Paths, an Include File, and Help Files specific to their game. * SanScript Language LanguageDefaultEditorSettingsBase * Now you can add custom NativeItems (that is, Intellisense keywords) to your SanScript Parser Options File to provide commonly used keywords and lines of code or comments that cannot be found in a script file or among the includes. There are 3 types of NativeItems: Constant/Enum, Struct, and Procedure/Function. Element names (aka nodes or tags) start with a capital letter while attributes do not. <table> Xml Tag Required Attributes Optional Attributes ----------------- ------------------------ ------------------------------- ConstOrEnumItem * type - Type of the constant or enum such as CONST_INT or CONST_FLOAT. * name * value StructItem * name NativeProcOrFunc * name * args - The arguments to pass to the function, separated by commas. * returnType - Designates this as a Func rather than a Proc. </table> The StructItem tag should have at least one "Contents" tag as a child node to specify the members of the struct. Typically, you'll want to include a tab at the beginning of each line of text. Additionally, each tag may optionally include any of the following child nodes: <table> Xml Child Tag Required Attributes Optional Sub children ----------------------------- ----------------------- ------------- Source<p/><p/>Since you are * file - Source file adding these NativeItems to where the keyword is the language because they defined or declared. are not readily accessible * line - Line number through the standard means, in that file, it is probably rare that you starting with 1. If will ever add this node, but line is not it is here for completeness. specified, file is ignored. Comments You can include one \or more of each of these. * Purpose * Params * Returns * Notes </table> \Example: <code> \<NativeItems\> \<ConstOrEnumItem type="CONST_INT" name="MY_TEST_CONST" value="33" /\> \<NativeProcOrFunc name="MY_TEST_FUNC" args="FLOAT f, BOOL b" returnType="INT"\> \<Comments\> \<Purpose\>Test function\</Purpose\> \<Params\>f - floating point number\</Params\> \<Params\>b - boolean\</Params\> \<Returns\>an integer\</Returns\> \</Comments\> \</NativeProcOrFunc\> \<NativeProcOrFunc name="MY_TEST_PROC"\> \<StructItem name="MY_TEST_STRUCT"\> \<Contents\> FLOAT x\</Contents\> \<Contents\> FLOAT y\</Contents\> \<Source file="c:\\myfile.sc" line="42" /\> \</StructItem\> \</NativeItems\> </code> @@Windows @@DocumentEditor <title Document Editor> <GROUP Windows> @@DocumentEditorTabContextMenu <title Tab Context Menu> <GROUP DocumentEditor> This context menu can be found by right-clicking on the Document Tab. <table> Menu Item \Description ------------ ------------------------------------------------- \File Name Displays the full path of the selected document. Click this menu item to copy the path to the clipboard. Open Opens the folders that contains the file in Containing Explorer. Folder New Tab Creates a new Document in a new tab. Close Tab Closes the selected document tab. Close Other Closes document tabs other than the currently Tabs selected one. Close All Closes all document tabs. Tabs </table> @@DocumentEditorActiveFilesDropDownMenu <title Active Files Drop Down Menu> <GROUP DocumentEditor> On the right side of the Document Editor Window and next to the X (to close the current document), you may find a small triangle shaped button. Clicking this reveals a drop-down with a list of all of the documents that are currently open. Hover over an item to view its full path. Click the item to make it the active document. @@DocumentEditorContextMenu <title Context Menu> <GROUP DocumentEditor> Over any part of the Document Editor's text, right-clicking reveals this context menu: <table> Menu Item \Description ------------ -------------------------------------------------------- Undo Reverts the last edit. Redo Restores the last action that was reverted. Cut Cuts the selected text to the keyboard. Copy Copies the selected text to the keyboard. Paste Pastes text from the keyboard. Delete Deletes the currently selected text. Select All Selects all text in the current document. Insert Code Shows the Insert Code Snippet popup to select from Snippet the list of pre-defined code snippets. Go To Opens the document and highlights the line on which Definition the currently selected symbol is defined. Outlining This drop-down menu contains the Outlining options. See <link OutliningMenu, Outlining Menu>. </table> @@DocumentEditorKeyboardCommands <title Keyboard Commands> <GROUP DocumentEditor> The following tables detail the keyboard shortcuts available when focus is given to a Document. Most of them cannot be found on the <link EditMenu, Edit Menu> or any other menus. * Return Commands * <table> Key Command --------------- ---------------------------------------- Enter Insert line break Shift + Enter Insert line break Ctrl + Enter Insert line break on the line above the cursor Ctrl + Shift + Insert line break on the line below the Enter cursor </table> * Delete/Backspace Commands * <table> Key Command ------------------ --------------------------- Delete Delete Ctrl + Shift + L Delete Line Ctrl + Delete Delete to next word Backspace Backspace Shift + Backspace Backspace Ctrl + Backspace Backspace to previous word </table> * Clipboard/Undo Commands * <table> Key Command ----------------- ---------------------- Ctrl + C Copy to Clipboard Ctrl + L Cut line to Clipboard Ctrl + X Cut to Clipboard Ctrl + V Paste from Clipboard Ctrl + Z Undo Ctrl + Y Redo Ctrl + Shift + Z Redo </table> * Movement Commands * <table> Key Command ----------------- ---------------------------------------------- Down Move caret down Up Move caret up Left Move caret left Right Move caret right Ctrl + Left Move to previous word Ctrl + Right Move to next word Home Move to start of line End Move to end of line Ctrl + Home Move to start of document Ctrl + End Move to end of document Page Up Page up Page Down Page down Ctrl + Page Up Move to the top of the visible portion of the document Ctrl + Page Down Move to the bottom of the visible portion of the document Ctrl + ] Move to matching bracket </table> * Scroll Commands * <table> Key Command ------------ ------------ Ctrl + Down Scroll down Ctrl + Up Scroll up </table> * Indenting Commands * <table> Key Command ------------ -------- Tab Indent Shift + Tab Outdent </table> * Selection Commands * <table> Key Command --------------------------- --------------------------------- Shift + Down Select down Shift + Up Select up Shift + Left Select left Shift + Right Select right Ctrl + Shift + Left Select to previous word Ctrl + Shift + Right Select to next word Shift + Home Select to start of line Shift + End Select to end of line Ctrl + Shift + Home Select to start of document Ctrl + Shift + End Select to end of document Shift + Page Up Select page up Shift + Page Down Select page down Ctrl + Shift + Page Up Select to the top of the visible portion of the document Ctrl + Shift + Page Down Select to the bottom of the visible portion of the document Ctrl + A Select all Ctrl + Shift + W Select word Ctrl + Shift + ] Select to matching bracket Shift + Alt + Down Select block down Shift + Alt + Up Select block up Shift + Alt + Left Select block left Shift + Alt + Right Select block right Ctrl + Shift + Alt + Left Select block to previous word Ctrl + Shift + Alt + Right Select block to next word </table> * IntelliPrompt Commands * <table> Key Commands --------------------- ---------------------------------- Ctrl + Space IntelliPrompt Complete Word Ctrl + Shift + Space Show IntelliPrompt Parameter Info </table> * Other Commands * <table> Key Command ------------- ------------------------------------------------- Ctrl + Shift Make selection uppercase \+ U Ctrl + U Make selection lowercase Ctrl + De-selects code blocks that contain the caret in Number Pad - increasing scope depth. Currently works only for CSharp files. Ctrl + Selects code blocks that contain the caret in Number Pad + decreasing scope depth. Currently works only for CSharp files. Escape Cancel IntelliPrompt, Code Snippets, Incremental Search, etc. Ctrl + I Incremental Search Ctrl + Shift Reverse Incremental Search \+ I Insert Toggle Overwrite Mode Ctrl + T Transpose characters on either side of the caret Ctrl + Shift Transpose words on either side of the caret. \+ T Current doesn't work very work very well for SanScript files. Ctrl + Shift Transpose the current line with the next line \+ Alt + T </table> @@ProjectExplorerWindow <title Project Explorer Window> <GROUP Windows> When you load a project, it's files and folders appear here. In this window, you can add and remove existing script files. You can also create, rename, and delete folders. This can all be accomplished through a series of right-click context menus. At the top, is a Sort button that will arrange all files and folders alphabetically (case-insensitive) with folders at the top and files at the bottom. When a project is saved, not only are the files and folders remembered, but many settings are saved as well. Which folders and files that were open when you closed the project \or quit the Script Editor are remembered so they can be \opened the next time you open the project. The project file also contains items off of the <link ProjectSettingsCategory, Project Settings Category> the <link CompilingSettingsCategory, Compiling Settings Category> \on the Settings dialog. * Right-click Context Menu * <table> Item \Description ---------------------------------------- -------------------------------------------------- Open When a file is selected, attempts to open it. <link HowToCompileScript, Compile File> Compiles the selected script file. <link HowToCompileProject, Compile All> Compiles all script files in the project. Rebuild All Rebuilds all script files in the project. Add Existing Add existing script files to your project. Item(s)... Add New Adds a new folder, and puts you in edit mode to Folder give it a name. Reload Missing When the selected file's icon is grayed out, \File searches for the file in its last known location. If found, the icon is activated. Locate When the selected file's icon is grayed out, Missing File allows the user to search for the file. If one is selected, the icon is activated. Rename When a folder is selected, puts you in edit mode to rename the folder. Remove Removes the file or folder (and its files) from the project. Does <i>not</i> delete any script files from your hard drive. </table> * Tutorials * <link HowToCreateNewProject, Create a New Project> @@DocumentOutlineWindow <title Document Outline Window> <GROUP Windows> When enabled, this window displays an outline of the current \file, according to information provided by it's Semantic Parse. Nodes will be grouped by their scope. For example, this code: <code> PROC FOO( ) int MyMultiDimArray[4][3] int i, j FOR i = 0 to 4 FOR j = 0 to 3 // do something ENDFOR ENDFOR IF TRUE // do something ELSE // do something else ENDIF ENDPROC PROC BOO( INT I ) ENDPROC </code> will produce the following outline: * PROC FOO( ) * FOR i = 0 to 4 * FOR j = 0 to 3 * IF * ELSE * PROC BOO( INT I ) * Context Menu * When Update Document Outline is checked, right-click anywhere inside the TreeView area. <table> Menu Item \Description ------------- ------------------------------------------------ Collapse All Collapses all outlining nodes and their children Expands All Expands all outlining nodes and their children. </table> * Tips for Improving Performance * * Hide the window behind another one. The refresh can be costly. * Uncheck the Update Document Outline option at the top of the window. For a more complete outline, run the Script Editor with the \-admin command line parameter. @@OutputWindow <title Output Window> <GROUP Windows> The Output Window, by default, can be found docked at the bottom of the editor. It is to this window that compile messages are written. If errors are found, they appear in this window and the user can select them and go to the specified error in the script. The user can also highlight and copy text. A right-click context menu, along with keyboard shortcuts, provide this functionality. <table> Menu Item \Description ---------- -------------------------------------------------------------------- Go To On an error line, opens the appropriate file and Error/Tag highlights the line with the error in question. Alternatively, you can just double-click on the error line. Copy Copies the highlighted text to the system Clipboard. Alternatively, Ctrl+C with this window in focus will accomplish the same task. Use Ctrl+A to select all before copying. Clear all Clears all text from the window. Find Opens a Find/Replace dialog for searching in this window. </table> * Additional Shortcuts * * Select All (Ctrl + A) * Search Again Down (F3) * Search Again Up (Shift + F3) * Search Highlighted Down (Ctrl + F3) * Search Highlighted Up (Ctrl + Shift + F3) @@FindResultsWindow <title Find Results Window> <GROUP Windows> The Find Results Window, by default, can be found docked at the bottom of the editor. It is to this window that the results of Find in Files searches are displayed. Each result can then be double-clicked to open the file and highlight the instance of the search text. The user can also highlight and copy text from the Find Results Window. A right-click context menu, along with keyboard shortcuts, provide this functionality. <table> Menu Item \Description ---------- -------------------------------------------------------------------- Go To On a result line, opens the appropriate file and Error/Tag highlights the line with the found text in question. Alternatively, you can just double-click on the error line. Copy Copies the highlighted text to the system Clipboard. Alternatively, Ctrl+C with this window in focus will accomplish the same task. Use Ctrl+A to select all before copying. Clear all Clears all text from the window. Find Opens a Find/Replace dialog for searching in this window. </table> * Additional Shortcuts * * Select All (Ctrl + A) * Search Again Down (F3) * Search Again Up (Shift + F3) * Search Highlighted Down (Ctrl + F3) * Search Highlighted Up (Ctrl + Shift + F3) @@ErrorsWindow <title Errors Window> <GROUP Windows> For your convenience, compile errors are output directly to this window from the Output Window, succinctly presenting the errors in a more easily-read format. Double-click on the error line to open up the file and go to the line it is on. This window only appears when compile errors are found. @@HelpWindow <title Help Window> <GROUP Windows> This window displays the text of the last Intellisense Info popup that was shown by the document. @@DockableWindowKeyboadShortcuts <title Window Navigation Keyboard Commands> There are a few keyboard commands for navigating between the various Dockable Windows and Tabbed Documents * Dockable Window Navigation * <table> Key Command ------------ ---------------------------------------------- Ctrl + Page Switch to the previous Dockable Window in the Up currently selected tab group Ctrl + Page Switch to the next Dockable Window in the Down currently selected tab group </table> * Tabbed Document Navigation * <table> Key Command ----------- ----------------------------------------------------- Ctrl + Tab Cycle through the Tabbed Documents Ctrl + Cycle through the Tabbed Documents in opposite order Shift + Tab </table> @@HowTo <title How To> @@HowToCompileScript <title Compile a Script> <GROUP HowTo> 1. If you have not yet setup your compiling options 1. Click on the <link ToolsMenu, Tools Menu> and select <link ToolsMenuSettings, Settings>. 2. Select the <link CompilingSettingsCategory, Compiling Category> and choose your options 3. Click OK. 2. With a script loaded, open the <link CompilingMenu, Compiling Menu> and select 'Compile'. Alternatively, you may press Ctrl+F7 to compile the current script. Information about the compile process will appear in the \Output Window. If your script file is part of a project, you may also do the following: 1. Right-click the script file in the <link ProjectExplorerWindow, Project Explorer> window. 2. Select 'Compile'. @@HowToCreateNewProject <title Create a New Project> <GROUP HowTo> 1. Open the <link FileMenu, File Menu>, then New, then Project.... 2. Browse for the location where you want to store your project. 3. Give it a name and click OK. Your project will appear in the <link ProjectExplorerWindow, Project Explorer> window. Now you can add existing script files and organize them into folders. Note that these folders don't necessarily relate to the location of the script files on your hard drive. You now have the option of selecting certain project-specific settings. 1. Click on the <link ToolsMenu, Tools Menu> and open the <link ToolsMenuSettings, Settings dialog>. 2. On the Settings dialog: 1. Select the <link ProjectSettingsCategory, Project Category> and choose your Post-Compile Command and/or Start Debug Command. 2. Select the <link CompilingSettingsCategory, Compiling Category> and choose your compiling options. 3. Click OK. 3. Save the project by clicking <link FileMenu, File> \-\> Save Project. @@HowToCompileProject <title Compile a Project> <GROUP HowTo> If you do not have a project created and populated with files, do <link HowToCreateNewProject, this tutorial> first and return here. 1. If it is your first time compiling a project and you did not setup your Compiling options. Return to <link HowToCreateNewProject, this tutorial> and do so now. 2. Right-click on the Project folder in the <link ProjectExplorerWindow, Project Window> and select 'Compile All'. Alternatively, you may press F7. Information about the compile process will appear in the \Output Window. Additionally, you may setup a Start Debug Command on the <link ProjectSettingsCategory, Project Settings Category>, and press F5 to compile and begin debugging. When a project is successfully compiled, a couple of additional files are saved in the project folder. First, a list of all files in the project is saved as "\<project_name\>.scolist". Second, a batch file called "compile_one.\<project_name\>.bat is saved. This batch file can be called on each file in the .scolist to compile the project files outside of the editor. @@HowToCompileProjectCommandLine <title Compile From the Command Line> <GROUP HowTo> You have two options for compiling: a basic method by calling ragScriptEditor (or equivalent) or a more feature-rich method by calling ragScriptCompiler. This topic describes how to compile with each method. For both programs, compiling a project from the command line will do everything a normal <link HowToCompileProject, project compile> does, but without running the Script Editor interface. Similarly, <link HowToCompileScript, compiling individual script files> \or list of files on their own will use your last user settings. If you combine a project file with one or more script files on the command line, the project file has precedence and will be used for things like the <link CompilingSettingsCategory, Compiling Settings> and where the log file is placed (when that file is not path rooted). Each named argument is preceded with a hyphen (-), as shown. The arguments and parameters are separated by a spaces. However, the equals sign (=) is also accepted between \arguments and a single parameter. * Compiling with ragScriptEditor * This method is very basic and only offers a 4 commands <table> Argument Parameter(s) \Description Required ----------- -------------------------- ---------------------------------------------------- ========= \-build projectFile|scriptFile... One project file and/or any number of script files Yes to compile. \-clean Clean the file(s) before compiling. No \-config configuration Specifies the configuration on which to perform the No name build and/or clean operation. Without this option, the last active configuration is used. \-log [textFile] Indicates that we want all Standard Output to be No piped to a file. The parameter is optional and if it is not path-rooted, we will use the path of the project or the first script file. If no file is provided, the default is 'log.txt' and will be saved using the same path rules. \-guiName name Needed by compiles that use the Default Compiling No \option. If not specified, we attempt to find an executable name that contains 'ScriptEditor' located in the same directory as ragScriptCompiler. \-cacheDir languageName Overrides the Cache Directory used by the given No directory language. More than one <i>pair</i> of parameters may be passed in. Current supported languages are "SanScript", "CSharp", and "Xml". </table> * Compiling with ragScriptCompiler * This method of compiling offers the same functionality as the basic method, adding the ability to override any of the <link CompilingSettingsCategory, Compiling Settings> saved in the Project and the user's last settings. <table> Argument Parameter(s) \Description Required ------------------ -------------------------- -------------------------------------------------- =============== \ projectFile|scriptFile... One project file and/or any number of Yes script files to compile. \-clean Clean the file(s) before compiling. No \-config configuration Specifies the configuration on which to <align center> name perform the build and/or clean operation. Without No this option, the last active configuration </align> is used. \-log [textFile] Indicates that we want all Standard Output <align center> to be piped to a file. The parameter is No \optional and if it is not path-rooted, we </align> will use the path of the project or the first script file. If no file is provided, the default is 'log.txt' and will be saved using the same path rules. \-guiName name Needed by compiles that use the Default <align center> Compiling option. If not specified, we No attempt to find an executable name that </align> contains 'ScriptEditor' located in the same directory as ragScriptCompiler. \-override [true|false] Overrides the current <align center> OverrideDefaultCompilerSettings value. No Without a value, defaults to true. </align> \-debugparser [true|false] Overrides the current DebugParser value. <align center> Without a value, defaults to true. No </align> \-dump [true|false] Overrides the current DumpThreadState <align center> value. Without a value, defaults to true. No </align> \-dis [true|false] Overrides the current DisplayDisassembly <align center> value. Without a value, defaults to true. No </align> \-include scriptFile Overrides the current IncludeFile value. <align center> No </align> \-ipath path Overrides the current IncludePath value. No \-globals scriptFile Overrides the current Globals value. No \-custom text Overrides the current Custom value. No \-scriptCompiler executable Overrides the current ScriptCompiler value. No \-outputDirectory path Overrides the current Output Directory No value. \-break [true|false] Overrides the current Break On Errors No value. \-version [textFile] Displays the version number or saves it to No the specified text file and exits. \-cacheDir languageName Overrides the Cache Directory used by the No directory given language. More than one <i>pair</i> \of parameters may be passed in. Current supported languages are "SanScript", "CSharp", and "Xml". </table> * Examples * 1. c:\\\>ragScriptEditor -build c:\\MyScriptProject.scproj \-clean 2. c:\\\>ragScriptCompiler c:\\MyScriptProject.scproj \-clean 3. c:\\\>ragScriptEditor -build c:\\MyScriptProject.scproj \-log="C:\\Documents and Settings\\username\\My Documents\\MyScriptProjectLog.txt" 4. c:\\\>ragScriptEditor -build t:\\sample_scr_generic.scproj -log 5. c:\\\>ragScriptEditor -bulid demo.sc faultdemo.sc -clean 6. c:\\\>ragScriptCompiler c:\\MyScriptProject.scproj \-override -debugparser true 7. c:\\\>ragScriptCompiler c:\\MyScriptProject.scproj \-ipath="" -guiName myEditorForScripts \#1 and #2 are functionally equivalent. \#4 creates a log file named t:\\log.txt because t:\\ is where the project lives and no name was given. \#7 clears ipath by passing in double-quotes as it's parameter. It also sets the guiName, because they renamed their script editor executable. @@HowToCreateCustomButton <title Create a Custom Button> <GROUP HowTo> 1. Click the Tools Menu and select <link ToolsMenuCustomButtonManager, Custom Button Manager>. 2. Click the 'New' button. 3. In the Name text box, give your custom button a descriptive name. 4. Click the '...' button next to the empty Icon box, and select an icon file. 5. In the Command text box, either type your command, or browse for a program using the '...' button next to it. 6. When you are satisfied with your inputs, click 'Accept'. Your button will appear in the Custom Button List and on the Tool Bar. * Valid commands * * System programs (like notepad) and programs in your path (like rag), with or without arguments * File types registered with a program * Other executables with any number of arguments as long as the path does <i>not</i> contain spaces <code> notepad c:\\myfile.txt c:\\myfile.txt c:\\soft\\rage\\base\\samples\\mysample.exe -rag -cammachdebug </code> @@HowToCreateDefaultSettings <title Create a Default Settings File> <GROUP HowTo> This tutorial instructions your game's lead Scripter how to create a set of default options for all of the scripters on your team. 1. Run the Script Editor with the "-admin" command line \option (without the quotes, obviously). This will enable the "Save Default Settings File" in the Language categories of the <link ToolsMenuSettings, Settings> dialog. 2. Open the <link ToolsMenuCustomButtonManager, Custom Button Manager> from the <link ToolsMenu, Tools Menu>. 1. <link HowToCreateCustomButton, Create any custom buttons> you want available to your entire scripting team. 2. Close the window. 3. Open the <link ToolsMenuSettings, Settings> dialog from the <link ToolsMenu, Tools Menu>. 1. Edit the options in each category as you see fit. 2. Once you are finished, go to the <link LanguageSettingsCategory, Language Settings> for the language you want, and click "Save Default Settings File". It should tell you the file saved successfully. Click OK. 3. Click OK to close the Settings dialog. 4. Check your settings 1. Open the Settings dialog again and change any setting. For thoroughness, you may want to change something in each category. 2. Go to the Language category for the language and click "Load Default Settings File". 3. It should tell you the file loaded successfully. Select "Yes" to make the default settings your current settings. 4. Verify that your settings are correct. You are now free to customize your settings knowing that you always have the option to revert back to your game's defaults. @@HowToUseTheScriptEditorOnTheCommandLine <title Use the Script Editor on the Command Line> <GROUP HowTo> There are a few basic commands one can pass into ragScriptEditor through the command line. By passing in no \arguments, you of course, launch the Script Editor GUI as normal. Each named argument is preceded with a hyphen (-), as shown. The arguments and parameters are separated by a spaces. However, the equals sign (=) is also accepted between \arguments and a single parameter.. <table> Argument Parameter(s) \Description Required ----------- -------------------------- ---------------------------------------------- =============== \ projectFile|scriptFile... One project file and/or any number of No script files to load. \-file scriptFile... One or more files to load. <align center> No </align> \-project projectFile One project to load. <align center> No </align> \-admin Enables admin mode so one can modify <align center> the Default Settings that get loaded by No the Parser Plugin DLL. </align> \-version [textFile] Displays the version number or saves it No to the specified text file and exits. \-usage Displays this usage information. <align center> No </align> \-cacheDir languageName Overrides the Cache Directory used by No directory the given language. More than one <i>pair</i> \of parameters may be passed in. Current supported languages are "SanScript", "CSharp", and "Xml". </table> There are a few additional commands available for compiling a project and/or one or more files. See <link HowToCompileProjectCommandLine, Compile From the Command Line>.