Adds:
<<silent>>
macro snippets for SugarCube-2 (Issue #167)
Changes:
- Fixes
<<createplaylist>>
macro snippet (Issue #168)
Adds:
Changes:
- Reverts change done in v0.27.5, as the root cause for the infinite triggers was fixed in v0.27.6.
Changes:
- Fixes handling of asynchronous startup sequence, eliminating cases where language for documents are not set by the time the startup sequence ends.
Changes:
onDidOpenTextDocument
handler no longer tries to change the language of the document, potentially fixing Issue #162. Changing the language of a text document triggers theonDidOpenTextDocument
event. In projects with a large number of files, despite there being a check for whether the language of the document is already set to the target, the event can trigger before the language is actually set. This causes the event and language change function to be called one after the other ad infinitum.
Changes:
- Glob matcher now returns absolute paths instead of relative paths to files in workspace. Fixing Issue #163.
Adds:
- Extension process logging under "T3LT (Log)".
- Error handling for file opening during startup which caused it never resolve and move on with further startup functions leading to infinite loading and broken features Issue #163.
Adds:
- Debouncing for passage text parsing and diagnostic updates in the
onDidChangeTextDocument
handler. Should hopefully reduce CPU usage when making large edits. twee3LanguageTools.parseText.wait
andtwee3LanguageTools.parseText.maxWait
: Configurations to modify the debounce wait durations.
Changes:
- Diagnostics updater doesn't comb through a document line-by-line anymore. Since that is already done by passage text parsers, results from that are leveraged instead. Should hopefully reduce CPU usage for larger projects.
Updates:
- Engine to Node 20
- Most dependencies have been updated to latest versions
Adds:
- Basic definition support for SugarCube 2 macros and widgets (Ctrl + Click to go to definition) - PR #150.
Adds:
- Light mode for Storymap.
- Passage folding (Thanks to @leahiel - PR #148).
Adds:
twee3LanguageTools.storyMap.restoreStoryMapOnLaunch
: Reopens the Story Map on launch if it was open during the last session. Resolves Issue #145.
Adds:
OnEnterRules
for SugarCube-2, handling indentation for macros. Partially addresses Issue #144.
Adds:
- Enums to SugarCube macro definitions (Issue #139 and PR #141).
- Setting to customize number of aliases allowed in a single yaml file (PR #142).
Fixes:
- Performance improvements for large projects (PR #140).
- SugarCube macro definition handling (PR #143).
Adds:
- Editor context menu item:
Set passage as story start
sets the currently focused passage in the editor as the start passage.
Fixes:
- Bracket pair definition for angle brackets removed. No more rogue pair coloring for SugarCube 2 macro syntax highlights.
Fixes:
- Harlowe 3 syntax highlighting (PR #120).
Fixes:
- Premature closing of the storymap when in webview mode (Comment on #103).
- Sanitizes tags when added from the story map. Resolves Issue #115.
- Fixes saving of changes to tags array from story map.
Adds:
- Symbol provider for passages. Resolves Issue #106.
- Webview Story Map now auto opens to a side in a locked editor group. Resolves Issue #103.
Adds:
- Webview version of Story Map, which is now the default mode. Change using the
twee3LanguageTools.storyMap.windowType
setting.
Merges PR #96.
Merges PR #94.
Merges PR #93.
Adds:
- Focus current passage in the Story Map (PR #92.) It is both available from right-click context menu in the editor, as well as from the command palette as
Focus passage in Story Map
.
Merges PR #91.
Adds:
- (PR #86) SugarCube 2: Basic max check for validating children macros such as else. (Resolving Issue #85.)
Fixes:
- SugarCube 2: Background color of matched macro opening/closing tags was the same as that of editor selections, make it impossible to see how much of the text was actually selected. Removed background color so it works like other text.
Adds:
- A Getting Started Guide for working with Twee (PR #78).
- SugarCube 2: A command to add all unrecognized macros in the current file. Helpful in large projects, where adding all at once is rather slow, or you only care about the current file (PR #82).
Fixes (PR #82):
updateDecorations
code which wasn't guarding against undefined properly, so it'd spit out errors.- Improves the existing 'add all unrecognized macros' command to have a progress bar which informs the user of what it is doing, and allows cancelling it if it is taking too long. Especially helpful in large projects where that might take a while.
Adds:
- Receiver parameter type for SugarCube 2 macro parameter validation. PR #64
- Ctrl + I and Ctrl + B keybindings for italics and bold in SugarCube 2 and Harlowe projects. PR #66
- Custom decoration declarations for SugarCube 2 macros. PR #67
Fixes:
- Parameter documentation improvements.
Fixes:
- Initial workspace diagnostics running in parallel with initial passage discovery, which resulted in nonexistent passage references.
Adds:
- Workspace statistics Status bar item (thanks to @rambdev).
Changes:
- StoryData snippet now populates the IFID field on its own.
Adds:
- SugarCube 2 Snippets:
- Link (Same Passage)
- Print (Wrap)
- Script (Wrap)
Changes:
- SugarCube 2 Snippets:
- Added missing quotation marks to Audio and DOM macros
Adds:
- SugarCube 2 macro snippets (thanks to @rambdev).
Adds:
- SugarCube 2:
<<done>>
macro definition.
Updates:
- (Experimental) Example passage pre-processor for the SugarCube 2 self-closing macro syntax.
Adds:
- (Experimental) Passage Auto-packer.
Fixes:
-
Broken
Add to definitions
quickfix forend...
named macros. -
Broken Passage header updates when saving position/size/tags from Story map to file.
Adds:
-
Story Map:
- Passage multi-select and the ability to mass edit position, size, and tags.
- Move to file feature in story map.
Fixes:
- Broken StoryMap-to-file updates when passage headers start with identical strings, i.e. modifying tags/metadata of
:: Passage Something
and:: Passage Somethng Else
would end up affecting the header which comes first in the file.
Adds:
- Icon for
Jump-to-Passage
in the passage list.
Adds:
- An icon indicating the start passage in the Story Map.
Removes:
- Custom style markup highlighting which overwrote syntax highlighting for higher priority elements.
Fixes:
- Numerous bugs with argument parsing and validtion.
Adds:
Adds:
- Caching functions to improve performance for large files (thanks to @Goctionni and @MinusGix).
Adds:
-
A story map UI which opens in the browser (thanks to @Goctionni). Still in early stages, so feedback is welcome.
-
SugarCube 2:
- Macro argument validation (thanks to @MinusGix).
Adds:
- SugarCube 2: (both thanks to @MinusGix)
- Macro documentation on hover.
- Diagnostics for invalid argument syntax in macros.
Adds:
- Setting:
twee3LanguageTools.sugarcube-2.features.macroTagMatching
: Highlight opening and closing tags of container macros? (true
by default.)
Adds:
- Experimental:
- Self-closing macro syntax detection for SugarCube 2.
Adds:
- Passage grouping strategy:
- Group by folder: Groups passages by the folders they originate from.
Adds:
- Setting:
twee3LanguageTools.twee-3.warning.spaceAfterStartToken
: See Issue #4 (warning about no space between start token::
and passage name).
Fixes:
- Issue #3 - False positives of SugarCube diagnostics in
script
andstylesheet
tagged passages.
Adds:
- Quick fixes:
- Deprecated
<<end...>>
SC macros can be converted to the<</...>>
form. - Unrecognized macros can now be defined and added to a local file (
t3lt.twee-config.yml
) with a quick fix. If the macro has been closed anywhere within the source file, the extension assumes the macro is a container and sets that property totrue
.
- Deprecated
Adds:
- Settings to include/exclude directories from the search for twee files. See Readme for more details.
Adds:
- Grouping for the passage list tree view.
Fixes:
- Passage list not getting updated properly when files are renamed.
Adds:
- SugarCube 2:
- The following diagnostics:
Error
Container macros with opening tags but no closes (and vice-versa) for the core SugarCube library,Warning
Deprecated macros from the core SugarCube library,Warning
Deprecated<<end...>>
macros,Warning
Unrecognized macros. This warning can be turned off by thetwee3LanguageTools.sugarcube-2.undefinedMacroWarnings
setting.
- The following diagnostics:
Adds:
- SugarCube 2:
- JS syntax highlighting inside the
<<run>>
and<<print>>
macros. - Container macros now have decorators for their closing tag. See Readme for more details.
- JS syntax highlighting inside the
Removes:
- Parsing of JSDoc comments to provide code suggestions. This was causing basic plaintext suggestions to stop working, and is a limitation of the code completion features VSCode facilitates. Going forward, suggestions will be left to code snippets defined in JSON files.
Adds:
- A new tree view container in the activity bar. Currently, it shows a list of passages across all Twee files in the workspace, along with links to jump to them. See Readme for screencaps.
Fixes:
-
If JSDoc comments containing widget/macro documentations are removed, older definitions still stay in memory, and cause the editor to provide suggestions for macros that are no longer documented. To fix, restart VSCode, or reload the window (type "Reload Window" into the command palette (Ctrl/Cmd + Shift + P by default)).
Adds:
-
Syntax highlighting for Chapbook 1.
-
JSDoc comment support for SugarCube. See Readme for more information.
Fixes:
- SugarCube block comments (
/* */
) not getting tokenized.
Initial release.
Adds:
-
Syntax highlighting for Twee 3.
-
Dynamic snippet for generating IFID for the
StoryData
special passage. Typing 'StoryData' provides a completion prompt which inserts a JSON chunk along with the generated IFID. -
The following diagnostics:
Error
MalformedStoryData
JSON,Warning
No whitespace between start token::
and passage name.
-
Automatic detection of storyformat plus an override option.
-
Syntax highlighting for:
- SugarCube 2,
- Harlowe 3.