This VS Code extension provides support for creating and editing XML documents, based on the LSP4XML Language Server, running with Java.
Syntax error reporting
General code completion
Automatic node indentation
Document symbols and outline
XSD based hover
XSD based code completion
See the changelog for the latest release. You might also find useful information in the project Wiki.
Java JDK (or JRE) 8 or more recent
Ensure Java path is set in either:
xml.java.home in VSCode preferences
java.home in VSCode preferences
Environment variable JAVA_HOME or JDK_HOME
Note: The path should end at the parent folder that contains the bin folder. Example Path: /usr/lib/jvm/java-1.8.0 if bin exists at /usr/lib/jvm/java-1.8.0/bin.
Note: If the path is not set, the extension will attempt to find the path to the JDK or JRE.
Supported VS Code settings
The following settings are supported:
xml.trace.server : Trace the communication between VS Code and the XML Language Server in the Output view.
xml.catalogs : Register XML catalog files.
xml.logs.client : Enable/disable logging to the Output view.
xml.fileAssociations : Associate XML Schemas to XML file patterns.
xml.format.splitAttributes : Set to true to split node attributes onto multiple lines during formatting. Defaults to false.
xml.format.joinCDATALines : Set to true to join lines in CDATA content during formatting. Defaults to false.
xml.format.joinContentLines : Set to true to join lines in node content during formatting. Defaults to false.
xml.format.joinCommentLines : Set to true to join lines in comments during formatting. Defaults to false.
xml.format.preservedNewLines: Set the maximum amount of newlines between elements. Defaults to 2.
xml.format.preserveEmptyContent: Set to true to preserve standalone whitespace content in an element. Defaults to false.
xml.format.spaceBeforeEmptyCloseTag: Set to true to insert space before the end of a self closing tag. Defaults to true.
xml.format.quotations: Set to doubleQuotes to format and only use ", or singleQuotes to format and only use '. Defaults to doubleQuotes.
xml.format.enabled : Enable/disable formatting.
xml.autoCloseTags.enabled : Enable/disable automatic tag closing. Note 'editor.autoClosingBrackets' must be turned off to work.
xml.java.home: Set the Java path required to run the XML Language Server. If not set, falls back to either the java.home preference or the JAVA_HOME or JDK_HOME environment variables.
xml.server.vmargs: Extra VM arguments used to launch the XML Language Server. Requires VS Code restart.
xml.symbols.enabled: Enable/disable document symbols (Outline). Default is true.
xml.validation.enabled: Set to false to disable all validation. Defaults to true.
xml.validation.schema: Set to false to disable schema validation. Defaults to true.
xml.validation.noGrammar: The message severity when a document has no associated grammar. Defaults to hint.
xml.server.workDir: Set an absolute path for all cached schemas to be stored. Defaults to ~/.lsp4xml.
xml.codeLens.enabled: Enable/disable XML CodeLens. Default is false.
xml.symbols.excluded: Disable document symbols (Outline) for the given file name patterns. Updating file name patterns does not automatically reload the Outline view for the relevant file(s). Each file must either be reopened or changed, in order to trigger an Outline view reload.
xml.validation.disallowDocTypeDecl: Enable/disable if a fatal error is thrown if the incoming document contains a DOCTYPE declaration. Default is false.
xml.validation.resolveExternalEntities: Enable/disable resolve of external entities. Default is false.
This is an open source project open to anyone. Contributions are extremely welcome!