XQuery IntelliJ Plugin 1.5

18 Jul 2019

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