Skip to content

Releases: rhdunn/xquery-intellij-plugin

1.6.2

04 May 19:41
1.6.2
Compare
Choose a tag to compare

MarkLogic Rewriter XML Integration:

  1. Use the regular expression language for matches attributes.
  2. Add code completion for match-accept, match-content-type,
    match-execute-privilege, match-header, and match-method elements.
  3. Support resolving dispatch, set-error-handler, and set-path
    elements to the XQuery/MJS/SJS file they reference.
  4. Add a line marker to XQuery files referenced in a rewriter file.

Run Configurations:

  1. Support stopping Saxon queries.
  2. Fix running/profiling update queries on MarkLogic 10.
  3. Fix using BaseX in a language other than English.

1.6.1

09 Apr 19:12
1.6.1
Compare
Choose a tag to compare
  1. Saxon 10.0 syntax extension support.
  2. Improved the query result output when running/profiling queries.
  3. Fixed displaying the active structure item in the nav bar when the element under the cursor is an XPath element. This is a workaround for IDEA-232100.
  4. Report an error when a closing XML tag does not contain a QName, e.g. <a>error</>.

Run Configurations:

  1. Syntax highlight results in the run query output according to the mimetype of the result if the results all have the same mimetype.
  2. Support reformatting the run query output if enabled in the run configuration settings.
  3. Fix profiling Saxon 10 queries.

Saxon Syntax Extensions:

  1. Support for Saxon 9.8 ~type type aliases.
  2. Support for Saxon 10.0 wildcards in element and attribute-based kind tests.
  3. Support for Saxon 10.0 .{ ... } style context item inline function expressions.
  4. Support for Saxon 10.0 _{ ... } style lambda inline function expressions.
  5. Support for Saxon 10.0 otherwise expressions.
  6. Support for Saxon 10.0 using as for specifying the tuple field type in a tuple sequence type.
  7. Support for Saxon 10.0 StringLiteral tuple field names.
  8. Support for Saxon 10.0 type(T) type aliases.
  9. Support for Saxon 10.0 for member expressions.

1.6

21 Mar 20:55
1.6
Compare
Choose a tag to compare
1.6

References and Resolving:

  1. Support BracedURILiteral references (Q{...}).
  2. Support navigating to Java classes specified by java: and unprefixed
    classpath URIs (BaseX, eXist-db, Saxon).
  3. Fix resolving URIQualifiedName functions and variables.
  4. Add definitions for the MarkLogic 10.0-3 built-in functions.

Semantic Highlighting:

  1. Fixed QName prefix semantic highlighting and keyword in QName highlighting
    removal when the QName contains a space.
  2. Display the correct type name in the find usages UI for EQNames that are
    annotations, attributes, decimal formats, elements, functions, namespaces,
    options, parameters, pragmas, types, and variables in XQuery and XPath.
  3. Semantic highlighting of usage types for annotations, attributes, decimal
    formats, elements, functions, namespace declarations, options, parameters,
    pragmas, types, and variables in XQuery and XPath.
  4. Make XSLT elements use the template language colour style by default.

IntelliJ Integration:

  1. Rename refactoring support for variables and functions.
  2. Implement inlay parameter hints for XQuery function calls and named arrow
    function expressions.
  3. Support quick documentation (Ctrl+Q) for W3C XQuery functions.
  4. Support quick documentation (Ctrl+Q) for MarkLogic functions.
  5. Support displaying the XQuery file structure view in the navigation bar on
    IntelliJ 2020.1.
  6. Provide spellchecking support with bundled dictionaries for XPath, XQuery,
    and XSLT terms.
  7. Support context information (Alt+Q) for XQuery function declarations.
  8. Display the namespace signature and module path when holding Ctrl over a
    module namespace URI or prefix.

Run Configurations:

  1. Don't crash on the run configurations page if there are no query processors.
  2. Support using Saxon 10.

1.5.2

19 Nov 20:39
1.5.2
Compare
Choose a tag to compare

Code Completion:

  1. Don't crash when editing a StringLiteral inside an NodeType expression, e.g. using MarkLogic's
    object-node("...").

Run Configurations:

  1. Fix saving the selected query processor in the run configuration.
  2. Improve the error handling and reporting when connecting to BaseX servers.
  3. Improve responsiveness when populating the query processor list, especially
    for servers that are not responding.
  4. Don't use HTML formatting when displaying the Context column of the Flat Profile table.

Log Viewer:

  1. When selecting a BaseX processor, default to the last (most recent) log file.
  2. When selecting a MarkLogic processor, default to the ErrorLog.txt log file.

1.5.1

01 Aug 21:22
1.5.1
Compare
Choose a tag to compare

References, Resolving and Find Usages:

  1. Specify variable declarations and parameters as write access, including highlighting them in the editor.
  2. Fix an issue where some built-in functions and namespaces don't always resolve properly.

Code Completion:

  1. Don't crash when editing a StringLiteral inside an AxisStep expression, e.g. from a PITest.
  2. Don't list function completions in @...-style AbbrevForwardStep expressions.
  3. Don't display code completions when typing numeric literals.

IntelliJ Integration:

  1. Display the namespace signature when holding Ctrl over a QName prefix.
  2. Display the parameter information for a FunctionCall and named arrow expression function calls.
  3. Breadcrumbs support for XQuery functions, inline functions, and direct/computed element constructors.

XPath and XQuery:

  1. Support Saxon's fn{...} and tuple(...) syntax in XPath expressions.
  2. Report "Incomplete double exponent" errors for IntegerLiteral in addition to DecimalLiteral.
  3. Report an error when an NCName follows a number without whitespace.

1.5

18 Jul 18:31
1.5
Compare
Choose a tag to compare
1.5

References, Resolving and Find Usages:

  1. Fix resolving and finding usages of variables declared in imported modules.
  2. Fix find usages of locally declared and imported functions.
  3. Support the MarkLogic behaviour for resolving NCName-based FunctionDecls.
  4. Fix resolving to imported functions from declarations other than the one declaring the namespace.
  5. Provide better type names in the find usages pane.
  6. Display the EQName type signature in the find usages pane.

IntelliJ Integration:

  1. File structure support, listing the declared functions, variables, and types,
    and the query body in a file.
  2. Display the functions, variables, and types when "Show Members" is enabled
    in the project pane.
  3. Display the function signature when holding Ctrl over a function call.
  4. Display the variable signature when holding Ctrl over a variable reference.
  5. Use the QName annotator on Wildcard elements to correctly highlight the
    namespace prefix and local name parts.

Code Completion:

  1. In-scope variable completion support in VarRef expressions for XQuery.
  2. Statically-known function completion support in FunctionCall and ArrowExpr expressions for XQuery.
  3. XML Schema and union() type completion support in AtomicOrUnionType and SimpleTypeName for XPath and XQuery.
  4. Namespace prefix completion support in QNames for XPath and XQuery.
  5. Keyword completion support in ForwardAxis and ReverseAxis for XPath and XQuery.
  6. Keyword completion support in KindTest based NodeTests and ItemTypes for XPath and XQuery.
  7. Keyword completion support in SequenceTypes for XPath and XQuery.

Run Configurations:

  1. Link to the files when displaying query errors in the console.
  2. Support running XPath queries as XSLT patterns (XPath subset) on the Saxon
    query processor.
  3. Support profiling Saxon XSLT and XQuery scripts.
  4. Display the elapsed time and number of items returned by the query in the
    results console.
  5. Include the console output when profiling queries.

Query Processor Integration:

  1. Add a query log viewer for BaseX and MarkLogic log files.

Saxon:

  1. Fix using Saxon 9.2 to 9.8 JAR files.
  2. Disable Saxon EE optimizations to prevent the processor throwing a
    NoClassDefFoundError looking for com/saxonica/ee/bytecode/GeneratedCode.
  3. Support union(...) types in XPath expressions.
  4. Support union(...) types in SingleTypes for XPath and XQuery.

BaseX:

  1. Add definitions for the BaseX 9.2 built-in functions.
  2. Add support for the perm annotations introduced in BaseX 9.0.

MarkLogic:

  1. Add definitions for the MarkLogic 10.0-1 built-in functions.
  2. Fix MarkLogic 6.0 binary() used as a NodeTest.
  3. Support the MarkLogic 6.0 validate full syntax extension.
  4. Improve support for the MarkLogic 7.0 schema syntax extensions.

XPath and XSLT:

  1. Enable XPath syntax validation of expressions and patterns in XSLT when the
    XPath View + XSLT plugin is disabled.
  2. Full Text 1.0 and 3.0 extensions support in the XPath lexer and parser.

XPath and XQuery:

  1. Fix parsing decimal CharRefs with a single digit, e.g. "&#9;".
  2. Fix parsing a NameTest that is a named computed constructor keyword like
    element followed by a keyword that is part of a containing expression
    (e.g. return) and does not have an EnclosedExpr.
  3. Report an error when the EnclosedExpr is missing from named computed
    constructors.
  4. Report a parser error when a NumericLiteral is followed by an NCName or
    URIQualifiedName without whitespace or comment tokens, due to them being
    non-delimiting terminal symbols.
  5. Report an error if an unknown axis name is followed by the :: axis indicator.
  6. When recovering parser errors in a main module with a prolog, preserve the
    prolog context in the subsequent partial expressions.

Inspections:

  1. XPST0017: Enable the undefined function inspection by default.
  2. XQST0047: Don't generate an error on ModuleImports without a namespace prefix.

1.4.1

27 Mar 22:26
1.4.1
Compare
Choose a tag to compare

IntelliJ Integration:

  1. Support code folding for DirCommentConstructor elements (<!--...-->).

XPath and XQuery:

  1. Removed support for the plugin-specific annotated sequence type syntax.

Static Context:

  1. Fixed the builtin function definitions to be valid XQuery after the ItemType
    and SequenceType changes for annotated and union sequence types in 1.4.

Run Configurations:

  1. Fixed running queries on MarkLogic prior to 8.0-7 and 9.0-2.
  2. Persist the updating option in the run configuration settings.
  3. Display the name of the query being run instead of an empty string in stack traces.

