Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
XQuery Development Tools/SSE
Contents
Introduction
Currently, XQDT uses the DLTK-based editor as the main editor. In order to leverage more of the existing functionality around XML editing existing in the WTP projects (e.g. XML, XML schema, etc.) it was decided to migrate the current DLTK-based editor to the SSE one.
This article describes the work to be done in this directions as well as the list of features expected from the SSE editor before a release featuring only the SSE editor.
SSE Editor Required Features
The features in this section MUST be available in a release with only the SSE editor.
XQuery Grammars
- Support for the whole palette of XQuery languages from W3C:
- Support for vendor extensions/grammars:
- XQuery Scripting Extension Proposal
- ... complete with others, if available
In order to support this number of grammar, the JFlex tokenizer must be automatically generated from an EBNF. The tokenizer should also be pluggable through an extension point (which is currently already the case).
Color Highlighting
The all the XQuery grammars must be correctly color-highlighted. For this some semantic highlighting is necessary.
Code Completion
The following code completion features must be available:
- keyword completion
- function completion
- built-in functions
- imported functions
- functions in the same XQuery module
- variable completion
- in-scope variables
- imported variables
- parametrized template proposals
Code Outline
- The model in the SSE Editor must provide the content for the Outline View and the Package Explorer/Navigator/Script Explorer
SSE Editor Optional Features
The features in this section are nice-to-have's in a release with only the SSE editor.
Code Completion
- context specific template proposals
- function template proposals for quick new-function adding
Code Formatting
- code formatting (and preferences for it)
- block code commenting