Summary
The vendored Ace editor has not been updated since October 2019 (v1.4.7). This upgrade brings it to v1.43.6 (March 2025) — approximately 100 releases of improvements, bug fixes, and security patches.
Changes
Ace Core Upgrade
Unused Extension Cleanup
16 bundled extensions were never loaded or referenced anywhere in the codebase. Removed:
ext-beautify, ext-chromevox, ext-elastic_tabstops_lite, ext-keybinding_menu, ext-linking, ext-modelist, ext-old_ie, ext-searchbox, ext-settings_menu, ext-spellcheck, ext-split, ext-static_highlight, ext-statusbar, ext-textarea, ext-themelist, ext-whitespace, snippets/text.js
Corresponding <Content> entries removed from Spe.csproj.
PowerShell Mode Improvements
- 18 new keywords:
catch, class, data, define, dynamicparam, enum, exit, finally, from, hidden, inlinescript, parallel, static, sequence, try, using, workflow, var
- Here-string support:
@'...'@ (literal) and @"..."@ (expandable)
- Braced variable syntax:
${variable}
- Backtick escape sequence highlighting in expandable strings
- Sub-expression highlighting:
$(), @(), @{} inside strings
- Additional operators:
xor, bnot, bxor, notin, shl, shr, split, join, and case-sensitive/insensitive variants
- Fixed typo in attributes:
llownull → allownull
- Restructured rules using include directives for maintainability
- Preserved SPE-specific: generic Verb-Noun cmdlet regex, attribute/member token types
Theme Updates
- Added CSS for
variable.braced and constant.language.escape token types
Not Updated
Related
Summary
The vendored Ace editor has not been updated since October 2019 (v1.4.7). This upgrade brings it to v1.43.6 (March 2025) — approximately 100 releases of improvements, bug fixes, and security patches.
Changes
Ace Core Upgrade
ace.jsupgraded from v1.4.7 to v1.43.6ext-language_tools.jsupgraded — includes improved tooltip positioning (supersedes Fix Ace autocomplete tooltip positioning in ISE #1430 fix)ext-emmet.jsandext-error_marker.jsupgradedUnused Extension Cleanup
16 bundled extensions were never loaded or referenced anywhere in the codebase. Removed:
ext-beautify, ext-chromevox, ext-elastic_tabstops_lite, ext-keybinding_menu, ext-linking, ext-modelist, ext-old_ie, ext-searchbox, ext-settings_menu, ext-spellcheck, ext-split, ext-static_highlight, ext-statusbar, ext-textarea, ext-themelist, ext-whitespace, snippets/text.js
Corresponding
<Content>entries removed fromSpe.csproj.PowerShell Mode Improvements
catch,class,data,define,dynamicparam,enum,exit,finally,from,hidden,inlinescript,parallel,static,sequence,try,using,workflow,var@'...'@(literal) and@"..."@(expandable)${variable}$(),@(),@{}inside stringsxor,bnot,bxor,notin,shl,shr,split,join, and case-sensitive/insensitive variantsllownull→allownullTheme Updates
variable.bracedandconstant.language.escapetoken typesNot Updated
emmet-core/emmet.js— emmet v2.x is an ES module, incompatible with Ace'sext-emmetwhich requires the legacy emmet-core library. The current emmet-core was already updated (Underscore 1.13.8) in PR #1412 breaks Emmet: underscore update accidentally deletes entire Emmet core library #1413.mode-powershell.jskept over upstream because the genericVerb-Nounregex catches all SPE cmdlets dynamically, unlike the upstream's explicit Windows cmdlet list.Related