All notable changes to the GSL Editor extension will be documented in this file.
- Hover tips for callmatch script numbers.
- There is now Status Bar button that monitors if the active script is out of date.
- Added a "Frozen" Status Bar warning to indicate that active script has been marked frozen with
/FREEZE
. - Add modified time to script upload confirmation.
- Game commands are now serialized, which should help avoid a few issues where multiple commands would interfere with each other.
- The "instances out of sync" messaging when downloading a script has been updated to be more concise.
- Fixed syntax highlighting node references for
msg
,prempt
, andmsgw
. - Fixed Go to Definition on files with inconsistent line endings.
- Fixed a bug where accounts with greater than 12 characters wouldn't be shown "instances out of sync" message.
- Fixed an issue where the client wouldn't reconnect after a disconnect.
- Fixed a bug that would cause scripts to fail to download.
- Added bytes remaining on script upload confirmation.
- When a script is downloaded, it will now perform a
/SS # CHECKEDIT
and if the script is not in sync across all instances, a warning message is displayed. This feature (enableScriptSyncChecks
) is enabled by default, but can be disabled in the settings. - The extension will now validate that a script is not empty before trying to upload it.
- The
editor.suggest.showWords
setting is now disabled by default for GSL files. This should prevent random words from being displayed in autocomplete.
- Restored confirmation of script upload message in Status Bar.
- Fixed an issue where downloaded script wouldn't record modifier information for verb inputs.
- Resolved issue with the check against account name for uploads.
- Reimplemented the window dialog to warn you when uploading a script that appears to have been modified on the server since you last downloaded it.
- There is a new setting to turn off automatic downloads of scripts when navigating by clicking on a callmatch.
- Hovering over GSL keywords will now provide information about its definition.
- Updated to use VSCode's SecretStorage API to store password [previous keytar method was deprecated].
- Resolved issue with GSL Vibrant theme prompt when starting the extension.
- Updated dependencies.
- Corrected issue with formatter.
- Add spellcheck to your code/comments by installing the Code Spell Checker. Follow the link, then click on the green Install button. Next, open your Visual Studio Code Settings by hitting F1, then type in or copy/paste "Preferences: Open Settings (JSON)", and hit enter. In the file, add this line
"cSpell.ignorePaths": []
, then save and close the file.
- Updated the formatter to replace smart quotes with normal quotes.
- Better support for downloading new/empty scripts.
- Custom spellcheck configuration file and dictionary for Code Spell Checker.
- Rewrote extension to TypeScript.
- EAccess login now uses an encrypted (TLS) connection.
- Various syntax highlighting fixes.
- The status bar will now properly timeout when checking the modification timestamp of a script.
-- No change. Accidental publish.
- Support for highlighting system variable string tokens (e.g. $:$THISSCRIPT).
- Missing gsl keywords as keyword.gsl.misc.
- More detail to the callmatch statement to cover some more weird cases.
- Support for msgrgm named modes as keyword.gsl.msgrgm.modes scope.
- Naos In The Sky theme.
- Effects param scopes to be keyword.gsl.effects.param instead of keyword.gsl.param.effects.
- New script heading snippet now uses ISO 8601 date format.
- The extension will now check for and prompt users to run the User Setup when their settings are not detected.
- Blank lines are removed when a file is formatted (which automatically happens upon save and script upload).
- Syntax highlighting now recognizes underscores in numbers.
- Resolved issue that was causing the new Setup User prompt to appear on every restart of Visual Studio Code.
- Resolved issue that would sometimes cause an upload/download to fail when it first had to connect to the game.
- The first time a user installs the GSL Editor extension, they will be prompted to run the User Setup process.
- Going forward, the GSL Editor extension will no longer use Visual Studio Code's settings.json file to store your login credentials. Such information, except your password, is now stored in a separate storage object provided by the extension API. More importantly, your password is stored in your operating system's secure keychain (Credential Vault on Windows, Keychain on macOS, etc). For more information see node-keytar. All users must run the new User Setup process which will prompt you for this information, then store it as noted above. To run the new User Setup, click the GSL button from the Status Bar, then select User Setup.
- Resolved issue with reconnecting to the game after the client loses connection, due to to Visual Studio Code's recent update (v1.31) which was updated to use Node.js v10.2.
No change. Publish error bumped up to 1.6.7.
- Updated the Status Bar icons for the Download, Upload, and GSL buttons.
- Syntax highlighting for comments should now work more consistently.
- Removed an unnecessary node package.
- Check Date now returns the results in the Status Bar instead of an information message.
- Refreshed the default themes for VSC, which the custom GSL themes rely on.
- The NP0/NC0 snippets should now no longer show up for auto completion when just typing 'NP0' or 'NC0'.
- Comment syntax highlighting should no longer happen on != condition checks.
- The newline at the end of a script should no longer be removed when saving/formatting the file.
- A few prompts now close (instead of remaining open) when you click outside of the dialog.
- Failing to provide input for a script download, upload, or a few other prompts now just display an error in the Status Bar instead of an error message.
- GSL button in the Status Bar to list all the available commands for the extension.
- Trailing whitespace is now stripped from scripts when formatted (saved or uploaded).
- Removed the Date Check setting to always display in the Status Bar since it's easily found in the GSL option now.
- Fixed snippets for infoitem, kill, and move to include NC0.
- The Matchmarkers view has been depreciated in favor of the new built-in Outline view, which achieves the same goal, but has more options (follow cursor, sort type, filter, etc). The referenced link has instructions on how to enable it.
No change. Publish error bumped up to 1.5.0.
- Scripts are now scanned when saved (which also happens on upload) to remove non-printable characters (usually the result from copy/pasting from a Word document or web browser).
- There is a new 'disableLoginAttempts' setting. When enabled, the editor will no longer try to log you into the game to perform various actions (such as to download/upload scripts) - this also means those actions will silently fail when invoked.
- Updated the Matchmarkers view to use the new 'reveal' API (instead of the previous icon) to highlight the current matchmarker the cursor is in.
- The Matchmarkers view is now only be visible while a GSL script file has focus and is hidden for other file types.
- The 'new' snippet (for creating notes and comment history at the top of a script) will now default to today's date for the script modification entry.
- GSL color themes: the Line Number and Indent Guide relative to the cursor's position will now be displayed in a more prominent color.
- Definitions (for Go To or Peek functionality) are now only valid on callmatch lines that end in a number.
- Corrected remmenuitem snippet (removemenuitem => remmenuitem).
- Rewrote some of the logic for the document highlighter (when the cursor is on an open/close control keyword, highlighting it and its counterpart). This also fixed a bug when placing the cursor on the closing period of a matchmarker. These changes should mostly be invisible to users.
- The logic to auto reconnect on disconnect should now work more consistently.
- Corrected a "cannot read property 'map' of undefined" error when starting VSCode while not in a script file.
- Clicking on a conditional (e.g. 'if') or control (e.g. 'loop') keyword will now highlight it and its matching conditional (e.g. 'else') and closing keywords (e.g. '.').
- Set highlight similiar matches on selection to disabled by default. (e.g. clicking on 'word' will no longer highlight all other instances of 'word'). You can override this in the settings.
- Matchmarkers view will no longer include comments in the matchmarker name.
- Removed 'while' from the control syntax highlight - that's not a valid keyword for GSL.
- Added 'else_ifnot' to auto indentation rules.
- A performance update to lessen the impact of calculating the Matchmarkers view when text changes or the cursor is moved while staying on the same line.
- An arrow will now display in the Matchmarkers view to represent the current matchmarker that the cursor is located in.
- Implemented Go to/Peek Definitions. You can now click on a line with a call(match), then hit F12 or right-click > Go to Definition to automatically open up that script and go to that matchmarker in it. If you have an existing local copy already, it will open it; otherwise will download it from the server. Keep in mind if it opens the local copy, the script could be out of date and not have changes that are implemented on the server. Using Peek Definition allows you to view it in a frame instead of a new tab so you never have to leave your existing script. Give both a try!
- The Problems view (which lists compile errors found during an upload) will no longer auto-close when uploading a script and the view is already open.
- New command to manually enable logging for debugging. Defaults to off and does not log any SGE connection data (account, password hash, etc).
- New installations of the extension will now prompt users to apply the GSL Vibrant theme.
- New "Download To Workspace" setting, which when enabled, will download scripts to your currently opened folder.
- Compile errors, detected when uploading, are now displayed using the diagnostic API for Visual Studio Code. When an error is found, it will display the Problems view which lists all errors. You can click on each error to go directly to that line. A red squiggly line will also show up under the text for the line with the error, which will persist until you upload again and error is resolved.
- A few minor adjustments to the colors in the GSL Light theme.
- Adjusted game login Status Bar text to only display when connecting.
- Langauge definition update for callmatch pattern.
- Hover over any token (e.g. $P0H = "his/her") to get a description of what it represents!
- Get a listing of all tokens with the new List Tokens command. Available by hitting F1 (to display the Command Palette), type in "gsl", then select List Tokens or use Ctrl+Alt+L.
- Status Bar text when logging into the game.
- There is a new GSL Vibrant theme.
- There is now a configuration settings to specify the file extension to use for downloaded scripts. It defaults to .gsl.
- Enabled TCP socket KeepAlive functionality, which should help in detecting disconnects.
- Upload script check: a timestamp is now stored when you download any script. That timestamp is then referenced against the server before any upload. If they are different, you will be prompted before continuing. This should help ensure you don't upload a version of the script that is now out of date.
- Empty matchmarker is now listed as "" at the top of the Matchmarkers view and symbol list.
- Compile errors will now be presented in a pop-up error dialog.
- There is now a Date Check command, thanks to Don/Konacon, that will display the last modified date of a script from the game (e.g. /ss script#) to assist with QC. You can manually invoke the command from the Command Palette (F1, then type in GSL), from the keybinding Ctrl+Alt+C, or you can add a Check Date button to the Status Bar by enabling it under Settings.
- Matchmarkers are now considered symbols (for go to symbol functionality (Ctrl+Shift+O)).
- More language definition updates:
- fixed comments on GATHER and REMOVEVARFIELD lines
- added MATCH and REPLYADDRESS system string vars
- added highlighting for RMCALL statements
- added MSGW to messaging statement definition
- added better definition for MSG statement
- added $X#T token
- fixed negative numbers not highlighting the - sign
- Moved GSL Editor repository to https://github.com/pltrant/GSL-Editor.
- You should now able to download new scripts which have no text yet.
- If the connection to the game drops, it will now automatically reconnect on the next upload/download.
- Script downloads should work correctly on macOS again.
- Matchmarker color highlighting should now be consistent.
- Downloaded scripts will now have a .gsl extension.
- The extension now includes 2 default color themes for GSL, aptly named GSL Light and GSL Dark. The GSL Dark theme is strongly recommended. To change your color theme, go to File > Preferences > Color Theme (or Ctrl+K Ctrl+T). It should be noted that you color customize any element of code. If you don't like the red that is used for
kill
, you can change it to any other color you want.
- The language definition file for GSL was significantly updated and now fully supports almost every element of GSL. This mostly comes into play for the color customization noted above.
- Snippets have been updated to provide choices where appropriate. For example, if you're using
checkeffect
, the first placeholder is always a node, so it will display a dropdown listing all valid nodes (NP#, NC#, NO#, NE#, NR#, where # is 0-9). You don't have to scroll through the entire list, you can start to type which option you want and it will narrow down the list for you.
- Downloading a script should no longer overwrite the last script downloaded. It will always open in a new tab.
- Resolved issue on script upload where numbers in the file path were also being used. It now only cares about the actual file name.
- You can now download multiple scripts at a time. Separate them with a ; or specify a range with a -. e.g. 1;2;3;4;5 or 1-5 or 1;2-4;5
- To upload a script, it no longer requires you follow the strict file name format of S#####. It will now just pull out all digits from the file name to parse the script number. e.g. "S12345", "12345.gsl", "S12345 - Test" will all parse to script 12345. Failing that, it will prompt you for the script number.
- Upload error with scripts that didn't end with a blank line.
- The Matchmarkers view will now always be displayed. There appears to be a bug in Microsoft's logic to conditionally display it.
- A new custom Matchmarkers view is now available in the Explorer panel (top icon in the left navigation menu or Ctrl+Shift+E). It will list all matchmarkers found in a script and clicking on one of them will take you to that matchmarker. The previous Matchmarkers button in the bottom Status Bar has been removed.
- Scripts will now automatically be locally saved before every upload.
- Re-implemented the script upload function so it should be significantly more reliable now.
- Auto indentation of code
- Prompt to display Release Notes on new releases.
- Default location of downloaded scripts to avoid losing them on extension updates.
- Updated rolled to 0.0.17.
- Disabled minimap by default.
- value2 tab stop for rem2effect snippet.
- Visibility snippets issue.
- Added (ifnot) visibility snippets.
- Downloading verbs while under certain conditions.
- Added Send Game Command option, available by hitting F1, then type in GSL and select the Send Game Command option or use Ctrl+Alt+G. Once prompted, input the command you wish to send to the game.
- Added snippets for almost every GSL syntax commands. Start typing any command and use the intellisense window to finish the code for you!
- Revised logic for going to a clicked matchmarker line.
- Show Matchmarkers function: click the Matchmarkers button in the status bar to get a list of all matchmarkers in the script, then click on any of them to go to that matchmarker.
- Keybindings to Download (Ctrl+D), Upload (Ctrl+U), and show Matchmarkers (Ctrl+M).
No change.
- Repackaged extension to remove some unnecessary files.
- Snippets for if, ifnot, if/else, if/else_if, if/else_if/else, else, else_if, when, loop, mm (new matchmarker), and new (new script header). Try it out by just typing "if", "else", "when", "loop", "mm", or "new", then hit TAB. You can then TAB through multiple points in the snippet to enter relevant code. Finally, hit ENTER when you're done editing it.
- Temporarily disabled intellisense until its formally supported for GSL.
- Changed wordwrap and column ruler to 118 characters.
- Downloaded files are now locally saved before opened (which gets rid of the unsaved status and prevents 'undo' from removing all text)
- Revised some of the download/upload logic to better handle command flow
- Added some logic to attempt to detect when there is an error during an upload/download and resolve itself
- Added error validation on invalid script names when trying to upload.
- Error message on connection failures.
- Updated connection handling to avoid some issues.
- When downloading, deletes an existing script file if it already exists.
- alwaysEnabled setting (default true): causes the extension to always be loaded instead of just based upon Language detection.
- displayGameChannel setting (default false): automatically opens the Game output channel when the editor is launched.
- downloadPath setting (default null): location where to locally store downloaded scripts.
Initial release with syntax highlighting and Download/Upload script functionality.