Skip to content

Release Notes

Phil Fearon edited this page Nov 5, 2023 · 250 revisions

Release 1.5.15

5 November 2023

Bug fixes

  • XPath editor auto-complete: typing @ to trigger suggestion-list for attributes caused @@ to be entered on accepting the suggestion

Improvements

  • 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

Release 1.5.14

3 August 2023

Improvements

  • xsl:message auto-complete: serialize($var, map{'method':'adaptive'}) added to suggestion list

Release 1.5.13

11 June 2023

Bug fixes

  • Issue #124 Lexer: fix specific minor cases where problems were not reported

Release 1.5.12

5 June 2023

Improvements

  • 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

Bug fixes

  • xsl:import/xsl:include href starting with file:/ as in file:/path/to/file was not resolved to a correct file path - now fixed

Release 1.5.11

21 March 2023

Bug fixes

  • Linter: spurious 'missing {' error reported for $a as function(*)

Release 1.5.10

Routine Maintenance

  • Updated NPM dependencies

11 March 2023

Improvements

  • xpath-result-serializer.xsl library
    • the ext:print() function now always shows the serialized element start-tag if the element path starts with root()

Bug fixes

  • Linter:
    • spurious 'missing context' problem reported for node-name test following map lookup operator e.g. `$map?x[@class]

Release 1.5.9

5 March 2023

Improvements

  • SaxonJS Tasks:
    • Added relocate property corresponding to SaxonJS command-line arg -relocate:[on|off]
    • Added timing property corresponding to SaxonJS command-line arg -t
  • Linter:
    • Added basic syntax checking for anonymous function: function($a) {$a + 1}

Bug fixes

  • 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}

Release 1.5.8

24 February 2023

Improvements

  • Support unprefixedElementNames property for SaxonJS Tasks

Bug fixes

  • Issue #120 Problem was reported for empty name attribute of xsl:namespace instruction - now fixed.

Release 1.5.7

23 February 2023

Improvements

  • Linter enhanced to report problem with trailing / char. E.g. (/books/)

Bug fixes

  • Linter did not report 'missing context' problems inside every, for and some 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

Release 1.5.6

16 February 2023

Improvements

  • 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

Bug fixes

  • 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 an xsl:param with no select attribute
    • Auto-completion for XPath starting with $variable sometimes only listed the root element

Release 1.5.5

13 February 2023

Improvements

  • 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

Release 1.5.4

7 February 2023

Improvements

  • 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"

Release 1.5.3

3 February 2023

Improvements

  • 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'

Bug fixes

  • #119: xsl:strip-space - problem wrongly reported for leading/trailing whitespace in elements attribute

Release 1.5.2

31 January 2023

Improvements

  • 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 and xmlns:ext="... code

Release 1.5.1

19 January 2023

Improvements

  • XSLT 4.0:
    • Added htmlParserJar User Setting for path of nu.validator.jar or htmlparser.jar
    • A warning is now set on parse-html function if the htmlParserJar property is not set in User Settings
    • Support for the slice() XPath function has been removed as the specification for this is changing
  • Refactoring
    • 'Extract xsl:variable' support added to existing 'Extract xsl:template' and 'Extract xsl:function' support

Bug fixes

  • 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

Release 1.5.0

16 January 2023

Improvements

  • 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

Bugfixes

  • XPath 4.0 unwanted error because '->' operator did not supply context to function definition within {}

Release 1.4.3

12 January 2023

Bugfixes

  • 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

Release 1.4.2

11 January 2023

Improvements

  • Improved clarity of file pick list
  • More details in documentation on how to use new pickfile commands

Bugfixes

  • Recently used list was not cleared properly in workspacestate

Release 1.4.1

10 January 2023

Features

  • 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
  • An information message is now shown when an XSLT task completes

User 'QuickPick' shown when task invoked referencing ${command:xslt-xpath.pickXsltFile}:

xslt-tasks-file

Release 1.4.0

2 January 2023

Features

  • 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 to xsl:sequence if it is the last instruction within the new function
      • Adjusts code formatting for the new function
      • Adds appropriate expand-text attribute to the xsl:function instruction
      • Triggers the Rename Symbol action for the newly created function name
  • 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:*

Bugfixes

  • '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 like child::text() was not validated - now fixed
  • Syntax-highlighter: the name attribute of xsl:merge-source was treated as an Attribute Value Template

Release 1.3.8

21 November 2022

Bugfixes

  • XPath linter: the '+' occurrence indicator in item()+ and element('div')+ was not given the correct token type - causing the linter to falsely report an error

Release 1.3.7

17 October 2022

Bugfixes

  • 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

Release 1.3.6

9 October 2022

Features

  • 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 '<'

Bugfixes

  • Problem was reported for '/' step operator following an attribute-name test e.g. @attr/string() - now fixed

Release 1.3.5

25 September 2022

Bugfixes

  • Fixed 'Goto Definition' for mode symbol of xsl:template, xsl:apply-templates and xsl:mode instructions
  • Fixed 'Goto References' for mode symbol of xsl:template, xsl:apply-templates and xsl:mode instructions
  • Fixed 'Rename Symbol' for mode symbol of xsl:template, xsl:apply-templates and xsl:mode instructions

Release 1.3.4

13 September 2022

Bugfixes

  • Regression: '\' step operator reported as invalid if it follows a variable: e.g. $a/books - now fixed

Release 1.3.3

12 September 2022

Bugfixes

  • Regression: '?' lookup operator reported as invalid if it follows a map-lookup: e.g. $a?top?title - now fixed

Release 1.3.2

11 September 2022

Bugfixes

  • Sticky-Scroll: xsl:variable did not stick while xsl: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 of xsl: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

Features

  • Linter now checks that token following a => arrow operator is valid
  • Linter now checks that token preceding a ? map lookup operator is valid

Release 1.3.1

29 August 2022

Bugfixes

  • Issue #103 validation for elements in xsl:preserve-space and xsl: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

Release 1.3.0

9 August 2022

Bug Fixes

  • Issue #102: 'Goto Definition' command failed from a multi-line function call. Now fixed.

Release 1.2.9

12 June 2022

Bug Fixes

  • 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

Release 1.2.8

2 June 2022

Features

  • Document Comparator Pipeline (DCP) support extended for new CALS table processing features added in XML Compare 12.0

Bug Fixes

  • '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

Release 1.2.7

22 May 2022

Features (improved linter)

  • 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

Release 1.2.6

16 May 2022

Bug Fixes

  • 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

Release 1.2.5

5 May 2022

Features

  • Improved auto-complete snippets for xsl:try / xsl:catch blocks

Bug fixes

  • Text for mouse-hover assistance on XSLT functions had missing space characters following as for return types

Release 1.2.4

30 April 2022

Bug fixes

  • A spurious 'variable not defined' error was reported when an IfExpr was nested within a LetExpr - now fixed

Release 1.2.3

9 April 2022

Bug fixes

  • XPath 4.0 expressions of the form: for $member in $var... were not supported by the DiagnosticsProvider - now fixed

Release 1.2.2

12 March 2022

Bug fixes

  • fn:count and fn:code-points-to-string functions (using prefixes) were erroneously marked with an arity error - now fixed
  • linter marked &lt;= and &gt;= as errors - now fixed
  • Regression in last release cause 'expand-text' attribute on root element to be ignored - now fixed

Release 1.2.1

6 March 2022

Features

  • Improved auto-complete for XSLT 4.0 xsl:switch instructions

Bug fixes

  • xsl:if instruction in XSLT 4.0 did not support 'then' and 'else' attributes - now fixed

Release 1.2.0

2 March 2022

Features

  • 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)

Release 1.1.1

19 February 2022

Bug Fixes

  • Rename Symbol and Find All References features did not support xsl:with-param declarations inside xsl:next-iteration
  • Rename Symbol and Find All References features did not support xsl:with-param declarations inside xsl:call-template

Release 1.1.0

17 February 2022

Features

  • 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

Release 1.0.2

1 February 2022

Bug Fixes

  • 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

Release 1.0.1

29 January 2022

Bug Fixes

  • Erroneous problem was reported for map(*) and array(*) used for type testing, because these were tokenized as functions - now fixed
  • Auto-completion for <xsl:text> was a self-closing tag - now fixed

Features

  • 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

Release 1.0.0

15 January 2022

Version number set to 1.0.0 to re-baseline this release after 2 years development and 16K+ installs

Bug Fixes

  • Error occurred when initialTemplate in tasks.json was set to an empty-string. Now fixed

Features

  • XSLT-JS Tasks: To export XSLT files to SEF without execution, a new (optional) 'execute' property can be set 'false'

Code Tidying

  • Early preparation for web extension for taskproviders: avoid 'rootpath' and use of NodeJS path api

Release 0.3.17

20 December 2021

Bug Fixes

Release 0.3.16

28 November 2021

Bug Fixes

  • 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 an ifExpr
  • For compound expressions like forExpr, no problem was reported when a , (comma) operator was found when an expression was expected

Release 0.3.15

2 November 2021

Features

  • 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

Release 0.3.14

27 October 2021

Features

  • Special syntax-highlighting for map-keys inside map-constructors that are strings
  • Improved problem-reporting for problems inside map-constructors

Bug Fixes

  • Problem was reported spuriously for * occurrence indicator when declaring an arg for an anonymous function - e.g. $a as node()*

Release 0.3.13

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.

Release 0.3.12

2 October 2021

Features

  • Improved semantic token configuration to work better with 'Kary Pro' color them

Bug Fixes

  • 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

Release 0.3.11

12 September 2021

Features

  • XPath location auto-completion can now use context from XPath Notebook variables

Bug Fixes

  • issue #86 the ? lookup operator was erroneously marked as an error at the start of a predicate

Release 0.3.10

6 September 2021

Patch for regression bug

  • previous release caused XSLT function lookup to fail due to arity error - now fixed

Release 0.3.9

6 September 2021

Bug Fixes

  • Auto-completion for XPath location node-name test following .. step operator failed - now fixed
  • Auto-completion for XPath location * wildcard and node() following .. step operator failed - now fixed

Release 0.3.8

5 September 2021

Features

  • 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

Release 0.3.7

3 September 2021

Features

  • 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

Bug Fixes

  • 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.

Release 0.3.6

10 August 2021

Features

  • 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

Bug Fixes

  • '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'

Release 0.3.5

28 July 2021

Features

  • New xslt-xpath.selectXPathInDocument: Opens file with uri arg and selects XML node indicated by the xpath arg

Bug Fixes

  • Goto XPath command, selected the node but did not scroll to the selection. This has now been fixed.

Release 0.3.4

24 July 2021

Features

  • 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)

Bug Fixes

Release 0.3.3

9 July 2021

Bug Fixes

  • 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

Features

  • New root-element auto-completion snippet for xsl:package
  • Auto-completion snippet for xsl:copy no longer includes the select attribute (not commonly used)

Release 0.3.2

17 June 201

Bug Fixes

  • 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

Release 0.3.1

11 June 2021

Bug Fixes

  • issue #73 Spurious 'Invalid Name' problem reported in XPath for @*:data

Features

  • 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 missing xsl:import. Prevents spurious 'not defined' warnings, improves auto-completion etc.

Release 0.3.0

June 4 2021

Bug Fixes

  • 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

Features

Release 0.2.9

May 16 2021

Bug Fixes

  • issue #63: spurious errors reported for map {$id: $name} - caused by tokenizer problem with $id:
  • issue #64: name attribute for non self-closed xsl:with-param element with tunnel="yes" attribute was marked as invalid
  • issue #65: when running xslt-js tasks on Windows the terminal process exits with error code 193

Feature Changes

  • The xslt-js task now uses npx for running the xslt3 package and thus no longer needs/uses the path specified at nodeModulesFolder

Release 0.2.8

May 15 2021

Bug Fixes

  • 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 for xsl:call-template no longer checked if there's a tunnel attribute
  • issue #58: xsl:break instruction not entered properly in schema - spuriously reported invalid select attribute
  • issue #59: * token following a ] was not converted to op:numeric-multiply token - causing a spurious validation error for the following operand - now fixed
  • issue #60: spurious 'invalid entity name' warning for &#9;
  • 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.

Features

  • Basic XML syntax checking for BPMN files
  • Syntax highlighting for BPMN files - uses Semantic highlighting
  • XML formatting for BPMN files

Release 0.2.7

May 1 2021

Bug Fixes

  • 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

Features

  • function signature and description shown on hover for built-in functions in XPath or XSLT

Release 0.2.6

March 20 2021

Bug Fixes

  • 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'

Features

  • XSLT Tasks: Saxon-JS 2.1 -json command-line arg is now supported via the useJsonSource 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

Release 0.2.5

March 10 2021

Features

(bug fixes only)

Bug Fixes

  • 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.

Release 0.2.4

March 6 2021

Features

(bug fixes only)

Bug Fixes

  • 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.

Release 0.2.3

February 25 2021

Features

(bug fixes only)

Bug Fixes

  • 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.

Release 0.2.2

February 24 2021

Features

  • 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

Bug Fixes

  • For Windows OS, the 'follow-link' feature for xsl:import did not work - this has now been fixed

Release 0.2.1

February 10 2021

Features

  • 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

Bug Fixes

  • Issue #37: String literal error was reported for &quot;text&quot;
  • for/let expressions were not checked for in/:= operators

Release 0.2.0

January 23 2021

Features

  • 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

Release 0.1.9

January 4 2021

Bug Fixes

  • Issue #27: Token error was reported when XML file was empty
  • Auto-completion items: within xsl:iterate instruction, the xsl:next-iteration instruction is now shown
  • Auto-completion items: only xsl:param names for xsl:iterate now shown within name value of xsl:with-param inside a xsl:next-iteration
  • On accepting the xsl:next-iteration auto-completion item, the snippet inserted now includes an xsl: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

Features

  • Problem reporting for invalid XSLT instruction names - given the parent instruction
  • Problem reporting for invalid XSLT attribute names on XSLT elements

Release 0.1.8

August 27 2020

Bug Fixes

  • 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

Release 0.1.7

August 23 2020

Features

  • 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

Bug Fixes

  • 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

Release 0.1.6

August 9 2020

Features

  • 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 and endregion processing instructions

Bug Fixes

  • Two-word XPath operators like 'instance of' were reported as errors

Release 0.1.5

August 6 2020

Features

  • Resolves XSLT package names in xsl:use-package instructions
  • More extensive XPath syntax checking
  • Improved auto-completion

Bug Fixes

  • In some cases, there were duplicates in the auto-complete items list

Release 0.1.4

July 22 2020

Features

  • 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

Bug Fixes

  • 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

Release 0.1.3

July 12 2020

Features

  • 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

Bug Fixes

  • 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:* the xml 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

Release 0.1.2

June 28 2020

Features

  • XSLT Transforms can now be configured for and run by Saxon-JS 2.0 in Node.

Bug Fixes

  • 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 , /

Release 0.1.1

June 26 2020

Features

  • 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.

Bug Fixes

  • 'As-you-type' formatting was erratic within XPath expressions when adding a new-line. This issue has not been fixed.

Release 0.1.0

June 21 2020

First release to Visual Studio Code Marketplace

Clone this wiki locally