Merge pull request #1 from microsoft/master

Sync
pull/2748/head
pankajk07 5 years ago committed by GitHub
commit f53b683f37
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -3,5 +3,6 @@
"singleQuote": true, "singleQuote": true,
"trailingComma": "none", "trailingComma": "none",
"semi": true, "semi": true,
"useTabs": true "useTabs": true,
"printWidth": 100
} }

6
monaco.d.ts vendored

@ -18,11 +18,7 @@ declare namespace monaco.languages.html {
readonly indentHandlebars: boolean; readonly indentHandlebars: boolean;
readonly endWithNewline: boolean; readonly endWithNewline: boolean;
readonly extraLiners: string; readonly extraLiners: string;
readonly wrapAttributes: readonly wrapAttributes: 'auto' | 'force' | 'force-aligned' | 'force-expand-multiline';
| 'auto'
| 'force'
| 'force-aligned'
| 'force-expand-multiline';
} }
export interface CompletionConfiguration { export interface CompletionConfiguration {
[provider: string]: boolean; [provider: string]: boolean;

52
package-lock.json generated

@ -1,6 +1,6 @@
{ {
"name": "monaco-html", "name": "monaco-html",
"version": "3.0.0", "version": "3.1.0",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
@ -411,15 +411,15 @@
} }
}, },
"monaco-editor-core": { "monaco-editor-core": {
"version": "0.20.0", "version": "0.21.0",
"resolved": "https://registry.npmjs.org/monaco-editor-core/-/monaco-editor-core-0.20.0.tgz", "resolved": "https://registry.npmjs.org/monaco-editor-core/-/monaco-editor-core-0.21.0.tgz",
"integrity": "sha512-4mdmfEejTvRZzrEIn70jqqNl3g15vnkRdTkJ8uMK4jiljntlwhiSc5vknZOLt1QM8za16C3tDrSl2mTL9ma2Sg==", "integrity": "sha512-buBxOxwexlb7pdQrIHjj7OGmtVmEe735NN7M8GbhN03eYAKQmaeIAs1AyneOOHvbvh1Ntm7PoHH8f196gd2p6w==",
"dev": true "dev": true
}, },
"monaco-languages": { "monaco-languages": {
"version": "1.10.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/monaco-languages/-/monaco-languages-1.10.0.tgz", "resolved": "https://registry.npmjs.org/monaco-languages/-/monaco-languages-2.1.0.tgz",
"integrity": "sha512-ARAws17Xh0K4WsZYkJY6CqHn9EYdYN8CjzK6w/jgXIwU0owzCdUWxzu+FNJ/LeDLcKxL/YK3phcwGFj9IqX2yw==", "integrity": "sha512-c2afUp3lbUCrvEdVrH8EThQYbj5tb2FpvXFnFN3gOJScDlFknWb5nbaxiaVqY9CSIqzJVZpNc5HXpP5FWOuS3g==",
"dev": true "dev": true
}, },
"monaco-plugin-helpers": { "monaco-plugin-helpers": {
@ -573,15 +573,15 @@
} }
}, },
"prettier": { "prettier": {
"version": "2.1.1", "version": "2.1.2",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.1.tgz", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.2.tgz",
"integrity": "sha512-9bY+5ZWCfqj3ghYBLxApy2zf6m+NJo5GzmLTpr9FsApsfjriNnS2dahWReHMi7qNPhhHl9SYHJs2cHZLgexNIw==", "integrity": "sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==",
"dev": true "dev": true
}, },
"pretty-quick": { "pretty-quick": {
"version": "3.0.0", "version": "3.0.2",
"resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-3.0.0.tgz", "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-3.0.2.tgz",
"integrity": "sha512-oIXlGQUcUxt3XpoNfQECEWvH1Q9PtKfelF2pdp6UvC1CSQ5QcB7gUYKu0kuJGlm3LMBZzJaO/vbRkxA61pWlcg==", "integrity": "sha512-4rWOs/Ifdkg7G/YX7Xbco4jZkuXPx445KdhuMI6REnl3nXRDb9+zysb29c76R59jsJzcnkcpAaGi8D/RjAVfSQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"chalk": "^3.0.0", "chalk": "^3.0.0",
@ -697,9 +697,9 @@
} }
}, },
"terser": { "terser": {
"version": "5.3.0", "version": "5.3.2",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.3.0.tgz", "resolved": "https://registry.npmjs.org/terser/-/terser-5.3.2.tgz",
"integrity": "sha512-XTT3D3AwxC54KywJijmY2mxZ8nJiEjBHVYzq8l9OaYuRFWeQNBwvipuzzYEP4e+/AVcd1hqG/CqgsdIRyT45Fg==", "integrity": "sha512-H67sydwBz5jCUA32ZRL319ULu+Su1cAoZnnc+lXnenGRYWyLE3Scgkt8mNoAsMx0h5kdo758zdoS0LG9rYZXDQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"commander": "^2.20.0", "commander": "^2.20.0",
@ -708,20 +708,20 @@
} }
}, },
"typescript": { "typescript": {
"version": "4.0.2", "version": "4.0.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.2.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.3.tgz",
"integrity": "sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==", "integrity": "sha512-tEu6DGxGgRJPb/mVPIZ48e69xCn2yRmCgYmDugAVwmJ6o+0u1RI18eO7E7WBTLYLaEVVOhwQmcdhQHweux/WPg==",
"dev": true "dev": true
}, },
"vscode-html-languageservice": { "vscode-html-languageservice": {
"version": "3.1.2", "version": "3.1.3",
"resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-3.1.2.tgz", "resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-3.1.3.tgz",
"integrity": "sha512-ixdcyb2xBmwNTuMitT6vNbnvHCnATim1ZZC/CxiUtzKImQjuXAT5Px53x/7+zUqGU9RlfkEwHN//slWcCBMdMw==", "integrity": "sha512-ViGIfK7D3E99dFXprTenz20M8xzb0+fsAMPSPpz5JrHyBU7hdx+0cc/angDqdSygYMOm8vkbTviXwPtg6P3hhg==",
"dev": true, "dev": true,
"requires": { "requires": {
"vscode-languageserver-textdocument": "^1.0.1", "vscode-languageserver-textdocument": "^1.0.1",
"vscode-languageserver-types": "3.16.0-next.2", "vscode-languageserver-types": "3.16.0-next.2",
"vscode-nls": "^4.1.2", "vscode-nls": "^5.0.0",
"vscode-uri": "^2.1.2" "vscode-uri": "^2.1.2"
}, },
"dependencies": { "dependencies": {
@ -746,9 +746,9 @@
"dev": true "dev": true
}, },
"vscode-nls": { "vscode-nls": {
"version": "4.1.2", "version": "5.0.0",
"resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-4.1.2.tgz", "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.0.0.tgz",
"integrity": "sha512-7bOHxPsfyuCqmP+hZXscLhiHwe7CSuFE4hyhbs22xPIhQ4jv99FcR4eBzfYYVLP356HNFpdvz63FFb/xw6T4Iw==", "integrity": "sha512-u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA==",
"dev": true "dev": true
}, },
"vscode-uri": { "vscode-uri": {

@ -1,6 +1,6 @@
{ {
"name": "monaco-html", "name": "monaco-html",
"version": "3.0.0", "version": "3.1.0",
"description": "HTML plugin for the Monaco Editor", "description": "HTML plugin for the Monaco Editor",
"scripts": { "scripts": {
"compile": "mrmdir ./out && tsc -p ./src/tsconfig.json && tsc -p ./src/tsconfig.esm.json && node ./scripts/dts && prettier --write ./monaco.d.ts", "compile": "mrmdir ./out && tsc -p ./src/tsconfig.json && tsc -p ./src/tsconfig.esm.json && node ./scripts/dts && prettier --write ./monaco.d.ts",
@ -23,15 +23,15 @@
"typings": "./release/esm/monaco.contribution.d.ts", "typings": "./release/esm/monaco.contribution.d.ts",
"devDependencies": { "devDependencies": {
"husky": "^4.3.0", "husky": "^4.3.0",
"monaco-editor-core": "0.20.0", "monaco-editor-core": "0.21.0",
"monaco-languages": "^1.10.0", "monaco-languages": "^2.1.0",
"monaco-plugin-helpers": "^1.0.3", "monaco-plugin-helpers": "^1.0.3",
"prettier": "^2.1.1", "prettier": "^2.1.2",
"pretty-quick": "^3.0.0", "pretty-quick": "^3.0.2",
"requirejs": "^2.3.6", "requirejs": "^2.3.6",
"typescript": "^4.0.2", "typescript": "^4.0.3",
"terser": "^5.3.0", "terser": "^5.3.2",
"vscode-html-languageservice": "3.1.2", "vscode-html-languageservice": "3.1.3",
"vscode-languageserver-types": "3.15.1", "vscode-languageserver-types": "3.15.1",
"vscode-languageserver-textdocument": "^1.0.1" "vscode-languageserver-textdocument": "^1.0.1"
}, },

@ -40,26 +40,17 @@ function bundleOne(moduleId, exclude) {
packages: [ packages: [
{ {
name: 'vscode-html-languageservice', name: 'vscode-html-languageservice',
location: path.join( location: path.join(REPO_ROOT, 'node_modules/vscode-html-languageservice/lib/umd'),
REPO_ROOT,
'node_modules/vscode-html-languageservice/lib/umd'
),
main: 'htmlLanguageService' main: 'htmlLanguageService'
}, },
{ {
name: 'vscode-languageserver-types', name: 'vscode-languageserver-types',
location: path.join( location: path.join(REPO_ROOT, 'node_modules/vscode-languageserver-types/lib/umd'),
REPO_ROOT,
'node_modules/vscode-languageserver-types/lib/umd'
),
main: 'main' main: 'main'
}, },
{ {
name: 'vscode-languageserver-textdocument', name: 'vscode-languageserver-textdocument',
location: path.join( location: path.join(REPO_ROOT, 'node_modules/vscode-languageserver-textdocument/lib/umd'),
REPO_ROOT,
'node_modules/vscode-languageserver-textdocument/lib/umd'
),
main: 'main' main: 'main'
}, },
{ {
@ -75,14 +66,8 @@ function bundleOne(moduleId, exclude) {
] ]
}, },
async function (buildResponse) { async function (buildResponse) {
const devFilePath = path.join( const devFilePath = path.join(REPO_ROOT, 'release/dev/' + moduleId + '.js');
REPO_ROOT, const minFilePath = path.join(REPO_ROOT, 'release/min/' + moduleId + '.js');
'release/dev/' + moduleId + '.js'
);
const minFilePath = path.join(
REPO_ROOT,
'release/min/' + moduleId + '.js'
);
const fileContents = fs.readFileSync(devFilePath).toString(); const fileContents = fs.readFileSync(devFilePath).toString();
console.log(); console.log();
console.log(`Minifying ${devFilePath}...`); console.log(`Minifying ${devFilePath}...`);

@ -33,11 +33,7 @@ function format(message: string, args: any[]): string {
return result; return result;
} }
function localize( function localize(key: string | LocalizeInfo, message: string, ...args: any[]): string {
key: string | LocalizeInfo,
message: string,
...args: any[]
): string {
return format(message, args); return format(message, args);
} }

@ -12,9 +12,7 @@ import { Uri, IDisposable, languages } from './fillers/monaco-editor-core';
export function setupMode1(defaults: LanguageServiceDefaults): void { export function setupMode1(defaults: LanguageServiceDefaults): void {
const client = new WorkerManager(defaults); const client = new WorkerManager(defaults);
const worker: languageFeatures.WorkerAccessor = ( const worker: languageFeatures.WorkerAccessor = (...uris: Uri[]): Promise<HTMLWorker> => {
...uris: Uri[]
): Promise<HTMLWorker> => {
return client.getLanguageServiceWorker(...uris); return client.getLanguageServiceWorker(...uris);
}; };
@ -25,19 +23,13 @@ export function setupMode1(defaults: LanguageServiceDefaults): void {
languageId, languageId,
new languageFeatures.CompletionAdapter(worker) new languageFeatures.CompletionAdapter(worker)
); );
languages.registerHoverProvider( languages.registerHoverProvider(languageId, new languageFeatures.HoverAdapter(worker));
languageId,
new languageFeatures.HoverAdapter(worker)
);
languages.registerDocumentHighlightProvider( languages.registerDocumentHighlightProvider(
languageId, languageId,
new languageFeatures.DocumentHighlightAdapter(worker) new languageFeatures.DocumentHighlightAdapter(worker)
); );
languages.registerLinkProvider( languages.registerLinkProvider(languageId, new languageFeatures.DocumentLinkAdapter(worker));
languageId,
new languageFeatures.DocumentLinkAdapter(worker)
);
languages.registerFoldingRangeProvider( languages.registerFoldingRangeProvider(
languageId, languageId,
new languageFeatures.FoldingRangeAdapter(worker) new languageFeatures.FoldingRangeAdapter(worker)
@ -50,10 +42,7 @@ export function setupMode1(defaults: LanguageServiceDefaults): void {
languageId, languageId,
new languageFeatures.SelectionRangeAdapter(worker) new languageFeatures.SelectionRangeAdapter(worker)
); );
languages.registerRenameProvider( languages.registerRenameProvider(languageId, new languageFeatures.RenameAdapter(worker));
languageId,
new languageFeatures.RenameAdapter(worker)
);
// only html // only html
if (languageId === 'html') { if (languageId === 'html') {
@ -76,9 +65,7 @@ export function setupMode(defaults: LanguageServiceDefaults): IDisposable {
const client = new WorkerManager(defaults); const client = new WorkerManager(defaults);
disposables.push(client); disposables.push(client);
const worker: languageFeatures.WorkerAccessor = ( const worker: languageFeatures.WorkerAccessor = (...uris: Uri[]): Promise<HTMLWorker> => {
...uris: Uri[]
): Promise<HTMLWorker> => {
return client.getLanguageServiceWorker(...uris); return client.getLanguageServiceWorker(...uris);
}; };
@ -97,10 +84,7 @@ export function setupMode(defaults: LanguageServiceDefaults): IDisposable {
} }
if (modeConfiguration.hovers) { if (modeConfiguration.hovers) {
providers.push( providers.push(
languages.registerHoverProvider( languages.registerHoverProvider(languageId, new languageFeatures.HoverAdapter(worker))
languageId,
new languageFeatures.HoverAdapter(worker)
)
); );
} }
if (modeConfiguration.documentHighlights) { if (modeConfiguration.documentHighlights) {
@ -113,10 +97,7 @@ export function setupMode(defaults: LanguageServiceDefaults): IDisposable {
} }
if (modeConfiguration.links) { if (modeConfiguration.links) {
providers.push( providers.push(
languages.registerLinkProvider( languages.registerLinkProvider(languageId, new languageFeatures.DocumentLinkAdapter(worker))
languageId,
new languageFeatures.DocumentLinkAdapter(worker)
)
); );
} }
if (modeConfiguration.documentSymbols) { if (modeConfiguration.documentSymbols) {
@ -129,10 +110,7 @@ export function setupMode(defaults: LanguageServiceDefaults): IDisposable {
} }
if (modeConfiguration.rename) { if (modeConfiguration.rename) {
providers.push( providers.push(
languages.registerRenameProvider( languages.registerRenameProvider(languageId, new languageFeatures.RenameAdapter(worker))
languageId,
new languageFeatures.RenameAdapter(worker)
)
); );
} }
if (modeConfiguration.foldingRanges) { if (modeConfiguration.foldingRanges) {
@ -168,9 +146,7 @@ export function setupMode(defaults: LanguageServiceDefaults): IDisposable {
); );
} }
if (modeConfiguration.diagnostics) { if (modeConfiguration.diagnostics) {
providers.push( providers.push(new languageFeatures.DiagnosticsAdapter(languageId, worker, defaults));
new languageFeatures.DiagnosticsAdapter(languageId, worker, defaults)
);
} }
} }

@ -52,10 +52,7 @@ export class HTMLWorker {
); );
return Promise.resolve(textEdits); return Promise.resolve(textEdits);
} }
async doHover( async doHover(uri: string, position: htmlService.Position): Promise<htmlService.Hover> {
uri: string,
position: htmlService.Position
): Promise<htmlService.Hover> {
let document = this._getTextDocument(uri); let document = this._getTextDocument(uri);
let htmlDocument = this._languageService.parseHTMLDocument(document); let htmlDocument = this._languageService.parseHTMLDocument(document);
let hover = this._languageService.doHover(document, position, htmlDocument); let hover = this._languageService.doHover(document, position, htmlDocument);
@ -67,11 +64,7 @@ export class HTMLWorker {
): Promise<htmlService.DocumentHighlight[]> { ): Promise<htmlService.DocumentHighlight[]> {
let document = this._getTextDocument(uri); let document = this._getTextDocument(uri);
let htmlDocument = this._languageService.parseHTMLDocument(document); let htmlDocument = this._languageService.parseHTMLDocument(document);
let highlights = this._languageService.findDocumentHighlights( let highlights = this._languageService.findDocumentHighlights(document, position, htmlDocument);
document,
position,
htmlDocument
);
return Promise.resolve(highlights); return Promise.resolve(highlights);
} }
async findDocumentLinks(uri: string): Promise<htmlService.DocumentLink[]> { async findDocumentLinks(uri: string): Promise<htmlService.DocumentLink[]> {
@ -79,15 +72,10 @@ export class HTMLWorker {
let links = this._languageService.findDocumentLinks(document, null); let links = this._languageService.findDocumentLinks(document, null);
return Promise.resolve(links); return Promise.resolve(links);
} }
async findDocumentSymbols( async findDocumentSymbols(uri: string): Promise<htmlService.SymbolInformation[]> {
uri: string
): Promise<htmlService.SymbolInformation[]> {
let document = this._getTextDocument(uri); let document = this._getTextDocument(uri);
let htmlDocument = this._languageService.parseHTMLDocument(document); let htmlDocument = this._languageService.parseHTMLDocument(document);
let symbols = this._languageService.findDocumentSymbols( let symbols = this._languageService.findDocumentSymbols(document, htmlDocument);
document,
htmlDocument
);
return Promise.resolve(symbols); return Promise.resolve(symbols);
} }
async getFoldingRanges( async getFoldingRanges(
@ -113,12 +101,7 @@ export class HTMLWorker {
): Promise<htmlService.WorkspaceEdit> { ): Promise<htmlService.WorkspaceEdit> {
let document = this._getTextDocument(uri); let document = this._getTextDocument(uri);
let htmlDocument = this._languageService.parseHTMLDocument(document); let htmlDocument = this._languageService.parseHTMLDocument(document);
let renames = this._languageService.doRename( let renames = this._languageService.doRename(document, position, newName, htmlDocument);
document,
position,
newName,
htmlDocument
);
return Promise.resolve(renames); return Promise.resolve(renames);
} }
private _getTextDocument(uri: string): htmlService.TextDocument { private _getTextDocument(uri: string): htmlService.TextDocument {
@ -142,9 +125,6 @@ export interface ICreateData {
languageSettings: Options; languageSettings: Options;
} }
export function create( export function create(ctx: worker.IWorkerContext, createData: ICreateData): HTMLWorker {
ctx: worker.IWorkerContext,
createData: ICreateData
): HTMLWorker {
return new HTMLWorker(ctx, createData); return new HTMLWorker(ctx, createData);
} }

@ -104,11 +104,7 @@ export class DiagnosticsAdapter {
.then((worker) => { .then((worker) => {
return worker.doValidation(resource.toString()).then((diagnostics) => { return worker.doValidation(resource.toString()).then((diagnostics) => {
const markers = diagnostics.map((d) => toDiagnostics(resource, d)); const markers = diagnostics.map((d) => toDiagnostics(resource, d));
editor.setModelMarkers( editor.setModelMarkers(editor.getModel(resource), languageId, markers);
editor.getModel(resource),
languageId,
markers
);
}); });
}) })
.then(undefined, (err) => { .then(undefined, (err) => {
@ -132,12 +128,8 @@ function toSeverity(lsSeverity: number): MarkerSeverity {
} }
} }
function toDiagnostics( function toDiagnostics(resource: Uri, diag: htmlService.Diagnostic): editor.IMarkerData {
resource: Uri, const code = typeof diag.code === 'number' ? String(diag.code) : <string>diag.code;
diag: htmlService.Diagnostic
): editor.IMarkerData {
const code =
typeof diag.code === 'number' ? String(diag.code) : <string>diag.code;
return { return {
severity: toSeverity(diag.severity), severity: toSeverity(diag.severity),
@ -182,9 +174,7 @@ function toRange(range: htmlService.Range): Range {
); );
} }
function isInsertReplaceEdit( function isInsertReplaceEdit(edit: TextEdit | InsertReplaceEdit): edit is InsertReplaceEdit {
edit: TextEdit | InsertReplaceEdit
): edit is InsertReplaceEdit {
return ( return (
typeof (<InsertReplaceEdit>edit).insert !== 'undefined' && typeof (<InsertReplaceEdit>edit).insert !== 'undefined' &&
typeof (<InsertReplaceEdit>edit).replace !== 'undefined' typeof (<InsertReplaceEdit>edit).replace !== 'undefined'
@ -281,9 +271,7 @@ function fromCompletionItemKind(
return htmlService.CompletionItemKind.Property; return htmlService.CompletionItemKind.Property;
} }
function toTextEdit( function toTextEdit(textEdit: htmlService.TextEdit): editor.ISingleEditOperation {
textEdit: htmlService.TextEdit
): editor.ISingleEditOperation {
if (!textEdit) { if (!textEdit) {
return void 0; return void 0;
} }
@ -347,13 +335,10 @@ export class CompletionAdapter implements languages.CompletionItemProvider {
item.insertText = entry.textEdit.newText; item.insertText = entry.textEdit.newText;
} }
if (entry.additionalTextEdits) { if (entry.additionalTextEdits) {
item.additionalTextEdits = entry.additionalTextEdits.map( item.additionalTextEdits = entry.additionalTextEdits.map(toTextEdit);
toTextEdit
);
} }
if (entry.insertTextFormat === htmlService.InsertTextFormat.Snippet) { if (entry.insertTextFormat === htmlService.InsertTextFormat.Snippet) {
item.insertTextRules = item.insertTextRules = languages.CompletionItemInsertTextRule.InsertAsSnippet;
languages.CompletionItemInsertTextRule.InsertAsSnippet;
} }
return item; return item;
}); });
@ -399,10 +384,7 @@ function toMarkdownString(
} }
function toMarkedStringArray( function toMarkedStringArray(
contents: contents: htmlService.MarkupContent | htmlService.MarkedString | htmlService.MarkedString[]
| htmlService.MarkupContent
| htmlService.MarkedString
| htmlService.MarkedString[]
): IMarkdownString[] { ): IMarkdownString[] {
if (!contents) { if (!contents) {
return void 0; return void 0;
@ -441,9 +423,7 @@ export class HoverAdapter implements languages.HoverProvider {
// --- document highlights ------ // --- document highlights ------
function toHighlighKind( function toHighlighKind(kind: htmlService.DocumentHighlightKind): languages.DocumentHighlightKind {
kind: htmlService.DocumentHighlightKind
): languages.DocumentHighlightKind {
const mKind = languages.DocumentHighlightKind; const mKind = languages.DocumentHighlightKind;
switch (kind) { switch (kind) {
@ -457,8 +437,7 @@ function toHighlighKind(
return mKind.Text; return mKind.Text;
} }
export class DocumentHighlightAdapter export class DocumentHighlightAdapter implements languages.DocumentHighlightProvider {
implements languages.DocumentHighlightProvider {
constructor(private _worker: WorkerAccessor) {} constructor(private _worker: WorkerAccessor) {}
public provideDocumentHighlights( public provideDocumentHighlights(
@ -469,12 +448,7 @@ export class DocumentHighlightAdapter
const resource = model.uri; const resource = model.uri;
return this._worker(resource) return this._worker(resource)
.then((worker) => .then((worker) => worker.findDocumentHighlights(resource.toString(), fromPosition(position)))
worker.findDocumentHighlights(
resource.toString(),
fromPosition(position)
)
)
.then((items) => { .then((items) => {
if (!items) { if (!items) {
return; return;
@ -595,8 +569,7 @@ function fromFormattingOptions(
}; };
} }
export class DocumentFormattingEditProvider export class DocumentFormattingEditProvider implements languages.DocumentFormattingEditProvider {
implements languages.DocumentFormattingEditProvider {
constructor(private _worker: WorkerAccessor) {} constructor(private _worker: WorkerAccessor) {}
public provideDocumentFormattingEdits( public provideDocumentFormattingEdits(
@ -633,11 +606,7 @@ export class DocumentRangeFormattingEditProvider
return this._worker(resource).then((worker) => { return this._worker(resource).then((worker) => {
return worker return worker
.format( .format(resource.toString(), fromRange(range), fromFormattingOptions(options))
resource.toString(),
fromRange(range),
fromFormattingOptions(options)
)
.then((edits) => { .then((edits) => {
if (!edits || edits.length === 0) { if (!edits || edits.length === 0) {
return; return;
@ -661,11 +630,7 @@ export class RenameAdapter implements languages.RenameProvider {
return this._worker(resource) return this._worker(resource)
.then((worker) => { .then((worker) => {
return worker.doRename( return worker.doRename(resource.toString(), fromPosition(position), newName);
resource.toString(),
fromPosition(position),
newName
);
}) })
.then((edit) => { .then((edit) => {
return toWorkspaceEdit(edit); return toWorkspaceEdit(edit);
@ -673,9 +638,7 @@ export class RenameAdapter implements languages.RenameProvider {
} }
} }
function toWorkspaceEdit( function toWorkspaceEdit(edit: htmlService.WorkspaceEdit): languages.WorkspaceEdit {
edit: htmlService.WorkspaceEdit
): languages.WorkspaceEdit {
if (!edit || !edit.changes) { if (!edit || !edit.changes) {
return void 0; return void 0;
} }
@ -719,9 +682,7 @@ export class FoldingRangeAdapter implements languages.FoldingRangeProvider {
end: range.endLine + 1 end: range.endLine + 1
}; };
if (typeof range.kind !== 'undefined') { if (typeof range.kind !== 'undefined') {
result.kind = toFoldingRangeKind( result.kind = toFoldingRangeKind(<htmlService.FoldingRangeKind>range.kind);
<htmlService.FoldingRangeKind>range.kind
);
} }
return result; return result;
}); });
@ -729,9 +690,7 @@ export class FoldingRangeAdapter implements languages.FoldingRangeProvider {
} }
} }
function toFoldingRangeKind( function toFoldingRangeKind(kind: htmlService.FoldingRangeKind): languages.FoldingRangeKind {
kind: htmlService.FoldingRangeKind
): languages.FoldingRangeKind {
switch (kind) { switch (kind) {
case htmlService.FoldingRangeKind.Comment: case htmlService.FoldingRangeKind.Comment:
return languages.FoldingRangeKind.Comment; return languages.FoldingRangeKind.Comment;
@ -753,12 +712,7 @@ export class SelectionRangeAdapter implements languages.SelectionRangeProvider {
const resource = model.uri; const resource = model.uri;
return this._worker(resource) return this._worker(resource)
.then((worker) => .then((worker) => worker.getSelectionRanges(resource.toString(), positions.map(fromPosition)))
worker.getSelectionRanges(
resource.toString(),
positions.map(fromPosition)
)
)
.then((selectionRanges) => { .then((selectionRanges) => {
if (!selectionRanges) { if (!selectionRanges) {
return; return;

@ -18,11 +18,7 @@ export interface HTMLFormatConfiguration {
readonly indentHandlebars: boolean; readonly indentHandlebars: boolean;
readonly endWithNewline: boolean; readonly endWithNewline: boolean;
readonly extraLiners: string; readonly extraLiners: string;
readonly wrapAttributes: readonly wrapAttributes: 'auto' | 'force' | 'force-aligned' | 'force-expand-multiline';
| 'auto'
| 'force'
| 'force-aligned'
| 'force-expand-multiline';
} }
export interface CompletionConfiguration { export interface CompletionConfiguration {
@ -118,11 +114,7 @@ class LanguageServiceDefaultsImpl implements LanguageServiceDefaults {
private _modeConfiguration: ModeConfiguration; private _modeConfiguration: ModeConfiguration;
private _languageId: string; private _languageId: string;
constructor( constructor(languageId: string, options: Options, modeConfiguration: ModeConfiguration) {
languageId: string,
options: Options,
modeConfiguration: ModeConfiguration
) {
this._languageId = languageId; this._languageId = languageId;
this.setOptions(options); this.setOptions(options);
this.setModeConfiguration(modeConfiguration); this.setModeConfiguration(modeConfiguration);
@ -186,9 +178,7 @@ const razorOptionsDefault: Required<Options> = {
suggest: { html5: true, razor: true } suggest: { html5: true, razor: true }
}; };
function getConfigurationDefault( function getConfigurationDefault(languageId: string): Required<ModeConfiguration> {
languageId: string
): Required<ModeConfiguration> {
return { return {
completionItems: true, completionItems: true,
hovers: true, hovers: true,

@ -5,12 +5,6 @@
"outDir": "../out/esm", "outDir": "../out/esm",
"declaration": true, "declaration": true,
"target": "es5", "target": "es5",
"lib": [ "lib": ["dom", "es5", "es2015.collection", "es2015.promise", "es2015.iterable"]
"dom",
"es5",
"es2015.collection",
"es2015.promise",
"es2015.iterable"
]
} }
} }

@ -5,12 +5,6 @@
"outDir": "../out/amd", "outDir": "../out/amd",
"declaration": true, "declaration": true,
"target": "es5", "target": "es5",
"lib": [ "lib": ["dom", "es5", "es2015.collection", "es2015.promise", "es2015.iterable"]
"dom",
"es5",
"es2015.collection",
"es2015.promise",
"es2015.iterable"
]
} }
} }

@ -23,9 +23,7 @@ export class WorkerManager {
this._worker = null; this._worker = null;
this._idleCheckInterval = setInterval(() => this._checkIfIdle(), 30 * 1000); this._idleCheckInterval = setInterval(() => this._checkIfIdle(), 30 * 1000);
this._lastUsedTime = 0; this._lastUsedTime = 0;
this._configChangeListener = this._defaults.onDidChange(() => this._configChangeListener = this._defaults.onDidChange(() => this._stopWorker());
this._stopWorker()
);
} }
private _stopWorker(): void { private _stopWorker(): void {

@ -11,10 +11,7 @@
</head> </head>
<body> <body>
<h2>Monaco Editor HTML test page</h2> <h2>Monaco Editor HTML test page</h2>
<div <div id="container" style="width: 800px; height: 600px; border: 1px solid grey"></div>
id="container"
style="width: 800px; height: 600px; border: 1px solid grey"
></div>
<script> <script>
// Loading basic-languages to get the html language definition // Loading basic-languages to get the html language definition
@ -44,37 +41,34 @@
'vs/basic-languages/monaco.contribution', 'vs/basic-languages/monaco.contribution',
'vs/language/html/monaco.contribution' 'vs/language/html/monaco.contribution'
], function () { ], function () {
var editor = monaco.editor.create( var editor = monaco.editor.create(document.getElementById('container'), {
document.getElementById('container'), value: [
{ '<!DOCTYPE HTML>',
value: [ '<!--',
'<!DOCTYPE HTML>', ' Comments are overrated',
'<!--', '-->',
' Comments are overrated', '<html>',
'-->', '<head>',
'<html>', ' <title>HTML Sample</title>',
'<head>', ' <meta http-equiv="X-UA-Compatible" content="IE=edge">',
' <title>HTML Sample</title>', ' <style type="text/css">',
' <meta http-equiv="X-UA-Compatible" content="IE=edge">', ' h1 {',
' <style type="text/css">', ' color: #CCA3A3;',
' h1 {', ' }',
' color: #CCA3A3;', ' </style>',
' }', ' <script type="text/javascript">',
' </style>', ' window.alert("I am a sample...");',
' <script type="text/javascript">', ' var x = 3;',
' window.alert("I am a sample...");', ' </' + 'script>',
' var x = 3;', '</head>',
' </' + 'script>', '<body>',
'</head>', ' <h1>Heading No.1</h1>',
'<body>', ' <input disabled type="button" value="Click me" />',
' <h1>Heading No.1</h1>', '</body>',
' <input disabled type="button" value="Click me" />', '</html>'
'</body>', ].join('\n'),
'</html>' language: 'html'
].join('\n'), });
language: 'html'
}
);
}); });
</script> </script>
</body> </body>

Loading…
Cancel
Save