Release Notes - DeltaXML/vscode-xslt-tokenizer GitHub Wiki
XSLT/XPath extension for VS Code
27 April 2025
- Linter: The '?'
ArgumentPlaceholder
token for a Partial Function was erroneously reported as an error with a 'context item missing' message - as if it were a lookup operator. - Linter: Spurious 'unexpected' errors were reported in XPath expressions within CDATA sections with more than one text-value-template.
22 April 2025
- Auto-completion:
xsl:map-entry
completion snippet now includes thekey
attribute and is an empty-element snippet
19 April 2025
- Auto-completion: The auto-complete list for the 'as' attribute was re-triggered immediately after selecting an auto-complete item in the attribute
- Linter: When referencing types in XPath expressions, the occurrence indicators
*
and?
were incorrectly marked as errors when found inside anarray()
ormap()
type specifier: e.g.$a instance of array(xs:integer?)
30 March 2025
- Issue #143 - XML namespace declarations with whitespace preceding the '=' character were not recognised - causing false reporting of namespace errors
30 March 2025
- 'Out of the box' editor user-settings defaults for the XSLT language are now optimised for the extension
- Linter: A false-positive 'missing context' error was reported for
?
lookup operator if it followed a function call with no args - Linter: No error was reported if the conditional for an 'if-else' expression was not properly closed with a ')' character
before the
then
keyword - Auto-completion: the completion-list with the cursor following the '[' token was only populated with XPath locations
8 February 2025
Updates related to rebranding of product sponsor company from DeltaXML to DeltaXignia.
- tasks.json auto-completion hints for xsl:param 'name' were on the 'value' property and incomplete
- variable auto-completion: removed dead code affecting minor adjustment for range selection
5 December 2024
- XML Compare Configuration (DCP) Updates
- Updates for XML Compare 16.0
- Now provides auto-completion for attribute values from schema
- (Previous auto-completion was for elements and XPath only)
18 November 2024
- XSLT/XPath editing auto-complete: the xpath axis was not always included in the auto-completion list
- XSLT/XML tag rename: the close tag was not properly updated with copy/paste was used to update the start tag
- Code Assist: the 'quick fix' code assist for the
ext:print
function call was not always triggered - XPath lexer: falsely reported error when map lookup '?' operator was not preceded by a variable etc.
- XPath lexer: did not report an error when map lookup '?' operator had no context item
- Issue #140 - xs:NMTOKENS etc. missing from functions list
- Auto-completion: extended template for
xsl:accumulator
- Auto-completion: extended template for
xsl:function
5 November 2023
- XPath editor auto-complete: typing
@
to trigger suggestion-list for attributes caused@@
to be entered on accepting the suggestion
- Supplemented the auto-complete list for
fn:serialize()
with the 'adaptive' option for the function - Saxon SQL extension functions now have auto-completion and linter support
3 August 2023
- xsl:message auto-complete:
serialize($var, map{'method':'adaptive'})
added to suggestion list
11 June 2023
- Issue #124 Lexer: fix specific minor cases where problems were not reported
5 June 2023
- xsl:message debugging
- ext:print() function adds space separator for a sequence of text-nodes
- ext:formatValue() function calculates width specially if ellipsis is required
- xsl:import/xsl:include href starting with
file:/
as infile:/path/to/file
was not resolved to a correct file path - now fixed
21 March 2023
- Linter: spurious 'missing {' error reported for
$a as function(*)
- Updated NPM dependencies
11 March 2023
- xpath-result-serializer.xsl library
- the
ext:print()
function now always shows the serialized element start-tag if the element path starts withroot()
- the
- Linter:
- spurious 'missing context' problem reported for node-name test following map lookup operator e.g. `$map?x[@class]
5 March 2023
- SaxonJS Tasks:
- Added
relocate
property corresponding to SaxonJS command-line arg-relocate:[on|off]
- Added
timing
property corresponding to SaxonJS command-line arg-t
- Added
- Linter:
- Added basic syntax checking for anonymous function:
function($a) {$a + 1}
- Added basic syntax checking for anonymous function:
- Linter - fixed spurious 'missing context' errors:
- for array constructor that is given context like:
$nodes![@class]
- for alternative array constructor that is given context like:
$nodes!array{@class}
- for map constructor that is given context like:
$nodes!map {'x': @class}
- for array constructor that is given context like:
24 February 2023
- Support
unprefixedElementNames
property for SaxonJS Tasks
-
Issue #120 Problem was reported for empty
name
attribute ofxsl:namespace
instruction - now fixed.
23 February 2023
- Linter enhanced to report problem with trailing
/
char. E.g.(/books/)
- Linter did not report 'missing context' problems inside
every
,for
andsome
range-variable expressions - now fixed - Related to the above: The 'extract xsl:function' full-refactor code action did not fix context problems inside range-variable expressions
- Auto-completion was triggered after accepting from the completion-suggestions if completion-item was a type like
xs:string
16 February 2023
- Auto-completion:
- New 'XML Context' status bar item shows XML context file used for XPath auto-completion
- XML context file is changed (from most recently used) by clicking on the status bar 'context' item
- When setting context file, recently opened XML files are listed as well as previously used context files
- Auto-completion:
- No suggestions if XPath location included element-name test '*:name' - now fixed
- Variable names were in suggestion-list when types were expected - now fixed
- Completion-list triggering did not occur following named operators like 'and'
- Auto-completion list empty for XPath starting with
$param/
when referencing anxsl:param
with noselect
attribute - Auto-completion for XPath starting with
$variable
sometimes only listed the root element
13 February 2023
- Auto-completion for XPath functions:
- Increase cases where function completion suggestions are triggered
- On accepting suggestion, don't overwrite the following token when it immediately follows the cursor position
- Improve suggestion trigger for TVTs and AVTs
- General improvements in consistency when triggering suggestion list
- Include variable completion suggestions always - instead of just on the
$
char trigger
7 February 2023
- XPath Result Serializer:
- Supports color for SaxonJS also
- QuickFix for
ext:print()
now includes 'xpath-result-serializer-color.xsl' that explicitly enables terminal colors via ANSI escape sequences
- XSLT Tasks:
- Uses extended Saxon command-line-interface to support color xsl:message output:
- Uses version in SaxonJAR path to determine the extended class version to use Saxon99/Saxon10/saxon11/Saxon12
- Force use of base Saxon command-line-interface with tasks.json property:
"messageEscaping": "on"
- Uses extended Saxon command-line-interface to support color xsl:message output:
3 February 2023
- XPath Result Serializer:
- Upgraded to v0.1.0 of XSLT module - supports bracket-pair colorisation etc.
- QuickFix xsl:include path for XSLT module is now relative
- QuickFix xsl:include path for XSLT module uses existing xpath-result-serializer.xsl path if found already in workspace folder
- Saxon TextEmitter used by default when Saxon version prior to 9.2.0.2 found (override with XSLT task setting 'messageEscaping:on'
-
#119:
xsl:strip-space
- problem wrongly reported for leading/trailing whitespace inelements
attribute
31 January 2023
- Refactoring:
- 'Extract xsl:variable' has improved indentation for extracted multi-line expressions
- XSLT Diagnostics:
- New xsl:message auto-complete expoits new
ext:print()
function - Serializes any XPath 3.1 item with colorisation (when supported) and formatting
- A QuickFix on the function inserts the required
xsl:include
andxmlns:ext="...
code
- New xsl:message auto-complete expoits new
19 January 2023
- XSLT 4.0:
- Added
htmlParserJar
User Setting for path ofnu.validator.jar
orhtmlparser.jar
- A warning is now set on
parse-html
function if thehtmlParserJar
property is not set in User Settings - Support for the
slice()
XPath function has been removed as the specification for this is changing
- Added
- Refactoring
- 'Extract xsl:variable' support added to existing 'Extract xsl:template' and 'Extract xsl:function' support
- PickFile Task Input Command:
- If recently used files were picked from list they were not promoted to top of list for next time - now fixed
- For 'Select XSLT' command: if current-file was not xml an 'undefined.range' error occurred when checking for xml-stylesheet - now fixed
- Don't show QuickPick list if there are no options other than 'Pick File' - go straight to the 'Pick File' option
16 January 2023
- Updated XSLT 4.0 support for Saxon 12:
- New XPath 4.0 functions
- Fixed support for types: type() and atomic()
- Allow types to be used in match patterns
- XSLT Task Pick Commands:
- To help distinguish same-filenames in the 'recently used' list, long-paths are left-truncated at point where paths diverge
-
#114: Command
xslt-xpath.pickXsltFile
includes<?xml-stylesheet href... ?>
in the current file in the pick-list
- XPath 4.0 unwanted error because '->' operator did not supply context to function definition within {}
12 January 2023
- Namespace scoping issues Issue #116:
- erroneously reported a prefix error when xmlns declared on same element but after the error token
- failed to report prefix error when preceding self-closed element was declared with same prefix in xmlns declaration
11 January 2023
- Improved clarity of file pick list
- More details in documentation on how to use new pickfile commands
- Recently used list was not cleared properly in workspacestate
10 January 2023
-
Issue #110: XSLT Tasks can prompt for file-selection via file-explorer or 'recent files' list
-
"xsltFile": "${command:xslt-xpath.pickXsltFile}",
select from current file - if xslt - or recently used xslt files -
"xmlSource": "${command:xslt-xpath.pickXmlSourceFile}",
select from current file or recently used stage1 source files -
"xmlSource": "${command:xslt-xpath.pickStage2XmlSourceFile}",
select from recently used stage2 source files or stage1 result files -
"resultPath": "${command:xslt-xpath.pickResultFile}",
save to recently used stage1 result files -
"resultPath": "${command:xslt-xpath.pickStage2ResultFile}",
save to recently used stage2 result files
-
- New Command:
XSLT: Add XSLT inputs to Tasks File
- Adds 'inputs' property to
task.json
to provide convenient way to customise file-selection
- Adds 'inputs' property to
- An information message is now shown when an XSLT task completes
User 'QuickPick' shown when task invoked referencing ${command:xslt-xpath.pickXsltFile}
:
2 January 2023
- New Support for VSCode Refactoring:
- Extract instructions to xsl:function - partial/full refactor +
- Extract expression to xsl:function - partial/full refactor +
-
Extract instructions to xsl:template:
- Adds required arguments for the function call - notable context-properties include:
- 'variables' where variable references are not resolved for the new function
- 'context' where context nodes are needed: node-name-test, axis,
base-uri()
, root, etc. - 'position' where the
position()
function lacks context - 'last' where the 'last()` function lacks context
- Refactors
xsl:variable
toxsl:sequence
if it is the last instruction within the new function - Adjusts code formatting for the new function
- Adds appropriate
expand-text
attribute to thexsl:function
instruction - Triggers the Rename Symbol action for the newly created function name
- Adds required arguments for the function call - notable context-properties include:
-
Symbol-Outline BreadCrumbs:
- selecting any part of an attribute now makes it the current symbol - previously only the attribute name was 'active'
-
Linter:
- Expressions requiring the context-item are highlighted as problems when there is no context-item
-
Syntax-Highlighter:
- More consistent highlighting for name-tests that include
*
wild card, like:@*:class
or@dev:*
- More consistent highlighting for name-tests that include
- 'Rename Symbol' did not work as expected when a call to a function with no arguments was selected
- Linter: The
axis
token in XPath expression likechild::text()
was not validated - now fixed - Syntax-highlighter: the
name
attribute ofxsl:merge-source
was treated as an Attribute Value Template
21 November 2022
- XPath linter: the '+' occurrence indicator in
item()+
andelement('div')
+ was not given the correct token type - causing the linter to falsely report an error
17 October 2022
- A false problem was reported with
:=
operator if it was not preceded by whitespace - A problem was reported for the '?' lookup operator following a '.' context-item selector - now fixed
- XSLT 4.0: 'map' and 'array' attributes on instructions like 'xsl:for-each' were not treated as expressions - now fixed
9 October 2022
- Auto-complete for XML Comments improved - now triggered by '!' character following '<'
- Auto-complete for CDATA section improved - now triggered by '!' character following '<'
- Auto-complete for Processing Instructions improved - now triggered by '?' character following '<'
- Problem was reported for '/' step operator following an attribute-name test e.g.
@attr/string()
- now fixed
25 September 2022
- Fixed 'Goto Definition' for
mode
symbol ofxsl:template
,xsl:apply-templates
andxsl:mode
instructions - Fixed 'Goto References' for
mode
symbol ofxsl:template
,xsl:apply-templates
andxsl:mode
instructions - Fixed 'Rename Symbol' for
mode
symbol ofxsl:template
,xsl:apply-templates
andxsl:mode
instructions
13 September 2022
- Regression: '
\
' step operator reported as invalid if it follows a variable: e.g.$a/books
- now fixed
12 September 2022
- Regression: '
?
' lookup operator reported as invalid if it follows a map-lookup: e.g.$a?top?title
- now fixed
11 September 2022
-
Sticky-Scroll:
xsl:variable
did not stick whilexsl:sequence
did - now fixed -
Lexer: spurious
unexpected token
error for empty map constructor:map{}
-
Issue #105: linter in error when reporting on value of
use
attribute ofxsl:context-item
instruction - now fixed -
Issue #106: when a function is referenced using the
?
map lookup operator, the arity of that function is not known statically and should therefore not be checked
- Linter now checks that token following a
=>
arrow operator is valid - Linter now checks that token preceding a
?
map lookup operator is valid
29 August 2022
-
Issue #103 validation for
elements
inxsl:preserve-space
andxsl:strip-space
only accepted*
value - now fixed - Auto-completion for modes:
- '#' char was repeated if it was the auto-complete trigger - for example:
##current
- did not split space-separated mode names
- for
xsl:template
instruction did not include '#all' - modes used/defined in imported modules were not included in auto-complete list - now fixed
- '#' char was repeated if it was the auto-complete trigger - for example:
9 August 2022
- Issue #102: 'Goto Definition' command failed from a multi-line function call. Now fixed.
12 June 2022
- XML formatter: Detected newline following internal DTD subset prevented line-formatting of the whole document - now fixed
- XML formatter: Adding an empty newline within an attribute value produced inconsistent indentation - now fixed
2 June 2022
- Document Comparator Pipeline (DCP) support extended for new CALS table processing features added in XML Compare 12.0
- 'Select Element' command: selection included character following the element end
- 'Select Next/Previous Element' commands did not work reliably when repeated
- A spurious problem was reported for XPath comment following a ',' char in a complex expression
22 May 2022
- XSLT attribute values with enum types are now validated
- 'Document Comparator Pipeline` (DCP) elements and attribute names are now validated
- DCP attribute values with enum types are now validated
16 May 2022
- The XPath linter could erroneously report variable reference problems if complex expressions, like an 'If Expression' occurred within a multi-part 'Let Expression', this issue has now been fixed
5 May 2022
- Improved auto-complete snippets for
xsl:try
/xsl:catch
blocks
- Text for mouse-hover assistance on XSLT functions had missing space characters following
as
for return types
30 April 2022
- A spurious 'variable not defined' error was reported when an
IfExpr
was nested within aLetExpr
- now fixed
9 April 2022
- XPath 4.0 expressions of the form:
for $member in $var...
were not supported by the DiagnosticsProvider - now fixed
12 March 2022
-
fn:count
andfn:code-points-to-string
functions (using prefixes) were erroneously marked with an arity error - now fixed - linter marked
<=
and>=
as errors - now fixed - Regression in last release cause 'expand-text' attribute on root element to be ignored - now fixed
6 March 2022
- Improved auto-complete for XSLT 4.0 xsl:switch instructions
- xsl:if instruction in XSLT 4.0 did not support 'then' and 'else' attributes - now fixed
2 March 2022
- Basic language support for XSLT 4.0 (proposed)
- Auto-completion for new functions and XSLT instructions
- Hover assistance for new function signatures
- Syntax-highlighting
- Linter extended for new syntax, functions and XSLT instructions
- New
allowSyntaxExtensions40
property for XSLT tasks (default:off)
19 February 2022
-
Rename Symbol and Find All References features did not support
xsl:with-param
declarations insidexsl:next-iteration
-
Rename Symbol and Find All References features did not support
xsl:with-param
declarations insidexsl:call-template
17 February 2022
-
Rename Symbol
- All in-scope usages of the symbol will be renamed - across all imported stylesheet modules
-
Find All References
- View and navigate between all references for a selected symbol in the References Pane
1 February 2022
-
Issue #93 - when the
=>
operator was used before an anonymous function call, the arity of subsequent calls to named functions was calculated as if the=>
operator preceded them also, so a problem was reported in error
29 January 2022
- Erroneous problem was reported for
map(*)
andarray(*)
used for type testing, because these were tokenized as functions - now fixed - Auto-completion for
<xsl:text>
was a self-closing tag - now fixed
- Auto-completion for
<xsl:choose>
now includes a child<xsl:when>
instruction - Issue #94 - don't report problems for functions in the 5 (legacy) EXSLT namespaces documented here
15 January 2022
Version number set to 1.0.0 to re-baseline this release after 2 years development and 16K+ installs
- Error occurred when
initialTemplate
in tasks.json was set to an empty-string. Now fixed
- XSLT-JS Tasks: To export XSLT files to SEF without execution, a new (optional) 'execute' property can be set 'false'
- Early preparation for web extension for taskproviders: avoid 'rootpath' and use of NodeJS path api
20 December 2021
- issue #92 Line breaks in XPath string literal caused 'unexpected token' problem to be reported erroneously (Originally reported in XPath Notebook issue #6)
28 November 2021
- issue #91 A problem was erroneously reported when an ifElse expression, without enclosing brackets, was included in an XPath Map constructor.
- No problem was reported when a trailing
else
operator was found following anifExpr
- For compound expressions like
forExpr
, no problem was reported when a,
(comma) operator was found when an expression was expected
2 November 2021
- Added support for SaxonJS Interactive Extensions
- Auto-completion for xmlns, extension instructions, extension functions and browser-events in modes
- Problem reporting for extension instructions and extension functions
- Interactive function signature/description shown on hover
27 October 2021
- Special syntax-highlighting for map-keys inside map-constructors that are strings
- Improved problem-reporting for problems inside map-constructors
- Problem was reported spuriously for
*
occurrence indicator when declaring an arg for an anonymous function - e.g.$a as node()*
2 October 2021 (update)
Published with updated vsce tool as previous release did not appear to update properly in the VS Code Marketplace. Updated Readme.md.
2 October 2021
- Improved semantic token configuration to work better with 'Kary Pro' color them
- issue #89 VS Code froze when opening a new XSLT file in the editor or deleting all the context of an existing XSLT file in the editor
12 September 2021
- XPath location auto-completion can now use context from XPath Notebook variables
-
issue #86 the
?
lookup operator was erroneously marked as an error at the start of a predicate
6 September 2021
- previous release caused XSLT function lookup to fail due to arity error - now fixed
6 September 2021
- Auto-completion for XPath location node-name test following
..
step operator failed - now fixed - Auto-completion for XPath location
*
wildcard andnode()
following..
step operator failed - now fixed
5 September 2021
- XPath location auto-completion improvements:
- Support union
|
and comma,
operators in parenthesis:/books/(paperback|hardback)/
- Support variables in XPath locations:
let $a := /countries, $b := $a/country return $b/...
- Add XPath location auto-completion support on lhs and rhs of expressions within parenthesis and functions
- Support union
3 September 2021
- XSLT editor auto-completion improvements:
- Provides auto-completion for XPath location steps using last active XML source
- Standalone XPath editor auto-completion improvements:
- Improved trigger for auto-completion list
- Provides auto-completion for XPath location steps using last active XML source
- New
Use Source File
user setting controls how completion-list for XPath node names is populated
- issue #83 references to imported functions erroneously reported as broken due to function arity problem
- issue #84 when xslt editor lost focus - spurious problems were often reported in the non-focused editor
- issue #85 XSLT Tasks: when xmlSource property was not supplied the -s: command-line arg was still used resulting in a Saxon error.
10 August 2021
- Links in documentation for new XPath Notebook companion extension
- Improved XPath problem-reporting
- When scope of range-variables limited by ',' sequence concatanation op
- In if/else block, when ',' sequence concatanation op found instead of 'else'
- New 'Select first child element' command
- Added Keyboard shortcuts for all 'XML: Select ... element' commands
- 'Goto XPath' command did not work reliably - now fixed
- 'Select ... element' commands did not work reliably - now fixed
- 'EnableAssertions' setting in Saxon XSLT task caused an error when XSLT task was run
- 'Timing' setting in Saxon XSLT was confusing as it allowed any string - permitted strings now: 'on' and 'off'
28 July 2021
- New
xslt-xpath.selectXPathInDocument
: Opens file withuri
arg and selects XML node indicated by thexpath
arg
-
Goto XPath
command, selected the node but did not scroll to the selection. This has now been fixed.
24 July 2021
- new
setVariableNames
external command for XPath problem reporting and auto-completion (required by XPath Notebook) - 'XPath Prolog' support for
%
prolog-separator (required by XPath Notebook)
9 July 2021
-
issue #78 When hovering over a higher-order function reference (e.g.
substring#2
) hover-assistance is now shown. - Auto-completion snippet for
xsl:value-of
instruction is now a self-closed tag - Spurious problem reported for
xs:numeric
- Auto-completion list for types now includes
xs:numeric
- New root-element auto-completion snippet for
xsl:package
- Auto-completion snippet for
xsl:copy
no longer includes theselect
attribute (not commonly used)
17 June 201
- issue #74 Problems reported in a file after the document is no longer the active document. Problems were not reported when the file was the active document.
- The Auto-complete suggestions list was triggered when invoking the Tag Close feature by pressing
</
- this has now been fixed. - Inferred imports - if a stylesheet module was indirectly imported, only the parent was imported, instead of the parent's parent etc.
- Syntax highlighting for attribute name was not right when entity reference was within the attribute value
11 June 2021
- issue #73 Spurious 'Invalid Name' problem reported in XPath for @*:data
-
issue #71 Saxon XSLT Tasks now support the
--feature
command-line arg: For example, to disable DTD validation:
--parserFeature?uri=http%3A//apache.org/xml/features/nonvalidating/load-external-dtd:false
-
issue #72 Inferred
xsl:import
- when navigating from parent stylesheet to non-standalone stylesheet modules with missingxsl:import
. Prevents spurious 'not defined' warnings, improves auto-completion etc.
June 4 2021
- issue #67: Error thrown in other extensions because parsing of task.json was not robust for JSONC
- issue #68: Syntax highlighting of last char of an XPath within an attribute-value-template was not correct
- To prepare for remote environments (SSH etc) - file handling now uses the VSCode API instead of NodeJS
- New Documentation for the extension: User Guide for XSLT/XPath in Visual Studio Code
May 16 2021
-
issue #63: spurious errors reported for
map {$id: $name}
- caused by tokenizer problem with$id:
-
issue #64:
name
attribute for non self-closedxsl:with-param
element withtunnel="yes"
attribute was marked as invalid -
issue #65: when running
xslt-js
tasks on Windows the terminal process exits with error code 193
- The
xslt-js
task now uses npx for running thexslt3
package and thus no longer needs/uses the path specified atnodeModulesFolder
May 15 2021
- XML error was reported when whitespace found outside root element - now fixed
- XPath formatting: If comma found at end of
else
block the block indentation was not reverted - now fixed -
issue #56:
$err:line-number
variable reference not recognized -
issue #57:
xsl:with-param
names forxsl:call-template
no longer checked if there's atunnel
attribute -
issue #58:
xsl:break
instruction not entered properly in schema - spuriously reported invalidselect
attribute -
issue #59:
*
token following a]
was not converted toop:numeric-multiply
token - causing a spurious validation error for the following operand - now fixed -
issue #60: spurious 'invalid entity name' warning for
	
