This commit is contained in:
Jonathan Carter 2018-04-21 17:43:10 +00:00 committed by GitHub
commit 73242ee659
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 10 deletions

View file

@ -8,9 +8,16 @@ import { XmlTreeViewDataProvider } from "./providers/XmlTreeView";
export var GlobalState: vsc.Memento;
export var WorkspaceState: vsc.Memento;
const LANG_XML: string = "xml";
const LANG_XSL: string = "xsl";
const LANG_XQUERY: string = "xquery;"
function createSelector(language: string): vsc.DocumentFilter[] {
return [
{ language, scheme: "file" },
{ language, scheme: "untitled" },
];
}
const SELECTOR_XML_XSL: vsc.DocumentSelector = [...createSelector("xml"), ...createSelector("xsl")];
const SELECTOR_XQUERY: vsc.DocumentSelector = createSelector("xquery");
const MEM_QUERY_HISTORY: string = "xpathQueryHistory";
export function activate(ctx: vsc.ExtensionContext) {
@ -29,10 +36,10 @@ export function activate(ctx: vsc.ExtensionContext) {
// register language feature providers
ctx.subscriptions.push(
vsc.languages.registerDocumentFormattingEditProvider([LANG_XML, LANG_XSL], new XmlFormattingEditProvider()),
vsc.languages.registerDocumentRangeFormattingEditProvider([LANG_XML, LANG_XSL], new XmlFormattingEditProvider()),
vsc.languages.registerDocumentFormattingEditProvider(SELECTOR_XML_XSL, new XmlFormattingEditProvider()),
vsc.languages.registerDocumentRangeFormattingEditProvider(SELECTOR_XML_XSL, new XmlFormattingEditProvider()),
vsc.languages.registerCompletionItemProvider(LANG_XQUERY, new XQueryCompletionItemProvider(), ":", "$")
vsc.languages.registerCompletionItemProvider(SELECTOR_XQUERY, new XQueryCompletionItemProvider(), ":", "$")
);
// listen to editor events (for linting)
@ -56,7 +63,7 @@ export function deactivate() {
}
function _handleContextChange(editor: vsc.TextEditor): void {
if (!editor || !editor.document) {
if (!editor || !editor.document || editor.document.uri.scheme !== "file") {
return;
}

View file

@ -23,7 +23,7 @@ export class XmlTreeViewDataProvider implements vsc.TreeDataProvider<Node> {
return vsc.window.activeTextEditor || null;
}
getChildren(element?: Node): Node[] {
getChildren(element?: Element): Node[] {
if (!this._xmlDocument) {
this._refreshTree();
}
@ -41,7 +41,7 @@ export class XmlTreeViewDataProvider implements vsc.TreeDataProvider<Node> {
}
}
getTreeItem(element: Node): vsc.TreeItem {
getTreeItem(element: Element): vsc.TreeItem {
let treeItem = new vsc.TreeItem(element.localName);
if (this._getChildAttributeArray(element).length > 0) {
@ -66,7 +66,7 @@ export class XmlTreeViewDataProvider implements vsc.TreeDataProvider<Node> {
return treeItem;
}
private _getChildAttributeArray(node: Node): Node[] {
private _getChildAttributeArray(node: Element): Node[] {
if (!node.attributes) {
return [];
}