Compatible with: IntelliJ IDEA PhpStorm WebStorm PyCharm RubyMine AppCode CLion GoLand DataGrip Rider Android Studio
Nov 30, 2017
2 553
XQuery 1.0, 3.0, and 3.1 language support with error recovery and support for: Full Text 1.0, and 3.0; Update Facility 1.0, and 3.0; Scripting Extension 1.0. Supports the BaseX, MarkLogic 6.0 to 8.0, and Saxonica XQuery vendor extensions.

Download plugin

Recent change notes

Release 1.0:

Language Support:

  1. Full Text 1.0 and 3.0 support.
  2. MarkLogic 7.0 and 8.0 schema-components KindType tests.
  3. Saxon 9.8 tuple and union types, and declare type prolog statements.
  4. BaseX Full Text fuzzy option.
  5. Recover when = is used instead of :=.
  6. Improved multi-statement expression parsing and error reporting for MarkLogic 6.0, and W3C Scripting XQuery extensions.

Bug Fixes:

  1. Fix tokenizing `{...}` expressions outside XQuery 3.1 string interpolation contexts.
  2. Report a parser error when a TypedFunctionTest does not have a return type clause.
  3. Report a parse error when an unpaired } is used in direct element contents.
  4. Fix parsing pragmas with EQNames, and optional pragma contents.
  5. Fix resolving functions referenced in the current library module.
  6. Fix support for ProcessCanceledException thrown when creating PSI nodes.


  1. XPST0003: Final statement semicolon inspection for MarkLogic and Scripting Extension syntax differences.
  2. XPST0003: Reserved function inspection. This is split out from the unsupported construct inspection.
  3. XPST0003: Saxon/XQuery map key-value separators. This is split out from the unsupported construct inspection.
  4. XPST0017: Undefined function inspection. This is experimental, as it currently reports many false positives.
  5. XQST0031: Extend the inspection to check unsupported XQuery versions in different MarkLogic transactions, and check for XDMP-XQUERYVERSIONSWITCH errors.
  6. XQST0033: Duplicate namespace prefix.
  7. XPST0081: Unbound QName prefix.

IntelliJ Integration:

  1. Moved the MarkLogic run configuration to a separate plugin.