mirror of
https://github.com/microsoft/monaco-editor.git
synced 2025-12-22 13:55:41 +01:00
refresh decorations after new setDiagnosticsOptions have been applied. fixes Microsoft/monaco-editor#755
This commit is contained in:
parent
427abfc518
commit
d806983671
2 changed files with 20 additions and 7 deletions
|
|
@ -27,12 +27,16 @@ export function setupMode(defaults: LanguageServiceDefaultsImpl): void {
|
||||||
|
|
||||||
let languageId = defaults.languageId;
|
let languageId = defaults.languageId;
|
||||||
|
|
||||||
|
let diagnostcsAdapter = new languageFeatures.DiagnostcsAdapter(languageId, worker);
|
||||||
|
defaults.onDidChange(c => diagnostcsAdapter.clearMarkers());
|
||||||
|
|
||||||
|
|
||||||
disposables.push(monaco.languages.registerCompletionItemProvider(languageId, new languageFeatures.CompletionAdapter(worker)));
|
disposables.push(monaco.languages.registerCompletionItemProvider(languageId, new languageFeatures.CompletionAdapter(worker)));
|
||||||
disposables.push(monaco.languages.registerHoverProvider(languageId, new languageFeatures.HoverAdapter(worker)));
|
disposables.push(monaco.languages.registerHoverProvider(languageId, new languageFeatures.HoverAdapter(worker)));
|
||||||
disposables.push(monaco.languages.registerDocumentSymbolProvider(languageId, new languageFeatures.DocumentSymbolAdapter(worker)));
|
disposables.push(monaco.languages.registerDocumentSymbolProvider(languageId, new languageFeatures.DocumentSymbolAdapter(worker)));
|
||||||
disposables.push(monaco.languages.registerDocumentFormattingEditProvider(languageId, new languageFeatures.DocumentFormattingEditProvider(worker)));
|
disposables.push(monaco.languages.registerDocumentFormattingEditProvider(languageId, new languageFeatures.DocumentFormattingEditProvider(worker)));
|
||||||
disposables.push(monaco.languages.registerDocumentRangeFormattingEditProvider(languageId, new languageFeatures.DocumentRangeFormattingEditProvider(worker)));
|
disposables.push(monaco.languages.registerDocumentRangeFormattingEditProvider(languageId, new languageFeatures.DocumentRangeFormattingEditProvider(worker)));
|
||||||
disposables.push(new languageFeatures.DiagnostcsAdapter(languageId, worker));
|
disposables.push(diagnostcsAdapter);
|
||||||
disposables.push(monaco.languages.setTokensProvider(languageId, createTokenizationSupport(true)));
|
disposables.push(monaco.languages.setTokensProvider(languageId, createTokenizationSupport(true)));
|
||||||
disposables.push(monaco.languages.setLanguageConfiguration(languageId, richEditConfiguration));
|
disposables.push(monaco.languages.setLanguageConfiguration(languageId, richEditConfiguration));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,8 @@
|
||||||
*--------------------------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------------------------*/
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import {LanguageServiceDefaultsImpl} from './monaco.contribution';
|
import { LanguageServiceDefaultsImpl } from './monaco.contribution';
|
||||||
import {JSONWorker} from './jsonWorker';
|
import { JSONWorker } from './jsonWorker';
|
||||||
|
|
||||||
import * as ls from 'vscode-languageserver-types';
|
import * as ls from 'vscode-languageserver-types';
|
||||||
|
|
||||||
|
|
@ -68,6 +68,7 @@ export class DiagnostcsAdapter {
|
||||||
|
|
||||||
this._disposables.push({
|
this._disposables.push({
|
||||||
dispose: () => {
|
dispose: () => {
|
||||||
|
monaco.editor.getModels().forEach(onModelRemoved);
|
||||||
for (let key in this._listener) {
|
for (let key in this._listener) {
|
||||||
this._listener[key].dispose();
|
this._listener[key].dispose();
|
||||||
}
|
}
|
||||||
|
|
@ -82,6 +83,14 @@ export class DiagnostcsAdapter {
|
||||||
this._disposables = [];
|
this._disposables = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public clearMarkers() {
|
||||||
|
monaco.editor.getModels().forEach(model => {
|
||||||
|
if (model.getModeId() === this._languageId) {
|
||||||
|
monaco.editor.setModelMarkers(model, this._languageId, []);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
private _resetSchema(resource: Uri): void {
|
private _resetSchema(resource: Uri): void {
|
||||||
this._worker().then(worker => {
|
this._worker().then(worker => {
|
||||||
worker.resetSchema(resource.toString());
|
worker.resetSchema(resource.toString());
|
||||||
|
|
@ -241,7 +250,7 @@ function fromMarkdownString(entry: string | monaco.IMarkdownString): ls.MarkupCo
|
||||||
}
|
}
|
||||||
|
|
||||||
function fromCompletionItem(entry: DataCompletionItem): ls.CompletionItem {
|
function fromCompletionItem(entry: DataCompletionItem): ls.CompletionItem {
|
||||||
let item : ls.CompletionItem = {
|
let item: ls.CompletionItem = {
|
||||||
label: entry.label,
|
label: entry.label,
|
||||||
sortText: entry.sortText,
|
sortText: entry.sortText,
|
||||||
filterText: entry.filterText,
|
filterText: entry.filterText,
|
||||||
|
|
@ -254,7 +263,7 @@ function fromCompletionItem(entry: DataCompletionItem): ls.CompletionItem {
|
||||||
item.insertText = entry.insertText.value;
|
item.insertText = entry.insertText.value;
|
||||||
item.insertTextFormat = ls.InsertTextFormat.Snippet
|
item.insertTextFormat = ls.InsertTextFormat.Snippet
|
||||||
} else {
|
} else {
|
||||||
item.insertText = <string> entry.insertText;
|
item.insertText = <string>entry.insertText;
|
||||||
}
|
}
|
||||||
if (entry.range) {
|
if (entry.range) {
|
||||||
item.textEdit = ls.TextEdit.replace(fromRange(entry.range), item.insertText);
|
item.textEdit = ls.TextEdit.replace(fromRange(entry.range), item.insertText);
|
||||||
|
|
@ -283,7 +292,7 @@ export class CompletionAdapter implements monaco.languages.CompletionItemProvide
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let items: monaco.languages.CompletionItem[] = info.items.map(entry => {
|
let items: monaco.languages.CompletionItem[] = info.items.map(entry => {
|
||||||
let item : monaco.languages.CompletionItem = {
|
let item: monaco.languages.CompletionItem = {
|
||||||
label: entry.label,
|
label: entry.label,
|
||||||
insertText: entry.insertText,
|
insertText: entry.insertText,
|
||||||
sortText: entry.sortText,
|
sortText: entry.sortText,
|
||||||
|
|
@ -297,7 +306,7 @@ export class CompletionAdapter implements monaco.languages.CompletionItemProvide
|
||||||
item.insertText = entry.textEdit.newText;
|
item.insertText = entry.textEdit.newText;
|
||||||
}
|
}
|
||||||
if (entry.insertTextFormat === ls.InsertTextFormat.Snippet) {
|
if (entry.insertTextFormat === ls.InsertTextFormat.Snippet) {
|
||||||
item.insertText = { value: <string> item.insertText };
|
item.insertText = { value: <string>item.insertText };
|
||||||
}
|
}
|
||||||
return item;
|
return item;
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue