Merge pull request #113 from remcohaszing/constant-language-id

Extract languageId into constants
This commit is contained in:
Remco Haszing 2021-10-02 16:15:47 +02:00 committed by GitHub
commit 9987fbc7d5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 14 additions and 21 deletions

1
src/constants.ts Normal file
View file

@ -0,0 +1 @@
export const languageId = 'yaml';

View file

@ -11,6 +11,7 @@ import {
import * as ls from 'vscode-languageserver-types'; import * as ls from 'vscode-languageserver-types';
import { CustomFormatterOptions } from 'yaml-language-server/lib/esm/languageservice/yamlLanguageService'; import { CustomFormatterOptions } from 'yaml-language-server/lib/esm/languageservice/yamlLanguageService';
import { languageId } from './constants';
import { YAMLWorker } from './yamlWorker'; import { YAMLWorker } from './yamlWorker';
export type WorkerAccessor = (...more: Uri[]) => PromiseLike<YAMLWorker>; export type WorkerAccessor = (...more: Uri[]) => PromiseLike<YAMLWorker>;
@ -46,7 +47,6 @@ function toDiagnostics(diag: ls.Diagnostic): editor.IMarkerData {
} }
export function createDiagnosticsAdapter( export function createDiagnosticsAdapter(
languageId: string,
getWorker: WorkerAccessor, getWorker: WorkerAccessor,
defaults: languages.yaml.LanguageServiceDefaults, defaults: languages.yaml.LanguageServiceDefaults,
): void { ): void {
@ -57,7 +57,7 @@ export function createDiagnosticsAdapter(
worker.resetSchema(String(resource)); worker.resetSchema(String(resource));
}; };
const doValidate = async (resource: Uri, languageId: string): Promise<void> => { const doValidate = async (resource: Uri): Promise<void> => {
const worker = await getWorker(resource); const worker = await getWorker(resource);
const diagnostics = await worker.doValidation(String(resource)); const diagnostics = await worker.doValidation(String(resource));
const markers = diagnostics.map(toDiagnostics); const markers = diagnostics.map(toDiagnostics);
@ -70,8 +70,7 @@ export function createDiagnosticsAdapter(
}; };
const onModelAdd = (model: editor.IModel): void => { const onModelAdd = (model: editor.IModel): void => {
const modeId = model.getModeId(); if (model.getModeId() !== languageId) {
if (modeId !== languageId) {
return; return;
} }
@ -80,11 +79,11 @@ export function createDiagnosticsAdapter(
String(model.uri), String(model.uri),
model.onDidChangeContent(() => { model.onDidChangeContent(() => {
clearTimeout(handle); clearTimeout(handle);
handle = setTimeout(() => doValidate(model.uri, modeId), 500); handle = setTimeout(() => doValidate(model.uri), 500);
}), }),
); );
doValidate(model.uri, modeId); doValidate(model.uri);
}; };
const onModelRemoved = (model: editor.IModel): void => { const onModelRemoved = (model: editor.IModel): void => {

View file

@ -1,11 +1,11 @@
import { Emitter, languages } from 'monaco-editor/esm/vs/editor/editor.api'; import { Emitter, languages } from 'monaco-editor/esm/vs/editor/editor.api';
import { languageId } from './constants';
import { setupMode } from './yamlMode'; import { setupMode } from './yamlMode';
// --- YAML configuration and defaults --------- // --- YAML configuration and defaults ---------
export function createLanguageServiceDefaults( export function createLanguageServiceDefaults(
languageId: string,
initialDiagnosticsOptions: languages.yaml.DiagnosticsOptions, initialDiagnosticsOptions: languages.yaml.DiagnosticsOptions,
): languages.yaml.LanguageServiceDefaults { ): languages.yaml.LanguageServiceDefaults {
const onDidChange = new Emitter<languages.yaml.LanguageServiceDefaults>(); const onDidChange = new Emitter<languages.yaml.LanguageServiceDefaults>();
@ -39,7 +39,7 @@ const diagnosticDefault: languages.yaml.DiagnosticsOptions = {
enableSchemaRequest: false, enableSchemaRequest: false,
}; };
const yamlDefaults = createLanguageServiceDefaults('yaml', diagnosticDefault); const yamlDefaults = createLanguageServiceDefaults(diagnosticDefault);
// Export API // Export API
function createAPI(): typeof languages.yaml { function createAPI(): typeof languages.yaml {
@ -52,7 +52,7 @@ languages.yaml = createAPI();
// --- Registration to monaco editor --- // --- Registration to monaco editor ---
languages.register({ languages.register({
id: 'yaml', id: languageId,
extensions: ['.yaml', '.yml'], extensions: ['.yaml', '.yml'],
aliases: ['YAML', 'yaml', 'YML', 'yml'], aliases: ['YAML', 'yaml', 'YML', 'yml'],
mimetypes: ['application/x-yaml'], mimetypes: ['application/x-yaml'],

View file

@ -47,7 +47,6 @@ export function createWorkerManager(
// Passed in to the create() method // Passed in to the create() method
createData: { createData: {
languageSettings: defaults.diagnosticsOptions, languageSettings: defaults.diagnosticsOptions,
languageId: defaults.languageId,
enableSchemaRequest: defaults.diagnosticsOptions.enableSchemaRequest, enableSchemaRequest: defaults.diagnosticsOptions.enableSchemaRequest,
prefix: defaults.diagnosticsOptions.prefix, prefix: defaults.diagnosticsOptions.prefix,
isKubernetes: defaults.diagnosticsOptions.isKubernetes, isKubernetes: defaults.diagnosticsOptions.isKubernetes,

View file

@ -1,5 +1,6 @@
import { languages } from 'monaco-editor/esm/vs/editor/editor.api'; import { languages } from 'monaco-editor/esm/vs/editor/editor.api';
import { languageId } from './constants';
import { import {
createCompletionItemProvider, createCompletionItemProvider,
createDiagnosticsAdapter, createDiagnosticsAdapter,
@ -45,8 +46,6 @@ const richEditConfiguration: languages.LanguageConfiguration = {
export function setupMode(defaults: languages.yaml.LanguageServiceDefaults): void { export function setupMode(defaults: languages.yaml.LanguageServiceDefaults): void {
const worker = createWorkerManager(defaults); const worker = createWorkerManager(defaults);
const { languageId } = defaults;
languages.registerCompletionItemProvider(languageId, createCompletionItemProvider(worker)); languages.registerCompletionItemProvider(languageId, createCompletionItemProvider(worker));
languages.registerHoverProvider(languageId, createHoverProvider(worker)); languages.registerHoverProvider(languageId, createHoverProvider(worker));
languages.registerDocumentSymbolProvider(languageId, createDocumentSymbolProvider(worker)); languages.registerDocumentSymbolProvider(languageId, createDocumentSymbolProvider(worker));
@ -55,6 +54,6 @@ export function setupMode(defaults: languages.yaml.LanguageServiceDefaults): voi
createDocumentFormattingEditProvider(worker), createDocumentFormattingEditProvider(worker),
); );
languages.registerLinkProvider(languageId, createLinkProvider(worker)); languages.registerLinkProvider(languageId, createLinkProvider(worker));
createDiagnosticsAdapter(languageId, worker, defaults); createDiagnosticsAdapter(worker, defaults);
languages.setLanguageConfiguration(languageId, richEditConfiguration); languages.setLanguageConfiguration(languageId, richEditConfiguration);
} }

View file

@ -8,6 +8,8 @@ import {
LanguageSettings, LanguageSettings,
} from 'yaml-language-server/lib/esm/languageservice/yamlLanguageService'; } from 'yaml-language-server/lib/esm/languageservice/yamlLanguageService';
import { languageId } from './constants';
let defaultSchemaRequestService: (url: string) => Promise<string>; let defaultSchemaRequestService: (url: string) => Promise<string>;
if (typeof fetch !== 'undefined') { if (typeof fetch !== 'undefined') {
@ -32,13 +34,7 @@ export interface YAMLWorker {
export function createYAMLWorker( export function createYAMLWorker(
ctx: worker.IWorkerContext, ctx: worker.IWorkerContext,
{ { enableSchemaRequest, isKubernetes = false, languageSettings, prefix = '' }: ICreateData,
enableSchemaRequest,
isKubernetes = false,
languageId,
languageSettings,
prefix = '',
}: ICreateData,
): YAMLWorker { ): YAMLWorker {
const service = (url: string): Promise<string> => defaultSchemaRequestService(`${prefix}${url}`); const service = (url: string): Promise<string> => defaultSchemaRequestService(`${prefix}${url}`);
const languageService = getLanguageService(enableSchemaRequest && service, null, null, null); const languageService = getLanguageService(enableSchemaRequest && service, null, null, null);
@ -99,7 +95,6 @@ export function createYAMLWorker(
} }
export interface ICreateData { export interface ICreateData {
languageId: string;
languageSettings: LanguageSettings; languageSettings: LanguageSettings;
enableSchemaRequest: boolean; enableSchemaRequest: boolean;
prefix?: string; prefix?: string;