mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 10:58:30 -05:00
Add built-in language grammar extensions for C#, F#, HTML, and Javascript. (#18216)
This commit is contained in:
3
extensions/html/.vscodeignore
Normal file
3
extensions/html/.vscodeignore
Normal file
@@ -0,0 +1,3 @@
|
||||
build/**
|
||||
test/**
|
||||
cgmanifest.json
|
||||
44
extensions/html/build/update-grammar.js
Normal file
44
extensions/html/build/update-grammar.js
Normal file
@@ -0,0 +1,44 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* 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';
|
||||
|
||||
var updateGrammar = require('vscode-grammar-updater');
|
||||
|
||||
function patchGrammar(grammar) {
|
||||
let patchCount = 0;
|
||||
|
||||
let visit = function (rule, parent) {
|
||||
if (rule.name === 'source.js' || rule.name === 'source.css') {
|
||||
if (parent.parent && parent.parent.property === 'endCaptures') {
|
||||
rule.name = rule.name + '-ignored-vscode';
|
||||
patchCount++;
|
||||
}
|
||||
}
|
||||
for (let property in rule) {
|
||||
let value = rule[property];
|
||||
if (typeof value === 'object') {
|
||||
visit(value, { node: rule, property: property, parent: parent });
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
let repository = grammar.repository;
|
||||
for (let key in repository) {
|
||||
visit(repository[key], { node: repository, property: key, parent: undefined });
|
||||
}
|
||||
if (patchCount !== 6) {
|
||||
console.warn(`Expected to patch 6 occurrences of source.js & source.css: Was ${patchCount}`);
|
||||
}
|
||||
|
||||
|
||||
return grammar;
|
||||
}
|
||||
|
||||
const tsGrammarRepo = 'textmate/html.tmbundle';
|
||||
const grammarPath = 'Syntaxes/HTML.plist';
|
||||
updateGrammar.update(tsGrammarRepo, grammarPath, './syntaxes/html.tmLanguage.json', grammar => patchGrammar(grammar));
|
||||
|
||||
|
||||
32
extensions/html/cgmanifest.json
Normal file
32
extensions/html/cgmanifest.json
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"registrations": [
|
||||
{
|
||||
"component": {
|
||||
"type": "git",
|
||||
"git": {
|
||||
"name": "textmate/html.tmbundle",
|
||||
"repositoryUrl": "https://github.com/textmate/html.tmbundle",
|
||||
"commitHash": "0c3d5ee54de3a993f747f54186b73a4d2d3c44a2"
|
||||
}
|
||||
},
|
||||
"licenseDetail": [
|
||||
"Copyright (c) textmate-html.tmbundle project authors",
|
||||
"",
|
||||
"If not otherwise specified (see below), files in this repository fall under the following license:",
|
||||
"",
|
||||
"Permission to copy, use, modify, sell and distribute this",
|
||||
"software is granted. This software is provided \"as is\" without",
|
||||
"express or implied warranty, and with no claim as to its",
|
||||
"suitability for any purpose.",
|
||||
"",
|
||||
"An exception is made for files in readable text which contain their own license information,",
|
||||
"or files where an accompanying file exists (in the same directory) with a \"-license\" suffix added",
|
||||
"to the base-name name of the original file, and an extension of txt, html, or similar. For example",
|
||||
"\"tidy\" is accompanied by \"tidy-license.txt\"."
|
||||
],
|
||||
"license": "TextMate Bundle License",
|
||||
"version": "0.0.0"
|
||||
}
|
||||
],
|
||||
"version": 1
|
||||
}
|
||||
55
extensions/html/language-configuration.json
Normal file
55
extensions/html/language-configuration.json
Normal file
@@ -0,0 +1,55 @@
|
||||
{
|
||||
"comments": {
|
||||
"blockComment": [ "<!--", "-->" ]
|
||||
},
|
||||
"brackets": [
|
||||
["<!--", "-->"],
|
||||
["<", ">"],
|
||||
["{", "}"],
|
||||
["(", ")"]
|
||||
],
|
||||
"autoClosingPairs": [
|
||||
{ "open": "{", "close": "}"},
|
||||
{ "open": "[", "close": "]"},
|
||||
{ "open": "(", "close": ")" },
|
||||
{ "open": "'", "close": "'" },
|
||||
{ "open": "\"", "close": "\"" },
|
||||
{ "open": "<!--", "close": "-->", "notIn": [ "comment", "string" ]}
|
||||
],
|
||||
"surroundingPairs": [
|
||||
{ "open": "'", "close": "'" },
|
||||
{ "open": "\"", "close": "\"" },
|
||||
{ "open": "{", "close": "}"},
|
||||
{ "open": "[", "close": "]"},
|
||||
{ "open": "(", "close": ")" },
|
||||
{ "open": "<", "close": ">" }
|
||||
],
|
||||
"colorizedBracketPairs": [
|
||||
],
|
||||
"folding": {
|
||||
"markers": {
|
||||
"start": "^\\s*<!--\\s*#region\\b.*-->",
|
||||
"end": "^\\s*<!--\\s*#endregion\\b.*-->"
|
||||
}
|
||||
},
|
||||
"wordPattern": "(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\$\\^\\&\\*\\(\\)\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\s]+)",
|
||||
"onEnterRules": [
|
||||
{
|
||||
"beforeText": { "pattern": "<(?!(?:area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr))([_:\\w][_:\\w-.\\d]*)(?:(?:[^'\"/>]|\"[^\"]*\"|'[^']*')*?(?!\\/)>)[^<]*$", "flags": "i" },
|
||||
"afterText": { "pattern": "^<\\/([_:\\w][_:\\w-.\\d]*)\\s*>", "flags": "i" },
|
||||
"action": {
|
||||
"indent": "indentOutdent"
|
||||
}
|
||||
},
|
||||
{
|
||||
"beforeText": { "pattern": "<(?!(?:area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr))([_:\\w][_:\\w-.\\d]*)(?:(?:[^'\"/>]|\"[^\"]*\"|'[^']*')*?(?!\\/)>)[^<]*$", "flags": "i" },
|
||||
"action": {
|
||||
"indent": "indent"
|
||||
}
|
||||
}
|
||||
],
|
||||
"indentationRules": {
|
||||
"increaseIndentPattern": "<(?!\\?|(?:area|base|br|col|frame|hr|html|img|input|keygen|link|menuitem|meta|param|source|track|wbr)\\b|[^>]*\\/>)([-_\\.A-Za-z0-9]+)(?=\\s|>)\\b[^>]*>(?!.*<\\/\\1>)|<!--(?!.*-->)|\\{[^}\"']*$",
|
||||
"decreaseIndentPattern": "^\\s*(<\\/(?!html)[-_\\.A-Za-z0-9]+\\b[^>]*>|-->|\\})"
|
||||
}
|
||||
}
|
||||
85
extensions/html/package.json
Normal file
85
extensions/html/package.json
Normal file
@@ -0,0 +1,85 @@
|
||||
{
|
||||
"name": "html",
|
||||
"displayName": "%displayName%",
|
||||
"description": "%description%",
|
||||
"version": "1.0.0",
|
||||
"publisher": "vscode",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"vscode": "0.10.x"
|
||||
},
|
||||
"scripts": {
|
||||
"update-grammar": "node ./build/update-grammar.js"
|
||||
},
|
||||
"contributes": {
|
||||
"languages": [
|
||||
{
|
||||
"id": "html",
|
||||
"extensions": [
|
||||
".html",
|
||||
".htm",
|
||||
".shtml",
|
||||
".xhtml",
|
||||
".xht",
|
||||
".mdoc",
|
||||
".jsp",
|
||||
".asp",
|
||||
".aspx",
|
||||
".jshtm",
|
||||
".volt",
|
||||
".ejs",
|
||||
".rhtml"
|
||||
],
|
||||
"aliases": [
|
||||
"HTML",
|
||||
"htm",
|
||||
"html",
|
||||
"xhtml"
|
||||
],
|
||||
"mimetypes": [
|
||||
"text/html",
|
||||
"text/x-jshtm",
|
||||
"text/template",
|
||||
"text/ng-template",
|
||||
"application/xhtml+xml"
|
||||
],
|
||||
"configuration": "./language-configuration.json"
|
||||
}
|
||||
],
|
||||
"grammars": [
|
||||
{
|
||||
"scopeName": "text.html.basic",
|
||||
"path": "./syntaxes/html.tmLanguage.json",
|
||||
"embeddedLanguages": {
|
||||
"text.html": "html",
|
||||
"source.css": "css",
|
||||
"source.js": "javascript",
|
||||
"source.python": "python",
|
||||
"source.smarty": "smarty"
|
||||
},
|
||||
"tokenTypes": {
|
||||
"meta.tag string.quoted": "other"
|
||||
}
|
||||
},
|
||||
{
|
||||
"language": "html",
|
||||
"scopeName": "text.html.derivative",
|
||||
"path": "./syntaxes/html-derivative.tmLanguage.json",
|
||||
"embeddedLanguages": {
|
||||
"text.html": "html",
|
||||
"source.css": "css",
|
||||
"source.js": "javascript",
|
||||
"source.python": "python",
|
||||
"source.smarty": "smarty"
|
||||
},
|
||||
"tokenTypes": {
|
||||
"meta.tag string.quoted": "other"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/microsoft/vscode.git"
|
||||
}
|
||||
}
|
||||
4
extensions/html/package.nls.json
Normal file
4
extensions/html/package.nls.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"displayName": "HTML Language Basics",
|
||||
"description": "Provides syntax highlighting, bracket matching & snippets in HTML files."
|
||||
}
|
||||
49
extensions/html/syntaxes/html-derivative.tmLanguage.json
Normal file
49
extensions/html/syntaxes/html-derivative.tmLanguage.json
Normal file
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"information_for_contributors": [
|
||||
"This file has been converted from https://github.com/textmate/html.tmbundle/blob/master/Syntaxes/HTML%20%28Derivative%29.tmLanguage",
|
||||
"If you want to provide a fix or improvement, please create a pull request against the original repository.",
|
||||
"Once accepted there, we are happy to receive an update request."
|
||||
],
|
||||
"version": "https://github.com/textmate/html.tmbundle/commit/390c8870273a2ae80244dae6db6ba064a802f407",
|
||||
"name": "HTML (Derivative)",
|
||||
"scopeName": "text.html.derivative",
|
||||
"injections": {
|
||||
"R:text.html - (comment.block, text.html meta.embedded, meta.tag.*.*.html, meta.tag.*.*.*.html, meta.tag.*.*.*.*.html)": {
|
||||
"comment": "Uses R: to ensure this matches after any other injections.",
|
||||
"patterns": [
|
||||
{
|
||||
"match": "<",
|
||||
"name": "invalid.illegal.bad-angle-bracket.html"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"patterns": [
|
||||
{
|
||||
"include": "text.html.basic#core-minus-invalid"
|
||||
},
|
||||
{
|
||||
"begin": "(</?)(\\w[^\\s>]*)(?<!/)",
|
||||
"beginCaptures": {
|
||||
"1": {
|
||||
"name": "punctuation.definition.tag.begin.html"
|
||||
},
|
||||
"2": {
|
||||
"name": "entity.name.tag.html"
|
||||
}
|
||||
},
|
||||
"end": "((?: ?/)?>)",
|
||||
"endCaptures": {
|
||||
"1": {
|
||||
"name": "punctuation.definition.tag.end.html"
|
||||
}
|
||||
},
|
||||
"name": "meta.tag.other.unrecognized.html.derivative",
|
||||
"patterns": [
|
||||
{
|
||||
"include": "text.html.basic#attribute"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
2643
extensions/html/syntaxes/html.tmLanguage.json
Normal file
2643
extensions/html/syntaxes/html.tmLanguage.json
Normal file
File diff suppressed because one or more lines are too long
4
extensions/html/yarn.lock
Normal file
4
extensions/html/yarn.lock
Normal file
@@ -0,0 +1,4 @@
|
||||
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
Reference in New Issue
Block a user