Contribute to html language server with a custom language. (#146731)

* Contribute to html language server with a custom language.

Fixes #146730

Signed-off-by: azerr <azerr@redhat.com>

* refactor out LanguageParticipants

* restart client on language selector change

* htmlLanguage -> htmlLanguageParticipants

* tune autoInsert wording

* tune autoInsert description

Co-authored-by: azerr <azerr@redhat.com>
Co-authored-by: Martin Aeschlimann <martinae@microsoft.com>
This commit is contained in:
Angelo
2022-07-21 13:19:01 +02:00
committed by GitHub
parent 6cad4b9494
commit cef02dae8d
10 changed files with 205 additions and 41 deletions

View File

@@ -5,8 +5,9 @@
import { window, workspace, Disposable, TextDocument, Position, SnippetString, TextDocumentChangeEvent, TextDocumentChangeReason, TextDocumentContentChangeEvent } from 'vscode';
import { Runtime } from './htmlClient';
import { LanguageParticipants } from './languageParticipants';
export function activateAutoInsertion(provider: (kind: 'autoQuote' | 'autoClose', document: TextDocument, position: Position) => Thenable<string>, supportedLanguages: { [id: string]: boolean }, runtime: Runtime): Disposable {
export function activateAutoInsertion(provider: (kind: 'autoQuote' | 'autoClose', document: TextDocument, position: Position) => Thenable<string>, languageParticipants: LanguageParticipants, runtime: Runtime): Disposable {
const disposables: Disposable[] = [];
workspace.onDidChangeTextDocument(onDidChangeTextDocument, null, disposables);
@@ -33,7 +34,7 @@ export function activateAutoInsertion(provider: (kind: 'autoQuote' | 'autoClose'
return;
}
const document = editor.document;
if (!supportedLanguages[document.languageId]) {
if (!languageParticipants.useAutoInsert(document.languageId)) {
return;
}
const configurations = workspace.getConfiguration(undefined, document.uri);