UNPKG

@glint/core

Version:

A CLI for performing typechecking on Glimmer templates

103 lines 4.42 kB
import { CompletionItemKind, DiagnosticSeverity, DiagnosticTag, SymbolKind, } from 'vscode-languageserver'; /* * This module contains utilities for converting between conventions used * by the Language Server Protocol and TypeScript's language services interface. */ export function scriptElementKindToCompletionItemKind(ts, kind) { switch (kind) { case ts.ScriptElementKind.primitiveType: case ts.ScriptElementKind.keyword: return CompletionItemKind.Keyword; case ts.ScriptElementKind.variableElement: case ts.ScriptElementKind.localVariableElement: case ts.ScriptElementKind.letElement: case ts.ScriptElementKind.constElement: case ts.ScriptElementKind.alias: case ts.ScriptElementKind.parameterElement: return CompletionItemKind.Variable; case ts.ScriptElementKind.memberVariableElement: case ts.ScriptElementKind.memberGetAccessorElement: case ts.ScriptElementKind.memberSetAccessorElement: return CompletionItemKind.Field; case ts.ScriptElementKind.functionElement: case ts.ScriptElementKind.memberFunctionElement: case ts.ScriptElementKind.constructSignatureElement: case ts.ScriptElementKind.callSignatureElement: case ts.ScriptElementKind.indexSignatureElement: return CompletionItemKind.Function; case ts.ScriptElementKind.enumElement: return CompletionItemKind.Enum; case ts.ScriptElementKind.moduleElement: return CompletionItemKind.Module; case ts.ScriptElementKind.classElement: return CompletionItemKind.Class; case ts.ScriptElementKind.interfaceElement: return CompletionItemKind.Interface; case ts.ScriptElementKind.warning: case ts.ScriptElementKind.scriptElement: return CompletionItemKind.File; case ts.ScriptElementKind.directory: return CompletionItemKind.Folder; case ts.ScriptElementKind.jsxAttribute: return CompletionItemKind.Property; default: return CompletionItemKind.Text; } } export function scriptElementKindToSymbolKind(ts, kind) { switch (kind) { case ts.ScriptElementKind.memberVariableElement: case ts.ScriptElementKind.indexSignatureElement: return SymbolKind.Field; case ts.ScriptElementKind.memberGetAccessorElement: case ts.ScriptElementKind.memberSetAccessorElement: case ts.ScriptElementKind.memberFunctionElement: return SymbolKind.Method; case ts.ScriptElementKind.functionElement: case ts.ScriptElementKind.localFunctionElement: case ts.ScriptElementKind.constructSignatureElement: case ts.ScriptElementKind.callSignatureElement: return SymbolKind.Function; case ts.ScriptElementKind.enumElement: return SymbolKind.Enum; case ts.ScriptElementKind.moduleElement: return SymbolKind.Module; case ts.ScriptElementKind.classElement: case ts.ScriptElementKind.localClassElement: return SymbolKind.Class; case ts.ScriptElementKind.interfaceElement: return SymbolKind.Interface; case ts.ScriptElementKind.scriptElement: return SymbolKind.File; case ts.ScriptElementKind.jsxAttribute: return SymbolKind.Property; case ts.ScriptElementKind.constElement: case ts.ScriptElementKind.enumMemberElement: return SymbolKind.Constant; default: return SymbolKind.Variable; } } export function tagsForDiagnostic(diagnostic) { let tags = []; if (diagnostic.reportsUnnecessary) { tags.push(DiagnosticTag.Unnecessary); } if (diagnostic.reportsDeprecated) { tags.push(DiagnosticTag.Deprecated); } return tags; } export function severityForDiagnostic(ts, diagnostic) { switch (diagnostic.category) { case ts.DiagnosticCategory.Error: return DiagnosticSeverity.Error; case ts.DiagnosticCategory.Message: return DiagnosticSeverity.Information; case ts.DiagnosticCategory.Suggestion: return DiagnosticSeverity.Hint; case ts.DiagnosticCategory.Warning: return DiagnosticSeverity.Warning; } } //# sourceMappingURL=protocol.js.map