add folding provider & update dependencies

pull/2748/head
Martin Aeschlimann 7 years ago
parent a021ab7a38
commit e6f882e3f1

86
package-lock.json generated

@ -4,16 +4,22 @@
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"commander": {
"version": "2.16.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz",
"integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew==",
"dev": true
},
"monaco-editor-core": {
"version": "0.11.3",
"resolved": "https://registry.npmjs.org/monaco-editor-core/-/monaco-editor-core-0.11.3.tgz",
"integrity": "sha512-e6o/TInK+sRgWaWNj8kIaNinfmTC1vQdwF6QUaZ7h0OT+xILM6zxl+4B0imIbKm7iBYSZR2avH8Hbg8h6qQ2+g==",
"version": "0.13.2",
"resolved": "https://registry.npmjs.org/monaco-editor-core/-/monaco-editor-core-0.13.2.tgz",
"integrity": "sha512-UwUpmT+37fryykVcfuG/KA3sUV/Siip2V+kzzH/F6gzi6QGAe/A/qvr5sfTALdoW55V5aVpUNctPFUw5Bm1Qeg==",
"dev": true
},
"monaco-languages": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/monaco-languages/-/monaco-languages-1.0.0.tgz",
"integrity": "sha512-OKwVZJejt07Wpyy60vptcPueIZRBFOiJT8gfp60O861Pu0HHxhLfNBqeJ5zJ9x4PIbhd5Fq7+tSU+NbnOAfEcA==",
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/monaco-languages/-/monaco-languages-1.3.1.tgz",
"integrity": "sha512-zOrUBPBUW7RenUoQocl/O5wPlPVR5Ekb4GstgeCxD8PXM5qfU2djdIgAbxIVIPgoGemrQrKKfPV093T0Ot7n4Q==",
"dev": true
},
"monaco-plugin-helpers": {
@ -22,7 +28,15 @@
"integrity": "sha512-7kUx8dtd5qVNVgUARBRhnM8oftPglYwlINfigC4yGUiuzqtIN22u1tly8umiOCIPR0eFiBLjt6aN23oZh2QJgg==",
"dev": true,
"requires": {
"typescript": "2.7.2"
"typescript": "^2.7.2"
},
"dependencies": {
"typescript": {
"version": "2.9.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz",
"integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==",
"dev": true
}
}
},
"requirejs": {
@ -31,56 +45,48 @@
"integrity": "sha512-svnO+aNcR/an9Dpi44C7KSAy5fFGLtmPbaaCeQaklUz8BQhS64tWWIIlvEA5jrWICzlO/X9KSzSeXFnZdBu8nw==",
"dev": true
},
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
},
"typescript": {
"version": "2.7.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-2.7.2.tgz",
"integrity": "sha512-p5TCYZDAO0m4G344hD+wx/LATebLWZNkkh2asWUFqSsD2OrDNhbAHuSjobrmsUmdzjJjEeZVU9g1h3O6vpstnw==",
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.0.1.tgz",
"integrity": "sha512-zQIMOmC+372pC/CCVLqnQ0zSBiY7HHodU7mpQdjiZddek4GMj31I3dUJ7gAs9o65X7mnRma6OokOkc6f9jjfBg==",
"dev": true
},
"uglify-js": {
"version": "3.3.14",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.14.tgz",
"integrity": "sha512-OY8VPQU25q09gQRbC+Ekk3xgEVBmYFEfVcgS47ksjTiNht2LmLlUkWutyi38ZsDSToJHwbe76kDGwmD226Z2Fg==",
"version": "3.4.6",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.6.tgz",
"integrity": "sha512-O1D7L6WcOzS1qW2ehopEm4cWm5yA6bQBozlks8jO8ODxYCy4zv+bR/la4Lwp01tpkYGNonnpXvUpYtrvSu8Yzg==",
"dev": true,
"requires": {
"commander": "2.14.1",
"source-map": "0.6.1"
},
"dependencies": {
"commander": {
"version": "2.14.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz",
"integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==",
"dev": true
},
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
}
"commander": "~2.16.0",
"source-map": "~0.6.1"
}
},
"vscode-css-languageservice": {
"version": "3.0.8",
"resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-3.0.8.tgz",
"integrity": "sha512-3db4v/st2eT9fmKqwtgIl/mEq81wd5dQHBHswKLF4/QjpVoE0OzRq5iO8nppOcfSuLuCEr72C/cWmygMCSL9Rw==",
"version": "3.0.9",
"resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-3.0.9.tgz",
"integrity": "sha512-fxAVvS9xgT1Ohyf2+CeJbT+WB6GWnptsAPe3Eao/dqEIJpq6nhugjZwlVVdw0bne9UG7KUoQRsx0++jErx71Zg==",
"dev": true,
"requires": {
"vscode-languageserver-types": "3.6.1",
"vscode-nls": "3.2.1"
"vscode-languageserver-types": "^3.10.0",
"vscode-nls": "^3.2.4"
}
},
"vscode-languageserver-types": {
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.6.1.tgz",
"integrity": "sha512-Npi3i8gUWcx5h8z5idNqPKBLJmZothXK2FSG4csEmxAR7avb8W6l9Ny+VW9yCUB3bOdD7iXfah8IO0AS1jwQmQ==",
"version": "3.10.0",
"resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.10.0.tgz",
"integrity": "sha512-vxmCsVZGwq8X40SuLP8Ix7V0rq5V/7iQUjRVe2Oxm+TbmjxtjK4dpHHXQCUawjA4fhPA9FwjSRbDhbvQmYCfMw==",
"dev": true
},
"vscode-nls": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-3.2.1.tgz",
"integrity": "sha512-5D0USR9x2bXMS9f8NFQWNb7oA1FWveqeNAVaGNFaJJvDF7G7qmSGZMRng+YvD4XnGgbJvXQnCIh8eXbo6Kcz8w==",
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-3.2.4.tgz",
"integrity": "sha512-FTjdqa4jDDoBjJqr36O8lmmZf/55kQ2w4ZY/+GL6K92fq765BqO3aYw21atnXUno/P04V5DWagNl4ybDIndJsw==",
"dev": true
}
}

