mirror of
https://github.com/microsoft/vscode.git
synced 2025-12-20 18:28:58 +00:00
45 lines
1.5 KiB
JavaScript
45 lines
1.5 KiB
JavaScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
// @ts-check
|
|
|
|
import * as vscodeGrammarUpdater from 'vscode-grammar-updater';
|
|
|
|
function patchGrammar(grammar) {
|
|
grammar.scopeName = 'text.html.cshtml';
|
|
|
|
let patchCount = 0;
|
|
|
|
let visit = function (rule, parent) {
|
|
if (rule.include?.startsWith('text.html.basic')) {
|
|
patchCount++;
|
|
rule.include = 'text.html.derivative';
|
|
}
|
|
for (let property in rule) {
|
|
let value = rule[property ];
|
|
if (typeof value === 'object') {
|
|
visit(value, { node: rule, property: property, parent: parent });
|
|
}
|
|
}
|
|
};
|
|
|
|
let roots = [grammar.repository, grammar.patterns];
|
|
for (let root of roots) {
|
|
for (let key in root) {
|
|
visit(root[key], { node: root, property: key, parent: undefined });
|
|
}
|
|
}
|
|
if (patchCount !== 4) {
|
|
console.warn(`Expected to patch 4 occurrences of text.html.basic: Was ${patchCount}`);
|
|
}
|
|
|
|
return grammar;
|
|
}
|
|
|
|
const razorGrammarRepo = 'dotnet/razor';
|
|
const grammarPath = 'src/Razor/src/Microsoft.VisualStudio.RazorExtension/EmbeddedGrammars/aspnetcorerazor.tmLanguage.json';
|
|
vscodeGrammarUpdater.update(razorGrammarRepo, grammarPath, './syntaxes/cshtml.tmLanguage.json', grammar => patchGrammar(grammar), 'main');
|
|
|
|
|