1.4

24 Mar 18:43
1.4
Compare
Choose a tag to compare
1.4

IntelliJ Integration:

  1. Register the XSLT 3.0 schema with IntelliJ.
  2. Display the first comment line when the comment is folded.
  3. Support profiling MarkLogic queries.
  4. Support configuring the namespace prefix colour.

Bug Fixes:

  1. Fix an issue with run configuration settings not saving in IntelliJ 2018.3
    and later.
  2. Don't highlight xqDoc tags in non-xqDoc comments.
  3. Don't throw an IllegalCharsetNameException if the encoding string spans to
    the next line.

XPath and XQuery:

  1. Support the expath-ng variadic function arguments proposal.
  2. Fix parsing QNames in NameTests where the prefix is attribute,
    element, every, exit, namespace, processing-instruction,
    return, or some.
  3. Fix parsing NCNames in FunctionCalls and NameTests where the
    prefix is some, or every.
  4. Fix parsing ``[`{...}`...`]`` -- StringConstructorInterpolation
    at the start of a StringConstructor.

Static Context:

  1. Add support for the eXist-db built-in functions and static context. Thanks
    to Bridger Dyson-Smith for providing the built-in function definitions.
  2. Add the err and output namespaces to the BaseX static context.

Function Resolution:

  1. Correctly match functions with variadic function arguments.

Inspections:

  1. XPST0017: Fix the arity check for variadic functions.
  2. XPST0118: Don't crash on code like </<test/>.

1.3

10 Nov 15:49
1.3
Compare
Choose a tag to compare
1.3
  1. Added support for the eXist-db XQuery database.
  2. Initial support for running queries on the BaseX, eXist-db, MarkLogic and
    Saxon XQuery processors.
  3. Support for Saxon 9.9 and BaseX 9.1 syntax extensions (see below).
  4. Support for the BaseX and Saxon built-in functions. Thanks to Bridger
    Dyson-Smith for adding these.
  5. Improved resolving imported modules, names, and functions (see below).

Saxon Vendor Extensions:

  1. Recognise Saxon UnionType constructs in TypedMapTest sequence types.
  2. Support TupleType constructs with names only, not associated sequence types.
  3. Support Saxon 9.8 simple inline function expressions.
  4. Support Saxon 9.9 orElse and andAlso logical expressions.
  5. Support Saxon 9.9 optional field names for tuples, and extensible tuples.
  6. Support NCName and URIQualifiedName types in the union() syntax.

BaseX Vendor Extensions:

  1. Support the BaseX 9.1 TernaryIfExpr conditional expressions.
  2. Support the BaseX 9.1 ElvisExpr conditional expressions.
  3. Support the BaseX 9.1 if expressions without else branches.

XQuery Working Draft 02 May 2003 and MarkLogic 0.9-ml Support:

  1. Support empty() syntax for empty-sequence().

Invalid Syntax Recovery:

  1. Recover parsing when the CompElemConstructor, CompAttrConstructor,
    CompPIConstructor, or CompNamespaceConstructor tag name is a StringLiteral.
  2. Recover parsing when a SequenceType is used in a ParenthesizedItemType.

Static Context:

  1. Add the sql namespace to the MarkLogic static context, added in MarkLogic 7.0.
  2. Add support for the BaseX built-in functions and static context. Thanks to
    Bridger Dyson-Smith for providing the built-in function definitions.
  3. Add support for the Saxon built-in functions and static context. Thanks to
    Bridger Dyson-Smith for providing the built-in function definitions.
  4. Add support for EXPath and EXQuery module functions used by BaseX and Saxon
    as built-in functions and importable modules.

Module Import Resolution:

  1. Use project source roots to resolve module import URIs.
  2. Locate built-in definitions from http://-based URILiteral nodes.
  3. Resolve all location URIs in a ModuleImport, not just the first valid location.
  4. Resolve ModuleImport declarations that don't specify at paths.

EQName Resolution:

  1. Expand NCName-based EQName nodes, using the default element or function
    namespaces where appropriate.
  2. Resolve EQNames bound to NamespaceDecl declarations.
  3. Resolve EQNames bound to DefaultNamespaceDecl declarations.
  4. Resolve EQNames bound to DirAttributeList attributes.

Function Resolution:

  1. Matching statically-known functions against expanded QNames.
  2. Search the MainModule/LibraryModule prolog for function declarations.

Inspections:

  1. IJVS0001: Report warnings for constructs that require a different XQuery version.

1.2

27 Aug 17:54
1.2
Compare
Choose a tag to compare
1.2

Language Support:

  1. Support BaseX 8.4 non-deterministic function calls.
  2. Support mixing arrow and transform with expressions, allowed in BaseX.
  3. Improved performance by not creating PSI (AST) nodes for EBNF symbols that
    are just forwarding to a sub-expression.

Bug Fixes:

  1. TransformWithExpr containing an empty expression body should not report
    a parser error as it is allowed by the Update Facility 3.0 specification.
  2. Parse UpdateExpr correctly, according to how it is handled in BaseX.
  3. Don't crash when computing folding for a partial direct element node inside
    an outer direct element node.