UNPKG

fish-lsp

Version:

LSP implementation for fish/fish-shell

75 lines (74 loc) 3.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FishKindGroups = exports.symbolKindToString = exports.fromFishSymbolKindToSymbolKind = exports.FishSymbolKind = exports.getSymbolKindToString = exports.createSymbolKindLookup = exports.fishSymbolKindToSymbolKind = exports.FishSymbolKindMap = void 0; const vscode_languageserver_1 = require("vscode-languageserver"); exports.FishSymbolKindMap = { ['argparse']: 'ARGPARSE', ['function']: 'FUNCTION', ['alias']: 'ALIAS', ['complete']: 'COMPLETE', ['set']: 'SET', ['read']: 'READ', ['for']: 'FOR', ['variable']: 'VARIABLE', ['event']: 'EVENT', ['function_variable']: 'FUNCTION_VARIABLE', ['function_event']: 'FUNCTION_EVENT', ['export']: 'EXPORT', }; exports.fishSymbolKindToSymbolKind = { ['ARGPARSE']: vscode_languageserver_1.SymbolKind.Variable, ['FUNCTION']: vscode_languageserver_1.SymbolKind.Function, ['ALIAS']: vscode_languageserver_1.SymbolKind.Function, ['COMPLETE']: vscode_languageserver_1.SymbolKind.Interface, ['SET']: vscode_languageserver_1.SymbolKind.Variable, ['READ']: vscode_languageserver_1.SymbolKind.Variable, ['FOR']: vscode_languageserver_1.SymbolKind.Variable, ['VARIABLE']: vscode_languageserver_1.SymbolKind.Variable, ['FUNCTION_VARIABLE']: vscode_languageserver_1.SymbolKind.Variable, ['EVENT']: vscode_languageserver_1.SymbolKind.Event, ['FUNCTION_EVENT']: vscode_languageserver_1.SymbolKind.Event, ['EXPORT']: vscode_languageserver_1.SymbolKind.Variable, }; const createSymbolKindLookup = () => { const lookup = {}; for (const [key, value] of Object.entries(vscode_languageserver_1.SymbolKind)) { if (typeof value === 'number') { lookup[value] = key; } } return lookup; }; exports.createSymbolKindLookup = createSymbolKindLookup; const symbolKindToStringMap = (0, exports.createSymbolKindLookup)(); const getSymbolKindToString = (kind) => { return symbolKindToStringMap[kind] || 'Unknown'; }; exports.getSymbolKindToString = getSymbolKindToString; var FishSymbolKind; (function (FishSymbolKind) { FishSymbolKind.is = (kind) => { if (typeof kind !== 'string') return false; return Object.keys(exports.FishSymbolKindMap).includes(kind.toLowerCase()); }; FishSymbolKind.toSymbolKindStr = (kind) => { return exports.fishSymbolKindToSymbolKind[kind]?.toString(); }; })(FishSymbolKind || (exports.FishSymbolKind = FishSymbolKind = {})); const fromFishSymbolKindToSymbolKind = (kind) => exports.fishSymbolKindToSymbolKind[kind]; exports.fromFishSymbolKindToSymbolKind = fromFishSymbolKindToSymbolKind; const symbolKindToString = (kind) => { if (FishSymbolKind.is(kind)) { return FishSymbolKind.toSymbolKindStr(kind); } return (0, exports.getSymbolKindToString)(kind); }; exports.symbolKindToString = symbolKindToString; exports.FishKindGroups = { VARIABLES: ['ARGPARSE', 'SET', 'READ', 'FOR', 'VARIABLE', 'FUNCTION_VARIABLE', 'EXPORT'], FUNCTIONS: ['FUNCTION', 'ALIAS'], EVENTS: ['EVENT', 'FUNCTION_EVENT'], ARGPARSE: ['ARGPARSE'], OTHER: ['COMPLETE'], };