@ -19,13 +19,13 @@
"url": "https://github.com/Microsoft/monaco-css/issues"
},
"devDependencies": {
"monaco-editor-core": "0.12.0",
"monaco-languages": "1.0.0",
"monaco-editor-core": "0.13.2",
"monaco-languages": "1.3.1",
"monaco-plugin-helpers": "^1.0.2",
"requirejs": "^2.3.5",
"typescript": "2.7.2",
"uglify-js": "^3.3.14",
"vscode-css-languageservice": "3.0.8",
"vscode-languageserver-types": "3.6.1"
"typescript": "3.0.1",
"uglify-js": "3.4.6",
"vscode-css-languageservice": "3.0.9",
"vscode-languageserver-types": "3.10.0"
}
}

@ -30,6 +30,7 @@ export function setupMode(defaults: LanguageServiceDefaultsImpl): void {
monaco.languages.registerDocumentSymbolProvider(languageId, new languageFeatures.DocumentSymbolAdapter(worker));
monaco.languages.registerRenameProvider(languageId, new languageFeatures.RenameAdapter(worker));
monaco.languages.registerColorProvider(languageId, new languageFeatures.DocumentColorAdapter(worker));
monaco.languages.registerFoldingRangeProvider(languageId, new languageFeatures.FoldingRangeAdapter(worker));
new languageFeatures.DiagnosticsAdapter(languageId, worker, defaults);
}

@ -104,6 +104,11 @@ export class CSSWorker {
let colorPresentations = this._languageService.getColorPresentations(document, stylesheet, color, range);
return Promise.as(colorPresentations);
}
provideFoldingRanges(uri: string, context?: { rangeLimit?: number; }): Promise<cssService.FoldingRange[]> {
let document = this._getTextDocument(uri);
let ranges = this._languageService.getFoldingRanges(document, context);
return Promise.as(ranges);
}
doRename(uri: string, position: ls.Position, newName: string): Promise<ls.WorkspaceEdit> {
let document = this._getTextDocument(uri);
let stylesheet = this._languageService.parseStylesheet(document);

@ -517,6 +517,43 @@ export class DocumentColorAdapter implements monaco.languages.DocumentColorProvi
}
}
export class FoldingRangeAdapter implements monaco.languages.FoldingRangeProvider {
constructor(private _worker: WorkerAccessor) {
}
public provideFoldingRanges(model: monaco.editor.IReadOnlyModel, context: monaco.languages.FoldingContext, token: CancellationToken): Thenable<monaco.languages.FoldingRange[]> {
const resource = model.uri;
return wireCancellationToken(token, this._worker(resource).then(worker => worker.provideFoldingRanges(resource.toString(), context)).then(ranges => {
if (!ranges) {
return;
}
return ranges.map(range => {
let result: monaco.languages.FoldingRange = {
start: range.startLine,
end: range.endLine
};
if (typeof range.kind !== 'undefined') {
result.kind = toFoldingRangeKind(<ls.FoldingRangeKind>range.kind);
}
return result;
});
}));
}
}
function toFoldingRangeKind(kind: ls.FoldingRangeKind): monaco.languages.FoldingRangeKind {
switch (kind) {
case ls.FoldingRangeKind.Comment: return monaco.languages.FoldingRangeKind.Comment;
case ls.FoldingRangeKind.Imports: return monaco.languages.FoldingRangeKind.Imports;
case ls.FoldingRangeKind.Region: return monaco.languages.FoldingRangeKind.Region;
}
return void 0;
}
/**
* Hook a cancellation token to a WinJS Promise
*/

Loading…
Cancel
Save