Adds xml-langauge-features extension back (#24271)

This commit is contained in:
Lewis Sanchez
2023-09-01 16:19:04 -07:00
committed by GitHub
parent 2d3b4a55e2
commit d2668d8eb8
9 changed files with 111 additions and 0 deletions

View File

@@ -56,6 +56,7 @@ const dirs = [
'extensions/sql-database-projects', 'extensions/sql-database-projects',
'extensions/sql-migration', 'extensions/sql-migration',
'extensions/vscode-test-resolver', 'extensions/vscode-test-resolver',
'extensions/xml-language-features',
// {{SQL CARBON EDIT}} - End // {{SQL CARBON EDIT}} - End
'remote', 'remote',
'remote/web', 'remote/web',

View File

@@ -0,0 +1,6 @@
{
"rules": {
"@typescript-eslint/explicit-function-return-type": ["off"],
"@typescript-eslint/await-thenable": ["off"]
}
}

View File

@@ -0,0 +1,11 @@
test/**
src/**
tsconfig.json
out/test/**
out/**
extension.webpack.config.js
cgmanifest.json
yarn.lock
preview-src/**
webpack.config.js
.vscode

View File

@@ -0,0 +1,20 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
//@ts-check
'use strict';
const withDefaults = require('../shared.webpack.config');
module.exports = withDefaults({
context: __dirname,
resolve: {
mainFields: ['module', 'main']
},
entry: {
extension: './src/extension.ts',
}
});

View File

@@ -0,0 +1,28 @@
{
"name": "xml-language-features",
"displayName": "%displayName%",
"description": "%description%",
"version": "1.0.0",
"publisher": "Microsoft",
"engines": {
"vscode": "^1.20.0"
},
"main": "./out/extension",
"categories": [
"Programming Languages"
],
"activationEvents": [
"onLanguage:sql",
"onLanguage:xml"
],
"scripts": {
"compile": "gulp compile-extension:markdown-language-features && npm run build-preview",
"watch": "npm run build-preview && gulp watch-extension:markdown-language-features",
"vscode:prepublish": "npm run build-ext && npm run build-preview",
"build-ext": "node ../../node_modules/gulp/bin/gulp.js --gulpfile ../../build/gulpfile.extensions.js compile-extension:markdown-language-features ./tsconfig.json",
"build-preview": "webpack --mode development"
},
"dependencies": {
"tsxml": "^0.1.0"
}
}

View File

@@ -0,0 +1,4 @@
{
"displayName": "XML Language Features",
"description": "Provides rich language support for XML."
}

View File

@@ -0,0 +1,18 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import * as vscode from 'vscode';
import * as xml from 'tsxml';
export function activate(context: vscode.ExtensionContext) {
context.subscriptions.push(vscode.languages.registerDocumentFormattingEditProvider({ language: 'xml' }, {
provideDocumentFormattingEdits: document => format(document)
}));
}
function format(document: vscode.TextDocument): vscode.ProviderResult<vscode.TextEdit[]> {
const range = new vscode.Range(0, 0, document.lineCount, document.lineAt(document.lineCount - 1).range.end.character);
return xml.Compiler.formatXmlString(document.getText()).then(formatted => [new vscode.TextEdit(range, formatted)], () => [new vscode.TextEdit(range, document.getText())]);
}

View File

@@ -0,0 +1,15 @@
{
"extends": "../tsconfig.base.json",
"compilerOptions": {
"outDir": "./out",
"experimentalDecorators": true,
"typeRoots": [
"./node_modules/@types"
]
},
"include": [
"src/**/*",
"../../src/vscode-dts/vscode.d.ts",
"../../src/vscode-dts/vscode.proposed.notebookWorkspaceEdit.d.ts"
]
}

View File

@@ -0,0 +1,8 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
tsxml@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/tsxml/-/tsxml-0.1.0.tgz#d73f14a0d844af51edc0b98bdb52634a41b9b0d4"
integrity sha1-1z8UoNhEr1HtwLmL21JjSkG5sNQ=