- issue #61: spurious 'undeclared prefix' warning for preix of a node-test in xpath when xmlns declaration is on same element
- issue #62: Clash with vs-code-bpmn-io extension - was overriding the 'bpmn' language id to 'xml' - causing said extension to not recognize BPMN files.
- Basic XML syntax checking for BPMN files
- Syntax highlighting for BPMN files - uses Semantic highlighting
- XML formatting for BPMN files
May 1 2021
- there was no auto-completion for XSLT attribute names on new lines - now fixed
- no problem was shown if duplicate xmlns declaration was found on same element tag - now fixed
- auto-completion: excessive triggering of the suggestion list was distracting - suggestion list no longer triggered for space characters
- function signature and description shown on hover for built-in functions in XPath or XSLT
March 20 2021
- as-you-type indentation for XPath files was erratic - this issue has now been fixed
- XPath expressions with
?
operator following a!
operator were wrongly marked as invalid - xsl:output method auto-complete now includes 'json' and 'adaptive'
- XSLT Tasks: Saxon-JS 2.1
-json
command-line arg is now supported via theuseJsonSource
boolean property - new command for extensions:
xslt-xpath.symbolFromXPath
- All symbol-related features now support XML attributes
- Outline View: XML attributes shown within an
attributes
container for each XML element -
Goto XPath
XPath locations ending in/@attributename
navigate to the actual attribute instead of the containing XML element
- Outline View: XML attributes shown within an
March 10 2021
(bug fixes only)
- The 'Goto Definition' feature for functions, variables and other symbols from an imported/included file did not work on Windows. This was due to character escaping issues when creating the file URI. This issue has now been fixed.
March 6 2021
(bug fixes only)
- Attempt to resolve XSLT task issues associated with shell-specific escaping. The Saxon JS and Java tasks now use a processExecution instead of a shellExecution.
February 25 2021
(bug fixes only)
- An entity-ref or character-ref in XPath string literal was shown as error incorrectly - this has now been fixed
- A
*
multiplication op was incorrectly tokenised as a wildcard - causing the following number token to be shown incorrectly as an error - this issue has now been fixed.
February 24 2021
- Standalone XPath editor diagnostics: Use XML namespace prefixes from last active XML document
- Goto XPath - quick input XPath location to select specific XML element
- Get XPath - show XPath location for current selection
- XML Element Editor Selection commands:
- Current Element
- Preceding Element
- Following Element
- Parent Element
- Extension Command - Select element for given XPath
- For Windows OS, the 'follow-link' feature for
xsl:import
did not work - this has now been fixed
February 10 2021
- Formatting provider no longer attempts to fix indentation of CDATA content
- New auto-completion for CDATA, XML comments and XML processing instructions
- Stand-alone XPath editor:
- new problem reporting exploits existing XSLT editor features for XPath
- new XPath-only code formatter
- Issue #37: String literal error was reported for
"text"
- for/let expressions were not checked for
in
/:=
operators
January 23 2021
- New auto-completion for 'xsl:message' to output formatted list of in-scope variable names/values
- Minor enhancements to token definitions - improves syntax-highlighting for some colour themes
January 4 2021
- Issue #27: Token error was reported when XML file was empty
- Auto-completion items: within
xsl:iterate
instruction, thexsl:next-iteration
instruction is now shown - Auto-completion items: only
xsl:param
names forxsl:iterate
now shown withinname
value ofxsl:with-param
inside axsl:next-iteration
- On accepting the
xsl:next-iteration
auto-completion item, the snippet inserted now includes anxsl:param
instruction - XML angle-brackets now have alternate
punctuation.definition.tag.xi
scope to support themes like One Dark Pro - Triggering of auto-complete suggestions is not inhibited when following an auto tag-close
- Problem reporting for invalid XSLT instruction names - given the parent instruction
- Problem reporting for invalid XSLT attribute names on XSLT elements
August 27 2020
- Issue #27: TypeScript build issue affecting linux users (extension load error) - compiled version of xsltSchema.ts had incorrect case
- Issue #27: getTextForToken causes unhandled error if token.startCharacter < 0
August 23 2020
- XML entity references within XPath string-literals now have special syntax highlighting
- Improved context-checking when triggering auto-completion
- Now supports auto-completion for mode in xsl:apply-templates
- Now supports auto-completion for xsl:with-param names within xsl:next-iteration
- Now checks xsl:with-param names within xsl:next-iteration
- XML Well-formedness: entity references within XPath string-literals were not checked
- XML namespace prefixes for variable names were not checked, for example,
err
in$err:code
- Auto-completion data for mode names included 'stale' data from previous edits
August 9 2020
- Improved XPath Diagnostics
- Show error when an XSLT attribute expecting XPathExpr is empty
- Improved error reporting for missing operators in XPathEXPr
- For code-folding, added support for
region
andendregion
processing instructions
- Two-word XPath operators like 'instance of' were reported as errors
August 6 2020
- Resolves XSLT package names in
xsl:use-package
instructions - More extensive XPath syntax checking
- Improved auto-completion
- In some cases, there were duplicates in the auto-complete items list
July 22 2020
- More extensive built-in checking of XPath syntax within XSLT
- User settings can enable/disable XSLT tasks
- The XSLT TaskProviders
resolveTask
function is now implemented - to co-exist with other TaskProviders - Trigger auto-complete for xmlns declaration
- Incorrect tokenising of function names with 'Q' character
- Error was not reported for user-defined function name with no prefix
- Some valid operator tokens at end of XPaths were reported as errors
- Task providers did not handle trailing
,
inside tasks.json - Auto-completion item for xsl:param inside xsl:function incorrectly included a
select
attribute
July 12 2020
- Saxon-JS Integration for Visual Studio Code (Stable)
- New options for Saxon (Java) XSLT Tasks - Issue #17
- Auto-completion added for XSLT literal-result elements/attributes
- Auto-completion for generic XML elements/attributes
- Auto-completion for XSLT elements with start/end tags now inserts cursor in new empty line between tags
- Added checks for token preceding an XPath string-literal, if any, is valid
- Added check for incomplete XPath string-literal at end of expression
- Added support for DeltaXML's Document Comparator Pipeline (DCP) format
- XPath variable declarations following string-literals in let-expressions were not checked/resolved
- In XPath,
/
*
and.
chars following a,
char were marked as errors - In XPath
?*
lookup operation was not tokenised properly - affected auto-completion/error reporting - In XPath
$element/@xml:*
thexml
prefix was marked as an error - An XSLT non self-closed global variable declaration would be incorrectly marked as unused - when not followed by a self-closed element
- Attempted to load file even when XSLT import/include hrefs referenced a directory
June 28 2020
- XSLT Transforms can now be configured for and run by Saxon-JS 2.0 in Node.
- An uppercase 'Q' character in a variable name showed incorrect syntax highlight color and diagnostic error - was caused by a tokenisation issue.
- Undeclared namespace prefixes in node-name tests and attribute-name tests in XPath expressions were not being marked as invalid.
- Pasting content after the first non-whitespace char on a line caused that line to be indented incorrectly
- In XPath, the expression '?*' marked as the only part of the expression or at the end of an expression was marked as invalid.
- Auto-completion: xmlns declaration for XPath map namespace was assigning the 'array' prefix.
- Self-closing a start tag with no attributes did not cause the orphaned end tag to be deleted.
- XSLT Tasks: Specified parameters in task were duplicated in the command-line
- XSLT Tasks: Specified parameters were not properly enclosed in " (quote) characters.
- Diagnostic error was incorrectly shown for an XPath ending with
, .
or, *
or, /
June 26 2020
- Converting a start-tag (with a corresponding end-tag) to a self-closing tag by adding a '/' char results in the element contents up to and including the end tag being deleted. To keep the XML well-formed.
- 'As-you-type' formatting was erratic within XPath expressions when adding a new-line. This issue has not been fixed.
June 21 2020
First release to Visual Studio Code Marketplace