SYMBOL INDEX (2128 symbols across 143 files) FILE: scripts/esbuild/cli.ts type BuildArgs (line 5) | interface BuildArgs { function parseArgs (line 19) | function parseArgs(): BuildArgs { function showHelp (line 97) | function showHelp(): void { function showCompletions (line 148) | function showCompletions(): void { FILE: scripts/esbuild/colors.ts function toRelativePath (line 6) | function toRelativePath(filePath: string): string { function colorize (line 44) | function colorize(text: string, color: string): string { function enableColors (line 112) | function enableColors() { type String (line 127) | interface String { FILE: scripts/esbuild/configs.ts type BuildConfig (line 7) | interface BuildConfig extends esbuild.BuildOptions { function createBuildOptions (line 112) | function createBuildOptions(config: BuildConfig, production = false, sou... FILE: scripts/esbuild/file-watcher.ts function killProcessTree (line 8) | function killProcessTree(pid: number, signal: string = 'SIGTERM'): void { type BuildTrigger (line 77) | type BuildTrigger = 'file-change' | 'manual' | 'mode-switch'; class BuildManager (line 79) | class BuildManager { method runBuild (line 85) | async runBuild(type: WatchMode, trigger: BuildTrigger): Promise { method executeCommand (line 114) | private executeCommand(args: string[]): Promise { method showCompletionMessage (line 153) | private showCompletionMessage(type: WatchMode, trigger: BuildTrigger, ... method cancel (line 181) | cancel(): boolean { method building (line 210) | get building(): boolean { method mode (line 214) | get mode(): WatchMode { method setMode (line 218) | setMode(mode: WatchMode): void { type WatchConfig (line 228) | interface WatchConfig { class FileWatcher (line 234) | class FileWatcher { method constructor (line 241) | constructor(config: WatchConfig, buildManager: BuildManager) { method start (line 246) | start(): void { method handleFileChange (line 324) | private handleFileChange(event: string, filePath: string): void { method showWatchedPaths (line 341) | showWatchedPaths(): void { method stop (line 378) | stop(): void { class KeyboardHandler (line 402) | class KeyboardHandler { method constructor (line 407) | constructor(buildManager: BuildManager, fileWatcher: FileWatcher) { method setup (line 412) | setup(): void { method handleKeyPress (line 423) | private async handleKeyPress(key: string): Promise { method showModeSelection (line 476) | private async showModeSelection(): Promise { method exit (line 524) | private exit(): void { function startFileWatcher (line 544) | async function startFileWatcher(initialMode: WatchMode = 'dev'): Promise... FILE: scripts/esbuild/index.ts function build (line 8) | async function build(_customArgs?: string[]): Promise { FILE: scripts/esbuild/pipeline.ts type BuildStep (line 9) | interface BuildStep { class BuildPipeline (line 19) | class BuildPipeline { method register (line 22) | register(step: BuildStep): this { method execute (line 27) | async execute(target: string, args: BuildArgs): Promise { method getStepsForTarget (line 65) | getStepsForTarget(target: string, args: BuildArgs): BuildStep[] { method getAllSteps (line 78) | getAllSteps(): ReadonlyArray { method hasTarget (line 83) | hasTarget(target: string): boolean { FILE: scripts/esbuild/plugins.ts type PluginOptions (line 14) | interface PluginOptions { function createPlugins (line 21) | function createPlugins(options: PluginOptions): esbuild.Plugin[] { function createDefines (line 157) | function createDefines(target: 'node' | 'browser' | string, production =... function createSourceMapOptimizationPlugin (line 206) | function createSourceMapOptimizationPlugin(preserveSourceContent?: boole... function createSpecialSourceMapPlugin (line 262) | function createSpecialSourceMapPlugin(options: { preserveOnlySrcContent?... function createWasmPlugin (line 359) | function createWasmPlugin(): Plugin { FILE: scripts/esbuild/types.ts type BuildConfigTarget (line 6) | type BuildConfigTarget = 'binary' | 'development' | 'npm'; type MetaTarget (line 11) | type MetaTarget = 'all' | 'types' | 'library' | 'test' | 'ci' | 'fresh' ... type BuildTarget (line 16) | type BuildTarget = BuildConfigTarget | MetaTarget; type WatchMode (line 21) | type WatchMode = 'dev' | 'binary' | 'npm' | 'types' | 'all' | 'lint' | '... type SourcemapMode (line 26) | type SourcemapMode = 'optimized' | 'extended' | 'none' | 'special'; type TargetInfo (line 32) | interface TargetInfo { function create (line 48) | function create( function letterKey (line 74) | function letterKey(info: TargetInfo): string | undefined { function quickModeSummary (line 79) | function quickModeSummary(items: readonly TargetInfo[]): string { function helpEntry (line 84) | function helpEntry(info: TargetInfo): { key: string; color: string; text... constant VALID_WATCH_MODES (line 115) | const VALID_WATCH_MODES: readonly string[] = targets.map(t => t.name); constant VALID_SOURCEMAP_MODES (line 116) | const VALID_SOURCEMAP_MODES: readonly SourcemapMode[] = ['optimized', 'e... function findTarget (line 123) | function findTarget(nameOrKey: string): TargetInfo | undefined { function getTarget (line 132) | function getTarget(name: string): TargetInfo { FILE: scripts/esbuild/utils.ts function copyDevelopmentAssets (line 10) | function copyDevelopmentAssets(): void { function ensureDirectoryExists (line 17) | function ensureDirectoryExists(dirPath: string): void { function formatBytes (line 22) | function formatBytes(bytes: number): string { function makeExecutable (line 26) | function makeExecutable(filePath: string): void { function showBuildStats (line 35) | function showBuildStats(filePath: string, label = 'Bundle'): void { function showDirectorySize (line 44) | function showDirectorySize(dirPath: string, label?: string): void { function isFileEmpty (line 65) | function isFileEmpty(filePath: string): boolean { function generateTypeDeclarations (line 74) | function generateTypeDeclarations(): void { FILE: scripts/fish-commands-scrapper.ts type FishCommand (line 9) | interface FishCommand { type FishFunctionDefinition (line 14) | interface FishFunctionDefinition { type DatasetType (line 51) | type DatasetType = keyof typeof datasetConfig; function printHelp (line 79) | function printHelp() { function printCompletions (line 121) | function printCompletions() { function fetchFishCommands (line 308) | async function fetchFishCommands(): Promise { function fetchSpecialVariables (line 346) | async function fetchSpecialVariables(...keys: ('special-variables' | 'en... function stripQuotes (line 441) | function stripQuotes(value: string): string { function tokenizeDefinition (line 449) | function tokenizeDefinition(line: string): string[] { function parseFunctionLine (line 491) | function parseFunctionLine(line: string): { name: string; flags: string[... function resolveFishDataDir (line 516) | function resolveFishDataDir(): string | null { function fetchFishFunctions (line 541) | async function fetchFishFunctions(): Promise { function fetchDataset (line 572) | async function fetchDataset(target: DatasetType): Promise & { root: Synta... class AnalyzedDocument (line 72) | class AnalyzedDocument { method constructor (line 89) | private constructor( method create (line 144) | private static create( method createFull (line 177) | public static createFull( method createPartial (line 216) | public static createPartial(document: LspDocument): AnalyzedDocument { method isPartial (line 225) | public isPartial(): boolean { method isFull (line 233) | public isFull(): boolean { method ensureParsed (line 237) | public ensureParsed(): EnsuredAnalyzeDocument { class Analyzer (line 280) | class Analyzer { method constructor (line 301) | constructor(public parser: Parser) { } method initialize (line 347) | public static async initialize(): Promise { method analyze (line 362) | public analyze(document: LspDocument): AnalyzedDocument { method removeDocumentSymbols (line 379) | public removeDocumentSymbols(uri: string): void { method analyzeUri (line 388) | public analyzeUri(uri: DocumentUri): AnalyzedDocument | undefined { method analyzePath (line 406) | public analyzePath(rawFilePath: string): AnalyzedDocument | undefined { method analyzePartial (line 436) | public analyzePartial(document: LspDocument): AnalyzedDocument { method getAnalyzedDocument (line 456) | private getAnalyzedDocument(document: LspDocument): AnalyzedDocument { method analyzeWorkspace (line 472) | public async analyzeWorkspace( method getSymbolAtLocation (line 543) | public getSymbolAtLocation(location: Location): FishSymbol | undefined { method findDocumentSymbol (line 551) | public findDocumentSymbol( method findDocumentSymbols (line 564) | public findDocumentSymbols( method findSymbol (line 578) | public findSymbol( method findSymbols (line 595) | public findSymbols( method findNode (line 613) | public findNode( method findNodes (line 632) | public findNodes( method findDocumentsGen (line 655) | public * findDocumentsGen(): Generator { method findSymbolsGen (line 668) | public * findSymbolsGen(): Generator<{ document: LspDocument; symbols:... method findNodesGen (line 682) | public * findNodesGen(): Generator<{ document: LspDocument; nodes: Gen... method allSymbolsAccessibleAtPosition (line 703) | public allSymbolsAccessibleAtPosition(document: LspDocument, position:... method getWorkspaceSymbols (line 745) | public getWorkspaceSymbols(query: string = ''): WorkspaceSymbol[] { method getDefinitionHelper (line 759) | private getDefinitionHelper(document: LspDocument, position: Position)... method getDefinition (line 807) | public getDefinition(document: LspDocument, position: Position): FishS... method getDefinitionLocation (line 849) | public getDefinitionLocation(document: LspDocument, position: Position... method getImplementation (line 895) | public getImplementation(document: LspDocument, position: Position): L... method getSourceDefinitionLocation (line 905) | private getSourceDefinitionLocation(node: SyntaxNode, document: LspDoc... method getHover (line 931) | public getHover(document: LspDocument, position: Position): Hover | nu... method getTree (line 962) | getTree(documentUri: string): Tree | undefined { method getRootNode (line 980) | getRootNode(documentUri: string): SyntaxNode | undefined { method getDocument (line 994) | getDocument(documentUri: string): LspDocument | undefined { method getDocumentFromPath (line 1001) | getDocumentFromPath(path: string): LspDocument | undefined { method getDocumentSymbols (line 1010) | getDocumentSymbols(documentUri: string): FishSymbol[] { method getFlatDocumentSymbols (line 1018) | getFlatDocumentSymbols(documentUri: string): FishSymbol[] { method getFlatCompletionSymbols (line 1032) | getFlatCompletionSymbols(documentUri: string): CompletionSymbol[] { method nodesGen (line 1049) | public nodesGen(documentUri: string): { method getNodes (line 1070) | public getNodes(documentUri: string): SyntaxNode[] { method getNamedNodes (line 1081) | public getNamedNodes(documentUri: string): SyntaxNode[] { method collectSources (line 1096) | public collectSources( method collectReachableSources (line 1125) | public collectReachableSources(documentUri: string, position: Position... method collectAllSources (line 1160) | public collectAllSources(documentUri: string): Set { method collectSourcedSymbols (line 1177) | public collectSourcedSymbols(documentUri: string): FishSymbol[] { method allReachableSymbols (line 1220) | public allReachableSymbols(documentUri: string): FishSymbol[] { method parseCurrentLine (line 1248) | public parseCurrentLine( method wordAtPoint (line 1273) | public wordAtPoint( method nodeAtPoint (line 1296) | public nodeAtPoint( method commandNameAtPoint (line 1312) | public commandNameAtPoint( method commandAtPoint (line 1331) | public commandAtPoint( method getTextAtLocation (line 1347) | public getTextAtLocation(location: LSP.Location): string { method ensureCachedDocument (line 1356) | public ensureCachedDocument(doc: LspDocument): AnalyzedDocument { method getIterableUris (line 1366) | private getIterableUris(): DocumentUri[] { class GlobalDefinitionCache (line 1388) | class GlobalDefinitionCache { method constructor (line 1389) | constructor(private _definitions: Map = new Map(... method add (line 1390) | add(symbol: FishSymbol): void { method removeSymbolsByUri (line 1397) | removeSymbolsByUri(uri: string): void { method find (line 1407) | find(name: string): FishSymbol[] { method findFirst (line 1410) | findFirst(name: string): FishSymbol | undefined { method has (line 1417) | has(name: string): boolean { method uniqueSymbols (line 1420) | uniqueSymbols(): FishSymbol[] { method allSymbols (line 1430) | get allSymbols(): FishSymbol[] { method allNames (line 1437) | get allNames(): string[] { method map (line 1440) | get map(): Map { class AnalyzedDocumentCache (line 1461) | class AnalyzedDocumentCache { method constructor (line 1462) | constructor(private _documents: Map = new Map()... method uris (line 1463) | uris(): string[] { method setDocument (line 1466) | setDocument(uri: URI, analyzedDocument: AnalyzedDocument): void { method getDocument (line 1469) | getDocument(uri: URI): AnalyzedDocument | undefined { method hasUri (line 1475) | hasUri(uri: URI): boolean { method updateUri (line 1478) | updateUri(oldUri: URI, newUri: URI): void { method getDocumentSymbols (line 1485) | getDocumentSymbols(uri: URI): FishSymbol[] { method getFlatDocumentSymbols (line 1493) | getFlatDocumentSymbols(uri: URI): FishSymbol[] { method getCommands (line 1496) | getCommands(uri: URI): SyntaxNode[] { method getRootNode (line 1504) | getRootNode(uri: URI): Parser.SyntaxNode | undefined { method getParsedTree (line 1507) | getParsedTree(uri: URI): Parser.Tree | undefined { method getSymbolTree (line 1515) | getSymbolTree(uri: URI): FishSymbol[] { method getSources (line 1523) | getSources(uri: URI): Set { method getSourceNodes (line 1542) | getSourceNodes(uri: URI): SyntaxNode[] { method clear (line 1550) | clear(uri: URI) { function findCommandLocations (line 1555) | function findCommandLocations(cmd: string) { FILE: src/cli.ts function execCLI (line 452) | function execCLI() { FILE: src/code-actions/action-kinds.ts type SupportedCodeActionKinds (line 14) | type SupportedCodeActionKinds = typeof SupportedCodeActionKinds[keyof ty... FILE: src/code-actions/alias-wrapper.ts function extractFunctionName (line 25) | function extractFunctionName(node: SyntaxNode): string { function createAliasInlineAction (line 41) | async function createAliasInlineAction( function createVersionedDocument (line 70) | function createVersionedDocument(uri: string) { function createFunctionFileEdit (line 74) | function createFunctionFileEdit(functionUri: string, content: string) { function createRemoveAliasEdit (line 81) | function createRemoveAliasEdit(document: LspDocument, node: SyntaxNode) { function createAliasSaveActionNewFile (line 91) | async function createAliasSaveActionNewFile( FILE: src/code-actions/argparse-completions.ts type CompleteFlag (line 11) | type CompleteFlag = { function parseArgparseFlag (line 17) | function parseArgparseFlag(node: SyntaxNode): CompleteFlag { function findFlagsToComplete (line 39) | function findFlagsToComplete(node: SyntaxNode): CompleteFlag[] { function buildCompleteString (line 48) | function buildCompleteString(commandName: string, flags: CompleteFlag[])... function buildConfdCompletions (line 82) | function buildConfdCompletions( function getNodesForArgparse (line 134) | function getNodesForArgparse(selectedNode: SyntaxNode) { function createArgparseCompletionsCodeAction (line 166) | function createArgparseCompletionsCodeAction( FILE: src/code-actions/code-action-handler.ts function sortCodeActionsByKind (line 18) | function sortCodeActionsByKind(actions: CodeAction[]): CodeAction[] { function isSelection (line 38) | function isSelection(range: Range): boolean { function getParentCommandNodeForCodeAction (line 43) | function getParentCommandNodeForCodeAction(node: SyntaxNode | null): Syn... function createCodeActionHandler (line 48) | function createCodeActionHandler() { function equalDiagnostics (line 309) | function equalDiagnostics(d1: Diagnostic, d2: Diagnostic) { function createOnCodeActionResolveHandler (line 319) | function createOnCodeActionResolveHandler() { function codeActionHandlers (line 325) | function codeActionHandlers() { FILE: src/code-actions/combiner.ts function convertIfToCombinersString (line 28) | function convertIfToCombinersString(node: SyntaxNode) { function skipChildren (line 55) | function skipChildren(node: SyntaxNode, queue: SyntaxNode[]) { type BlockKeywordType (line 65) | type BlockKeywordType = 'if_statement' | 'else_if_clause' | 'else_clause'; type ConditionalBlock (line 89) | interface ConditionalBlock { function create (line 104) | function create(keyword: BlockKeywordType, body: SyntaxNode[] = []) { class StatementCombiner (line 117) | class StatementCombiner { method currentBlock (line 120) | get currentBlock(): undefined | ConditionalBlock { method newBlock (line 130) | newBlock(keywordType: 'if_statement' | 'else_if_clause' | 'else_clause... method appendCommand (line 147) | appendCommand(node: SyntaxNode) { method getCombinerFromKeyword (line 165) | private getCombinerFromKeyword(block: ConditionalBlock) { method buildBlockString (line 180) | private buildBlockString(block: ConditionalBlock) { method build (line 201) | build() { FILE: src/code-actions/disable-actions.ts type DiagnosticGroup (line 8) | interface DiagnosticGroup { function createDisableAction (line 14) | function createDisableAction( function handleDisableSingleLine (line 34) | function handleDisableSingleLine( function handleDisableBlock (line 55) | function handleDisableBlock( function groupDiagnostics (line 86) | function groupDiagnostics(diagnostics: Diagnostic[], maxGap: number = 1)... function handleDisableEntireFile (line 126) | function handleDisableEntireFile( function getDisableDiagnosticActions (line 192) | function getDisableDiagnosticActions( FILE: src/code-actions/quick-fixes.ts function createQuickFix (line 26) | function createQuickFix( function createFixAllAction (line 43) | function createFixAllAction( function getErrorNodeToken (line 110) | function getErrorNodeToken(node: SyntaxNode): string | undefined { function handleMissingEndFix (line 177) | function handleMissingEndFix( function findErrorCauseFromNode (line 219) | function findErrorCauseFromNode(errorNode: SyntaxNode): SyntaxNode | null { function getTokenInsertionData (line 242) | function getTokenInsertionData(errNode: SyntaxNode, closingToken: string... function handleExtraEndFix (line 282) | function handleExtraEndFix( function handleMissingQuietError (line 299) | function handleMissingQuietError( function handleZeroIndexedArray (line 323) | function handleZeroIndexedArray( function handleDotSourceCommand (line 343) | function handleDotSourceCommand( function handleUniversalVariable (line 363) | function handleUniversalVariable( function handleExternalShellCommandInsteadOfBuiltin (line 393) | function handleExternalShellCommandInsteadOfBuiltin( function handleSingleQuoteVarFix (line 431) | function handleSingleQuoteVarFix( function handleTestCommandVariableExpansionWithoutString (line 457) | function handleTestCommandVariableExpansionWithoutString( function handleMissingDefinition (line 473) | function handleMissingDefinition(diagnostic: Diagnostic, node: SyntaxNod... function handleFilenameMismatch (line 497) | function handleFilenameMismatch(diagnostic: Diagnostic, node: SyntaxNode... function handleCompletionFilenameMismatch (line 531) | function handleCompletionFilenameMismatch(diagnostic: Diagnostic, node: ... function handleReservedKeyword (line 564) | function handleReservedKeyword(diagnostic: Diagnostic, node: SyntaxNode,... function handleUnusedSymbol (line 608) | function handleUnusedSymbol(diagnostic: Diagnostic, node: SyntaxNode, do... function handleAddEndStdinToArgparse (line 695) | function handleAddEndStdinToArgparse(diagnostic: Diagnostic, document: L... function handleConvertDeprecatedFishLsp (line 711) | function handleConvertDeprecatedFishLsp(diagnostic: Diagnostic, node: Sy... function getQuickFixes (line 731) | async function getQuickFixes( FILE: src/code-actions/redirect-actions.ts function selectCommandNode (line 9) | function selectCommandNode(node: SyntaxNode): SyntaxNode | null { function silenceCommandAction (line 18) | function silenceCommandAction( function silenceStderrCommandAction (line 41) | function silenceStderrCommandAction( function silenceStdoutCommandAction (line 64) | function silenceStdoutCommandAction( function redirectStoutToStder (line 87) | function redirectStoutToStder( function handleRedirectActions (line 110) | function handleRedirectActions( FILE: src/code-actions/refactors.ts function createRefactorAction (line 26) | function createRefactorAction( function extractFunctionWithArgparseToCompletionsFile (line 40) | function extractFunctionWithArgparseToCompletionsFile( function extractFunctionToFile (line 98) | function extractFunctionToFile( function extractToFunction (line 151) | function extractToFunction( function extractCommandToFunction (line 214) | function extractCommandToFunction( function extractToVariable (line 285) | function extractToVariable( function convertIfToCombiners (line 315) | function convertIfToCombiners( function isPathModifyingCommand (line 352) | function isPathModifyingCommand(node: SyntaxNode): boolean { function replaceAbsolutePathWithVariable (line 374) | function replaceAbsolutePathWithVariable( function simplifySetAppendPrepend (line 519) | function simplifySetAppendPrepend( FILE: src/code-lens.ts function getReferenceCountCodeLenses (line 7) | function getReferenceCountCodeLenses(analyzer: Analyzer, document: LspDo... FILE: src/command.ts type CommandName (line 41) | type CommandName = typeof CommandNames[keyof typeof CommandNames]; type CommandArgs (line 44) | type CommandArgs = { function formatCommandHelp (line 131) | function formatCommandHelp(commandName: CommandName, reason?: string): s... type ParsedNumber (line 151) | type ParsedNumber = function parseNumberArg (line 155) | function parseNumberArg(value: string | number, argName: string = 'argum... function toZeroIndexed (line 183) | function toZeroIndexed(line: number): number { type ParsedPath (line 205) | type ParsedPath = function parsePathArg (line 209) | function parsePathArg(args: string[], argIndex: number = 0): ParsedPath { type ParsedNumberPair (line 242) | type ParsedNumberPair = function parseNumberPair (line 246) | function parseNumberPair( function createExecuteCommandHandler (line 305) | function createExecuteCommandHandler( FILE: src/config.ts function updateHandlers (line 74) | function updateHandlers(keys: string[], value: boolean): void { type Config (line 156) | type Config = z.infer; function getConfigFromEnvironmentVariables (line 158) | function getConfigFromEnvironmentVariables(): { function getDefaultConfiguration (line 204) | function getDefaultConfiguration(): Config { function buildOutput (line 220) | function buildOutput(confd: boolean, result: string[]) { function convertValueToShellOutput (line 252) | function convertValueToShellOutput(value: Config.ConfigValueType) { function getDefaultValueAsShellOutput (line 260) | function getDefaultValueAsShellOutput( function getEnvVariableJsonObject (line 271) | function getEnvVariableJsonObject( function handleEnvOutput (line 284) | function handleEnvOutput( function escapeValue (line 406) | function escapeValue(value: string | number | boolean): string { type EnvVariableCommand (line 419) | type EnvVariableCommand = 'set -g' | 'set -l' | 'set -gx' | 'set -lx' | ... function getEnvVariableCommand (line 435) | function getEnvVariableCommand(useGlobal: boolean, useLocal: boolean, us... function fixPopups (line 468) | function fixPopups(enabled: string[], disabled: string[]): void { type ConfigValueType (line 524) | type ConfigValueType = string | number | boolean | string[] | number[]; type ConfigKeyType (line 525) | type ConfigKeyType = keyof Config; function getDefaultValue (line 527) | function getDefaultValue(key: keyof Config): Config[keyof Config] { function getDocsForKey (line 532) | function getDocsForKey(key: keyof Config): string { function isDeprecatedKey (line 569) | function isDeprecatedKey(key: string): boolean { function getEnvVariableKey (line 585) | function getEnvVariableKey(key: string): keyof Config | undefined { function updateFromInitializationOptions (line 601) | function updateFromInitializationOptions(initializationOptions: Config |... function fixEnabledDisabledHandlers (line 621) | function fixEnabledDisabledHandlers(): void { function getResultCapabilities (line 639) | function getResultCapabilities(): InitializeResult { function initialize (line 715) | function initialize(params: InitializeParams, connection: Connection) { FILE: src/diagnostics/buffered-async-cache.ts class BufferedAsyncDiagnosticCache (line 20) | class BufferedAsyncDiagnosticCache { method requestUpdate (line 37) | requestUpdate(uri: DocumentUri, immediate = false, changedSpan?: LineS... method update (line 109) | private async update(uri: DocumentUri): Promise { method delete (line 189) | delete(uri: DocumentUri): void { method clear (line 217) | clear(): void { method get (line 240) | get(uri: DocumentUri): Diagnostic[] | undefined { method has (line 250) | has(uri: DocumentUri): boolean { method pendingCount (line 260) | get pendingCount(): number { method isPending (line 270) | isPending(uri: DocumentUri): boolean { method setForTesting (line 274) | public setForTesting(uri: DocumentUri, diagnostics: Diagnostic[]) { FILE: src/diagnostics/comments-handler.ts type DiagnosticAction (line 7) | type DiagnosticAction = 'enable' | 'disable'; type DiagnosticTarget (line 8) | type DiagnosticTarget = 'line' | 'next-line'; type DiagnosticComment (line 10) | interface DiagnosticComment { type DiagnosticState (line 18) | interface DiagnosticState { constant DIAGNOSTIC_COMMENT_REGEX (line 34) | const DIAGNOSTIC_COMMENT_REGEX = /^#\s*@fish-lsp-(disable|enable)(?:-(ne... function isDiagnosticComment (line 41) | function isDiagnosticComment(node: SyntaxNode): boolean { function isValidErrorCode (line 46) | function isValidErrorCode(code: number): code is ErrorCodes.CodeTypes { function parseDiagnosticComment (line 55) | function parseDiagnosticComment(node: SyntaxNode): DiagnosticComment | n... type DiagnosticControlPoint (line 94) | interface DiagnosticControlPoint { type LineState (line 104) | interface LineState { class DiagnosticCommentsHandler (line 108) | class DiagnosticCommentsHandler { method constructor (line 124) | constructor() { method initialState (line 130) | private get initialState(): DiagnosticState { method rootState (line 142) | private get rootState(): DiagnosticState { method currentState (line 146) | private get currentState(): DiagnosticState { method globalEnabledCodes (line 150) | private globalEnabledCodes(): ErrorCodes.CodeTypes[] { method pushState (line 162) | private pushState(state: DiagnosticState) { method popState (line 166) | private popState() { method handleNode (line 177) | public handleNode(node: SyntaxNode): void { method processComment (line 198) | private processComment(comment: DiagnosticComment) { method cleanupNextLineComments (line 240) | private cleanupNextLineComments(currentLine: number) { method finalizeStateMap (line 254) | public finalizeStateMap(maxLine: number): void { method applyControlPointToState (line 306) | private applyControlPointToState(state: LineState, point: DiagnosticCo... method isCodeEnabledAtNode (line 320) | public isCodeEnabledAtNode(code: ErrorCodes.CodeTypes, node: SyntaxNod... method isCodeEnabledAtPosition (line 329) | public isCodeEnabledAtPosition(code: ErrorCodes.CodeTypes, position: P... method computeStateAtPosition (line 343) | private computeStateAtPosition(position: Position): LineState { method isCodeEnabled (line 372) | public isCodeEnabled(code: ErrorCodes.CodeTypes): boolean { method isRootEnabled (line 376) | public isRootEnabled(code: ErrorCodes.CodeTypes): boolean { method getStackDepth (line 380) | public getStackDepth(): number { method getCurrentState (line 384) | public getCurrentState(): DiagnosticState { method stateIterator (line 388) | public * stateIterator(): IterableIterator { method getCurrentStateVerbose (line 397) | public getCurrentStateVerbose() { FILE: src/diagnostics/diagnostic-ranges.ts type DisabledRange (line 10) | interface DisabledRange { type DiagnosticRangesResult (line 19) | interface DiagnosticRangesResult { constant DIAGNOSTIC_COMMENT_REGEX (line 33) | const DIAGNOSTIC_COMMENT_REGEX = /^#\s*@fish-lsp-(disable|enable)(?:-(ne... function isValidErrorCode (line 38) | function isValidErrorCode(code: number): code is ErrorCodes.CodeTypes { function getGlobalEnabledCodes (line 45) | function getGlobalEnabledCodes(): Set { type ParsedComment (line 59) | interface ParsedComment { function parseDiagnosticComment (line 71) | function parseDiagnosticComment(node: SyntaxNode): ParsedComment | null { function computeDiagnosticRanges (line 120) | function computeDiagnosticRanges(root: SyntaxNode, maxLine: number): Dia... class DiagnosticRangeChecker (line 217) | class DiagnosticRangeChecker { method constructor (line 225) | constructor(ranges: DiagnosticRangesResult, maxLine?: number) { method precomputeLineLookup (line 238) | private precomputeLineLookup(maxLine: number): void { method isCodeEnabledAtLine (line 261) | isCodeEnabledAtLine(code: ErrorCodes.CodeTypes, line: number): boolean { method isCodeEnabledAtNode (line 287) | isCodeEnabledAtNode(code: ErrorCodes.CodeTypes, node: SyntaxNode): boo... method getDisabledCodesAtLine (line 294) | getDisabledCodesAtLine(line: number): ErrorCodes.CodeTypes[] { method getSummary (line 314) | getSummary(): { method getLineState (line 329) | getLineState(line: number): { function createDiagnosticChecker (line 349) | function createDiagnosticChecker(root: SyntaxNode, maxLine: number): { FILE: src/diagnostics/error-codes.ts type CodeTypes (line 40) | type CodeTypes = type CodeValueType (line 51) | type CodeValueType = { type DiagnosticCode (line 60) | type DiagnosticCode = { function getSeverityString (line 258) | function getSeverityString(severity: DiagnosticSeverity | undefined): st... function codeTypeGuard (line 274) | function codeTypeGuard(code: CodeTypes | number | string | undefined): c... function getDiagnostic (line 278) | function getDiagnostic(code: CodeTypes | number): CodeValueType { FILE: src/diagnostics/invalid-error-code.ts constant DIAGNOSTIC_COMMENT_REGEX (line 9) | const DIAGNOSTIC_COMMENT_REGEX = /^#\s*@fish-lsp-(disable|enable)(?:-(ne... function isPossibleDiagnosticComment (line 11) | function isPossibleDiagnosticComment(node: SyntaxNode): boolean { function findCodes (line 17) | function findCodes(text: string): { code: string; startIndex: number; }[] { function detectInvalidDiagnosticCodes (line 42) | function detectInvalidDiagnosticCodes(node: SyntaxNode): Diagnostic[] { function checkForInvalidDiagnosticCodes (line 78) | function checkForInvalidDiagnosticCodes(node: SyntaxNode): Diagnostic[] { FILE: src/diagnostics/missing-completions.ts function findAllMissingArgparseFlags (line 15) | function findAllMissingArgparseFlags( function findMissingArgparseFlagsWithExistingCompletions (line 61) | function findMissingArgparseFlagsWithExistingCompletions( function findMissingCompletionsWithExistingArgparse (line 101) | function findMissingCompletionsWithExistingArgparse( function createCompletionDiagnostic (line 139) | function createCompletionDiagnostic(completionGroup: CompletionSymbol[],... function createArgparseDiagnostic (line 192) | function createArgparseDiagnostic( FILE: src/diagnostics/no-execute-diagnostic.ts function runNoExecuteDiagnostic (line 19) | function runNoExecuteDiagnostic(document: LspDocument): Diagnostic[] { function getNoExecuteDiagnostics (line 49) | function getNoExecuteDiagnostics(document: LspDocument): Diagnostic[] { FILE: src/diagnostics/node-types.ts type startTokenType (line 18) | type startTokenType = 'function' | 'while' | 'if' | 'for' | 'begin' | 's... type endTokenType (line 19) | type endTokenType = 'end' | "'" | '"' | ']' | '}' | ')'; function isStartTokenType (line 35) | function isStartTokenType(str: string): str is startTokenType { function findErrorCause (line 39) | function findErrorCause(children: Parser.SyntaxNode[]): Parser.SyntaxNod... function hasContentAfterQuote (line 77) | function hasContentAfterQuote(nodes: Parser.SyntaxNode[]): boolean { function isExtraEnd (line 90) | function isExtraEnd(node: SyntaxNode) { function isZeroIndex (line 94) | function isZeroIndex(node: SyntaxNode) { function isSingleQuoteVariableExpansion (line 98) | function isSingleQuoteVariableExpansion(node: Parser.SyntaxNode): boolean { function isAlias (line 110) | function isAlias(node: SyntaxNode): boolean { function isExport (line 114) | function isExport(node: SyntaxNode): boolean { function isWrapperFunction (line 118) | function isWrapperFunction(node: SyntaxNode, handler: DiagnosticComments... function isUniversalDefinition (line 125) | function isUniversalDefinition(node: SyntaxNode): boolean { function isSourceFilename (line 150) | function isSourceFilename(node: SyntaxNode): boolean { function isDotSourceCommand (line 182) | function isDotSourceCommand(node: SyntaxNode): boolean { function isTestCommandVariableExpansionWithoutString (line 189) | function isTestCommandVariableExpansionWithoutString(node: SyntaxNode): ... function isInsideStatementCondition (line 203) | function isInsideStatementCondition(statement: SyntaxNode, node: SyntaxN... function isConditionalStatement (line 218) | function isConditionalStatement(node: SyntaxNode) { function hasCommandSubstitution (line 246) | function hasCommandSubstitution(node: SyntaxNode) { class CommandAnalyzer (line 266) | class CommandAnalyzer { method findFirstCommand (line 270) | static findFirstCommand(node: SyntaxNode): Maybe { method hasQuietFlags (line 277) | static hasQuietFlags(command: SyntaxNode): boolean { method isConditionalCommand (line 288) | static isConditionalCommand(command: SyntaxNode): boolean { class ConditionalContext (line 297) | class ConditionalContext { method isTopLevel (line 301) | static isTopLevel(node: SyntaxNode): boolean { method isUsedAsCondition (line 310) | static isUsedAsCondition(node: SyntaxNode): boolean { method hasConditionalOperators (line 320) | static hasConditionalOperators(node: SyntaxNode): boolean { method isConditionalChainNode (line 327) | static isConditionalChainNode(node: SyntaxNode): boolean { function isConditionalWithoutQuietCommand (line 347) | function isConditionalWithoutQuietCommand(node: SyntaxNode): boolean { function isCommandInConditionalContext (line 369) | function isCommandInConditionalContext(command: SyntaxNode): boolean { function isFirstCommandInConditionalChain (line 388) | function isFirstCommandInConditionalChain(command: SyntaxNode): boolean { function isFirstCommandInAnyIfCondition (line 402) | function isFirstCommandInAnyIfCondition(command: SyntaxNode): boolean { function isFirstCommandInSpecificCondition (line 414) | function isFirstCommandInSpecificCondition(command: SyntaxNode, conditio... function isVariableDefinitionWithExpansionCharacter (line 425) | function isVariableDefinitionWithExpansionCharacter(node: SyntaxNode, de... type LocalFunctionCallType (line 442) | type LocalFunctionCallType = { function isMatchingCompleteOptionIsCommand (line 447) | function isMatchingCompleteOptionIsCommand(node: SyntaxNode) { function isMatchingAbbrFunction (line 453) | function isMatchingAbbrFunction(node: SyntaxNode) { function isAbbrDefinitionName (line 457) | function isAbbrDefinitionName(node: SyntaxNode) { function isArgparseWithoutEndStdin (line 468) | function isArgparseWithoutEndStdin(node: SyntaxNode) { function isPosixCommandInsteadOfFishCommand (line 475) | function isPosixCommandInsteadOfFishCommand(node: SyntaxNode): boolean { function getFishBuiltinEquivalentCommandName (line 501) | function getFishBuiltinEquivalentCommandName(node: SyntaxNode): string |... function getAutoloadedFunctionsWithoutDescription (line 533) | function getAutoloadedFunctionsWithoutDescription(doc: LspDocument, hand... function isFunctionWithEventHookCallback (line 544) | function isFunctionWithEventHookCallback(doc: LspDocument, handler: Diag... function isFishLspDeprecatedVariableName (line 564) | function isFishLspDeprecatedVariableName(node: SyntaxNode): boolean { function getDeprecatedFishLspMessage (line 573) | function getDeprecatedFishLspMessage(node: SyntaxNode): string { function isKnownCommand (line 588) | function isKnownCommand(commandName: string, doc: LspDocument): boolean { FILE: src/diagnostics/types.ts type FishDiagnostic (line 11) | interface FishDiagnostic extends Diagnostic { function create (line 21) | function create( function fromDiagnostic (line 43) | function fromDiagnostic(diagnostic: Diagnostic): FishDiagnostic { function fromSymbol (line 53) | function fromSymbol(code: ErrorCodes.CodeTypes, symbol: FishSymbol): Fis... FILE: src/diagnostics/validate.ts constant CHUNK_SIZE (line 26) | const CHUNK_SIZE = 100; function getDiagnosticsAsync (line 41) | async function getDiagnosticsAsync( FILE: src/document-highlight.ts function getDocumentHighlights (line 13) | function getDocumentHighlights(analyzer: Analyzer) { FILE: src/document.ts class LspDocument (line 16) | class LspDocument implements TextDocument { method constructor (line 20) | constructor(doc: TextDocumentItem) { method createTextDocumentItem (line 25) | static createTextDocumentItem(uri: string, text: string): LspDocument { method fromTextDocument (line 34) | static fromTextDocument(doc: TextDocument): LspDocument { method createFromUri (line 39) | static createFromUri(uri: DocumentUri): LspDocument { method createFromPath (line 44) | static createFromPath(path: PathLike): LspDocument { method testUri (line 49) | static testUri(uri: DocumentUri): string { method testUtil (line 57) | static testUtil(uri: DocumentUri) { method create (line 73) | static create( method update (line 83) | static update( method createFrom (line 104) | static createFrom(param: PathLike | DocumentUri | TextDocument | TextD... method createFromUriAsync (line 115) | static async createFromUriAsync(uri: DocumentUri): Promise { method asTextDocumentItem (line 120) | asTextDocumentItem(): TextDocumentItem { method asTextDocumentIdentifier (line 129) | asTextDocumentIdentifier(): TextDocumentIdentifier { method uri (line 135) | get uri(): DocumentUri { method languageId (line 139) | get languageId(): string { method version (line 143) | get version(): number { method path (line 147) | get path(): string { method fullSpan (line 154) | get fullSpan() { method getText (line 161) | getText(range?: Range): string { method positionAt (line 165) | positionAt(offset: number): Position { method offsetAt (line 169) | offsetAt(position: Position): number { method lineCount (line 173) | get lineCount(): number { method create (line 177) | create(uri: string, languageId: string, version: number, text: string)... method getLine (line 189) | getLine(line: number | Position | Range | FishSymbol): string { method getLineBeforeCursor (line 201) | getLineBeforeCursor(position: Position): string { method getLineRange (line 208) | getLineRange(line: number): Range { method getLineEnd (line 214) | getLineEnd(line: number): Position { method getLineOffset (line 219) | getLineOffset(line: number): number { method getLineStart (line 224) | getLineStart(line: number): Position { method getIndentAtLine (line 228) | getIndentAtLine(line: number): string { method update (line 240) | update(changes: TextDocumentContentChangeEvent[], version?: number): v... method asVersionedIdentifier (line 245) | asVersionedIdentifier() { method rename (line 249) | rename(newUri: string): void { method getFilePath (line 253) | getFilePath(): string { method getFilename (line 257) | getFilename(): string { method getRelativeFilenameToWorkspace (line 261) | getRelativeFilenameToWorkspace(): string { method isFunction (line 281) | isFunction(): boolean { method isAutoloadedFunction (line 293) | isAutoloadedFunction(): boolean { method isAutoloadedCompletion (line 297) | isAutoloadedCompletion(): boolean { method isAutoloadedConfd (line 301) | isAutoloadedConfd(): boolean { method shouldAnalyzeInBackground (line 305) | shouldAnalyzeInBackground(): boolean { method getWorkspace (line 312) | public getWorkspace(): Workspace | undefined { method getFolderType (line 316) | private getFolderType(): AutoloadType | null { method isAutoloaded (line 343) | isAutoloaded(): boolean { method isFunced (line 350) | isFunced(): boolean { method isCommandlineBuffer (line 354) | isCommandlineBuffer(): boolean { method isFuncedPath (line 358) | static isFuncedPath(path: string): boolean { method isCommandlineBufferPath (line 362) | static isCommandlineBufferPath(path: string): boolean { method isAutoloadedUri (line 375) | isAutoloadedUri(): boolean { method isAutoloadedWithPotentialCompletions (line 385) | isAutoloadedWithPotentialCompletions(): boolean { method getAutoloadType (line 394) | getAutoloadType(): AutoloadType { method getAutoLoadName (line 402) | getAutoLoadName(): string { method getFileName (line 411) | getFileName(): string { method getLines (line 417) | getLines(): number { method showTree (line 422) | showTree(): void { method getTree (line 426) | getTree(): string { method updateVersion (line 430) | updateVersion(version: number) { method is (line 441) | static is(value: unknown): value is LspDocument { method fileRange (line 467) | get fileRange(): Range { method hasShebang (line 473) | hasShebang(): boolean { type LineSpan (line 494) | type LineSpan = { start: number; end: number; isFullDocument?: boolean; }; function computeChangedLineSpan (line 499) | function computeChangedLineSpan( function rangeOverlapsLineSpan (line 526) | function rangeOverlapsLineSpan( type Documents (line 563) | type Documents = typeof documents; FILE: src/documentation.ts type markdownFiletypes (line 13) | type markdownFiletypes = 'fish' | 'man'; function enrichToMarkdown (line 15) | function enrichToMarkdown(doc: string): MarkupContent { function enrichToCodeBlockMarkdown (line 24) | function enrichToCodeBlockMarkdown(doc: string, filetype: markdownFilety... function enrichWildcard (line 35) | function enrichWildcard(label: string, documentation: string, examples: ... function enrichCommandArg (line 50) | function enrichCommandArg(doc: string): MarkupContent { function enrichCommandWithFlags (line 64) | function enrichCommandWithFlags(command: string, description: string, fl... function handleSourceArgumentHover (line 79) | function handleSourceArgumentHover(analyzer: Analyzer, current: SyntaxNo... function handleBraceExpansionHover (line 103) | async function handleBraceExpansionHover(current: SyntaxNode): Promise { method generateForSubcommand (line 420) | public async generateForSubcommand() { method generate (line 424) | public async generate(): Promise { FILE: src/execute-handler.ts type ExecResultKind (line 8) | type ExecResultKind = 'error' | 'info'; type ExecResultWrapper (line 10) | type ExecResultWrapper = { function execLineInBuffer (line 15) | async function execLineInBuffer(line: string): Promise { function buildOutput (line 36) | function buildOutput(line: string, outputMessage: 'error:' | 'stderr:' |... function buildExecuteNotificationResponse (line 59) | function buildExecuteNotificationResponse( function execEntireBuffer (line 72) | async function execEntireBuffer(bufferName: string): Promise { function formatDocumentRangeContent (line 23) | async function formatDocumentRangeContent(content: string): Promise>(objs: T[], .... method logTime (line 335) | public logTime(...args: any[]): void { method log (line 341) | public log(...args: any[]): void { method debug (line 351) | public debug(...args: any[]): void { method info (line 355) | public info(...args: any[]): void { method warning (line 359) | public warning(...args: any[]): void { method error (line 363) | public error(...args: any[]): void { method logToStdout (line 373) | public logToStdout(message: string, newline = true): void { method logToStdoutJoined (line 383) | public logToStdoutJoined(...message: string[]): void { method logToStderr (line 388) | public logToStderr(message: string, newline = true): void { method logFallbackToStdout (line 401) | public logFallbackToStdout(...args: any[]): void { function now (line 410) | function now(): string { function createServerLogger (line 426) | function createServerLogger(logFilePath: string, connectionConsole?: ICo... FILE: src/main.ts function isBrowserEnvironment (line 19) | function isBrowserEnvironment(): boolean { function isRunningAsCLI (line 23) | function isRunningAsCLI(): boolean { function runCLI (line 28) | async function runCLI() { FILE: src/parser.ts function initializeParser (line 8) | async function initializeParser(): Promise { function bufferToUint8Array (line 45) | function bufferToUint8Array(buffer: ArrayBuffer | Buffer | string): Uint... FILE: src/parsing/alias.ts type FishAliasInfoType (line 11) | type FishAliasInfoType = { function isAlias (line 24) | function isAlias(node: SyntaxNode): boolean { function getInfo (line 34) | function getInfo(node: SyntaxNode): { function toFunction (line 103) | function toFunction(node: SyntaxNode): string | null { function getNameRange (line 137) | function getNameRange(node: SyntaxNode) { function buildDetail (line 158) | function buildDetail(node: SyntaxNode) { function toFishDocumentSymbol (line 176) | function toFishDocumentSymbol( function getAliasScopeModifier (line 211) | function getAliasScopeModifier(document: LspDocument, node: SyntaxNode) { function getScopeNode (line 224) | function getScopeNode(node: SyntaxNode) { function isAliasDefinitionName (line 239) | function isAliasDefinitionName(node: SyntaxNode) { function isAliasDefinitionValue (line 263) | function isAliasDefinitionValue(node: SyntaxNode) { function processAliasCommand (line 287) | function processAliasCommand(document: LspDocument, node: SyntaxNode, ch... FILE: src/parsing/argparse.ts function findArgparseOptions (line 38) | function findArgparseOptions(node: SyntaxNode) { function isArgparseOptionSpecifier (line 68) | function isArgparseOptionSpecifier(node: SyntaxNode) { function isInvalidArgparseName (line 94) | function isInvalidArgparseName(node: SyntaxNode) { function findArgparseDefinitionNames (line 121) | function findArgparseDefinitionNames(node: SyntaxNode): SyntaxNode[] { function isArgparseVariableDefinitionName (line 149) | function isArgparseVariableDefinitionName(node: SyntaxNode) { function convertNodeRangeWithPrecedingFlag (line 155) | function convertNodeRangeWithPrecedingFlag(node: SyntaxNode) { function isGlobalArgparseDefinition (line 166) | function isGlobalArgparseDefinition(document: LspDocument, symbol: FishS... function getGlobalArgparseLocations (line 199) | function getGlobalArgparseLocations(document: LspDocument, symbol: FishS... function getArgparseScopeModifier (line 241) | function getArgparseScopeModifier(document: LspDocument, _node: SyntaxNo... function getArgparseDefinitionName (line 254) | function getArgparseDefinitionName(node: SyntaxNode): string { function isCompletionArgparseFlagWithCommandName (line 280) | function isCompletionArgparseFlagWithCommandName(node: SyntaxNode, comma... function createSelectionRange (line 331) | function createSelectionRange(node: SyntaxNode, flags: string[], flag: s... function splitSlash (line 384) | function splitSlash(str: string): string[] { function getNames (line 393) | function getNames(flags: string[]) { function processArgparseCommand (line 406) | function processArgparseCommand(document: LspDocument, node: SyntaxNode,... FILE: src/parsing/barrel.ts function isVariableDefinitionName (line 56) | function isVariableDefinitionName(node: SyntaxNode) { function isFunctionDefinitionName (line 71) | function isFunctionDefinitionName(node: SyntaxNode) { function isAliasDefinitionName (line 81) | function isAliasDefinitionName(node: SyntaxNode) { function isEmittedEventDefinitionName (line 90) | function isEmittedEventDefinitionName(node: SyntaxNode) { function isExportVariableDefinitionName (line 100) | function isExportVariableDefinitionName(node: SyntaxNode) { function isArgparseVariableDefinitionName (line 118) | function isArgparseVariableDefinitionName(node: SyntaxNode) { function isDefinitionName (line 127) | function isDefinitionName(node: SyntaxNode) { type DefinitionNodeNameTypes (line 162) | type DefinitionNodeNameTypes = 'isDefinitionName' | 'isVariableDefinitio... type DefinitionNodeChecker (line 163) | type DefinitionNodeChecker = (n: SyntaxNode) => boolean; FILE: src/parsing/bind.ts function isBindCommand (line 21) | function isBindCommand(node: SyntaxNode) { function isBindKeySequence (line 29) | function isBindKeySequence(node: SyntaxNode) { function isBindFunctionCall (line 45) | function isBindFunctionCall(node: SyntaxNode) { FILE: src/parsing/comments.ts constant INDENT_COMMENT_REGEX (line 7) | const INDENT_COMMENT_REGEX = /^#\s*@fish_indent(?::\s*(off|on)?)?$/; function isIndentComment (line 9) | function isIndentComment(node: SyntaxNode): boolean { type IndentComment (line 14) | interface IndentComment { function parseIndentComment (line 20) | function parseIndentComment(node: SyntaxNode): IndentComment | null { function processIndentComments (line 31) | function processIndentComments(root: SyntaxNode): IndentComment[] { type FormatRange (line 44) | interface FormatRange { type FormatRanges (line 49) | interface FormatRanges { function getEnabledIndentRanges (line 54) | function getEnabledIndentRanges(doc: LspDocument, rootNode?: SyntaxNode)... FILE: src/parsing/complete.ts function isCompletionCommandDefinition (line 33) | function isCompletionCommandDefinition(node: SyntaxNode) { function isMatchingCompletionFlagNodeWithFishSymbol (line 37) | function isMatchingCompletionFlagNodeWithFishSymbol(symbol: FishSymbol, ... function isCompletionDefinitionWithName (line 76) | function isCompletionDefinitionWithName(node: SyntaxNode, name: string, ... function isCompletionSymbolShort (line 84) | function isCompletionSymbolShort(node: SyntaxNode) { function isCompletionSymbolLong (line 91) | function isCompletionSymbolLong(node: SyntaxNode) { function isCompletionSymbolOld (line 98) | function isCompletionSymbolOld(node: SyntaxNode) { function isCompletionSymbol (line 105) | function isCompletionSymbol(node: SyntaxNode) { type OptionType (line 111) | type OptionType = '' | 'short' | 'long' | 'old'; class CompletionSymbol (line 112) | class CompletionSymbol { method constructor (line 113) | constructor( method createEmpty (line 128) | static createEmpty() { method create (line 135) | static create({ method isEmpty (line 160) | isEmpty() { method isNonEmpty (line 168) | isNonEmpty(): this is CompletionSymbol & { node: SyntaxNode; parent: S... method parent (line 176) | get parent() { method text (line 187) | get text(): string { method isShort (line 197) | isShort() { method isLong (line 204) | isLong() { method isOld (line 211) | isOld() { method isCorrespondingOption (line 221) | isCorrespondingOption(other: CompletionSymbol) { method toFlag (line 233) | toFlag() { method toUsage (line 249) | toUsage() { method toUsageVerbose (line 259) | toUsageVerbose() { method equalsArgparse (line 270) | equalsArgparse(symbol: FishSymbol) { method equalsCommand (line 280) | equalsCommand(symbol: FishSymbol) { method equalsNode (line 291) | equalsNode(n: SyntaxNode) { method hasCommandName (line 298) | hasCommandName(name: string) { method isMatchingRawOption (line 305) | isMatchingRawOption(...opts: Flag[]) { method getRange (line 318) | getRange(): Range { method toLocation (line 328) | toLocation(): Location { method toPosition (line 332) | toPosition(): { line: number; character: number; } | null { method toArgparseOpt (line 354) | toArgparseOpt(): string { method toArgparseVariableName (line 365) | toArgparseVariableName(): string { method is (line 374) | static is(obj: unknown): obj is CompletionSymbol { function isCompletionSymbolVerbose (line 388) | function isCompletionSymbolVerbose(node: SyntaxNode, doc?: LspDocument):... function getCompletionSymbol (line 405) | function getCompletionSymbol(node: SyntaxNode, doc?: LspDocument): Compl... function groupCompletionSymbolsTogether (line 453) | function groupCompletionSymbolsTogether( function getGroupedCompletionSymbolsAsArgparse (line 473) | function getGroupedCompletionSymbolsAsArgparse(groupedCompletionSymbols:... function processCompletion (line 489) | function processCompletion(document: LspDocument, node: SyntaxNode) { FILE: src/parsing/emit.ts function isEmittedEventDefinitionName (line 20) | function isEmittedEventDefinitionName(node: SyntaxNode): boolean { function findEmittedEventDefinitionName (line 38) | function findEmittedEventDefinitionName(node: SyntaxNode): SyntaxNode | ... function isGenericFunctionEventHandlerDefinitionName (line 56) | function isGenericFunctionEventHandlerDefinitionName(node: SyntaxNode): ... function processEmitEventCommandName (line 78) | function processEmitEventCommandName(document: LspDocument, node: Syntax... FILE: src/parsing/equality-utils.ts type SymbolPair (line 9) | type SymbolPair = { type EqualityCheck (line 14) | type EqualityCheck = (pair: SymbolPair) => boolean; type ScopeCheck (line 15) | type ScopeCheck = (pair: SymbolPair) => boolean; FILE: src/parsing/export.ts function isExportDefinition (line 15) | function isExportDefinition(node: SyntaxNode): boolean { function isExportVariableDefinitionName (line 21) | function isExportVariableDefinitionName(node: SyntaxNode): boolean { type ExtractedExportVariable (line 45) | type ExtractedExportVariable = { function findVariableDefinitionNameNode (line 51) | function findVariableDefinitionNameNode(node: SyntaxNode): { function extractExportVariable (line 113) | function extractExportVariable(node: SyntaxNode): ExtractedExportVariabl... function buildExportDetail (line 137) | function buildExportDetail(doc: LspDocument, commandNode: SyntaxNode, va... function processExportCommand (line 160) | function processExportCommand(document: LspDocument, node: SyntaxNode, c... FILE: src/parsing/for.ts function isForVariableDefinitionName (line 18) | function isForVariableDefinitionName(node: SyntaxNode): boolean { function processForDefinition (line 38) | function processForDefinition(document: LspDocument, node: SyntaxNode, c... FILE: src/parsing/function.ts function isFunctionDefinition (line 36) | function isFunctionDefinition(node: SyntaxNode) { function findFunctionDefinitionChildren (line 49) | function findFunctionDefinitionChildren(node: SyntaxNode) { function processArgvDefinition (line 56) | function processArgvDefinition(document: LspDocument, node: SyntaxNode) { function isFunctionDefinitionName (line 86) | function isFunctionDefinitionName(node: SyntaxNode) { function isFunctionVariableDefinitionName (line 100) | function isFunctionVariableDefinitionName(node: SyntaxNode) { function findFunctionOptionNamedArguments (line 116) | function findFunctionOptionNamedArguments(node: SyntaxNode): { function processFunctionDefinition (line 152) | function processFunctionDefinition(document: LspDocument, node: SyntaxNo... FILE: src/parsing/inline-variable.ts function hasInlineVariables (line 24) | function hasInlineVariables(commandNode: SyntaxNode): boolean { function isInlineVariableAssignment (line 41) | function isInlineVariableAssignment(node: SyntaxNode): boolean { function parseInlineVariableAssignment (line 54) | function parseInlineVariableAssignment(node: SyntaxNode): { name: string... function processInlineVariables (line 71) | function processInlineVariables(document: LspDocument, commandNode: Synt... function findAllInlineVariables (line 136) | function findAllInlineVariables(document: LspDocument, tree: SyntaxNode)... function getInlineVariableCompletions (line 160) | function getInlineVariableCompletions(): string[] { FILE: src/parsing/nested-strings.ts type ExtractConfig (line 8) | interface ExtractConfig { type CommandReference (line 20) | interface CommandReference { constant DEFAULT_CONFIG (line 27) | const DEFAULT_CONFIG: ExtractConfig = { constant FISH_KEYWORDS (line 36) | const FISH_KEYWORDS = new Set([ constant FISH_OPERATORS (line 42) | const FISH_OPERATORS = new Set([ function extractCommands (line 50) | function extractCommands( function extractCommandLocations (line 89) | function extractCommandLocations( function extractMatchingCommandLocations (line 127) | function extractMatchingCommandLocations( function cleanQuotes (line 141) | function cleanQuotes(input: string): string { function getQuoteOffset (line 153) | function getQuoteOffset(input: string): number { function findCommandsWithOffsets (line 165) | function findCommandsWithOffsets( function findCommandSubstitutionOffsets (line 190) | function findCommandSubstitutionOffsets(text: string): Array<{ command: ... function findParenthesizedCommandOffsets (line 216) | function findParenthesizedCommandOffsets(text: string): Array<{ command:... function findDirectCommandOffsets (line 255) | function findDirectCommandOffsets( function getFirstCommand (line 298) | function getFirstCommand(text: string): string | null { function extractCommandsFromText (line 306) | function extractCommandsFromText(input: string, cleanKeywords = true): s... function parseCommandSubstitutions (line 335) | function parseCommandSubstitutions(input: string): string[] { function parseParenthesizedExpressions (line 353) | function parseParenthesizedExpressions(input: string): string[] { function parseOptionArgument (line 381) | function parseOptionArgument(text: string): string | null { function parseDirectCommands (line 400) | function parseDirectCommands(input: string, config: ExtractConfig): stri... function tokenizeStatement (line 407) | function tokenizeStatement(statement: string): string[] { function createPreciseRange (line 445) | function createPreciseRange(command: string, offset: number, nodeRange: ... function isNumeric (line 463) | function isNumeric(str: string): boolean { FILE: src/parsing/options.ts type AlphaLowercaseChar (line 9) | type AlphaLowercaseChar = 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' ... type AlphaUppercaseChar (line 10) | type AlphaUppercaseChar = 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' ... type AlphaChar (line 11) | type AlphaChar = AlphaLowercaseChar | AlphaUppercaseChar; type DigitChar (line 12) | type DigitChar = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'; type ExtraChar (line 13) | type ExtraChar = '?' | '!' | '@' | '$' | '%' | '^' | '&' | '*' | '(' | '... type Character (line 14) | type Character = AlphaChar | DigitChar | ExtraChar; type ShortFlag (line 22) | type ShortFlag = `-${Character}`; type UnixFlag (line 23) | type UnixFlag = `-${string}`; type LongFlag (line 24) | type LongFlag = `--${string}`; type Flag (line 25) | type Flag = ShortFlag | UnixFlag | LongFlag; class Option (line 34) | class Option { method create (line 42) | static create(shortOption: ShortFlag | '', longOption: LongFlag | ''):... method long (line 53) | static long(longOption: LongFlag): Option { method short (line 59) | static short(shortOption: ShortFlag): Option { method unix (line 65) | static unix(unixOption: UnixFlag): Option { method fromRaw (line 71) | static fromRaw(...str: string[]) { method addUnixFlag (line 85) | addUnixFlag(...options: UnixFlag[]): Option { method withAliases (line 93) | withAliases(...optionAlias: ShortFlag[] | LongFlag[] | string[]): Opti... method isOption (line 107) | isOption(shortOption: ShortFlag | '', longOption: LongFlag | ''): bool... method withValue (line 119) | withValue(): Option { method withOptionalValue (line 129) | withOptionalValue(): Option { method withMultipleValues (line 139) | withMultipleValues(): Option { method isSwitch (line 158) | isSwitch(): boolean { method matchesValue (line 162) | matchesValue(node: SyntaxNode): boolean { method matches (line 192) | matches(node: SyntaxNode, checkWithEquals: boolean = true): boolean { method matchesLongFlag (line 214) | private matchesLongFlag(text: string): boolean { method matchesUnixFlag (line 222) | private matchesUnixFlag(text: string): boolean { method matchesShortFlag (line 229) | private matchesShortFlag(text: string): boolean { method equals (line 237) | equals(node: SyntaxNode, allowEquals = false): boolean { method equalsRawOption (line 249) | equalsRawOption(...rawOption: Flag[]): boolean { method equalsRawShortOption (line 261) | equalsRawShortOption(...rawOption: ShortFlag[]): boolean { method equalsRawLongOption (line 265) | equalsRawLongOption(...rawOption: LongFlag[]): boolean { method equalsOption (line 269) | equalsOption(other: Option): boolean { method findValueRangeAfterEquals (line 274) | findValueRangeAfterEquals(node: SyntaxNode): LSP.Range | null { method isSet (line 293) | isSet(node: SyntaxNode): boolean { method getAllFlags (line 300) | getAllFlags(): Array { method toString (line 308) | toString(): string { method toName (line 312) | toName(): string { type OptionValueMatch (line 326) | type OptionValueMatch = { function findOptionsSet (line 331) | function findOptionsSet(nodes: SyntaxNode[], options: Option[]): OptionV... function findOptions (line 343) | function findOptions(nodes: SyntaxNode[], options: Option[]): { remainin... function isMatchingOption (line 371) | function isMatchingOption(node: SyntaxNode, ...option: Option[]): boolean { function findMatchingOptions (line 382) | function findMatchingOptions(node: SyntaxNode, ...options: Option[]): Op... function isMatchingOptionOrOptionValue (line 387) | function isMatchingOptionOrOptionValue(node: SyntaxNode, option: Option)... function isMatchingOptionValue (line 420) | function isMatchingOptionValue(node: SyntaxNode, ...options: Option[]): ... FILE: src/parsing/read.ts function isReadVariableDefinitionName (line 53) | function isReadVariableDefinitionName(node: SyntaxNode) { function isReadDefinition (line 59) | function isReadDefinition(node: SyntaxNode) { function getFallbackModifierScope (line 63) | function getFallbackModifierScope(document: LspDocument, node: SyntaxNod... function findReadChildren (line 84) | function findReadChildren(node: SyntaxNode): { definitionNodes: SyntaxNo... function findReadParent (line 143) | function findReadParent(node: SyntaxNode, scopeModifier: ModifierScopeTa... function processReadCommand (line 159) | function processReadCommand(document: LspDocument, node: SyntaxNode, chi... FILE: src/parsing/reference-comparator.ts type ReferenceContext (line 17) | type ReferenceContext = { type ReferenceCheck (line 24) | type ReferenceCheck = (ctx: ReferenceContext) => boolean; FILE: src/parsing/set.ts function isSetDefinition (line 36) | function isSetDefinition(node: SyntaxNode) { function isSetQueryDefinition (line 40) | function isSetQueryDefinition(node: SyntaxNode) { function isSetVariableDefinitionName (line 49) | function isSetVariableDefinitionName(node: SyntaxNode, excludeQuery = tr... function getFallbackModifierScope (line 57) | function getFallbackModifierScope(document: LspDocument, node: SyntaxNod... function findSetChildren (line 73) | function findSetChildren(node: SyntaxNode) { function setModifierDetailDescriptor (line 79) | function setModifierDetailDescriptor(node: SyntaxNode) { function findParentScopeNode (line 104) | function findParentScopeNode(commandNode: SyntaxNode, modifier: Modifier... function processSetCommand (line 117) | function processSetCommand(document: LspDocument, node: SyntaxNode, chil... FILE: src/parsing/source.ts function isSourceCommandName (line 17) | function isSourceCommandName(node: SyntaxNode) { function isSourceCommandWithArgument (line 21) | function isSourceCommandWithArgument(node: SyntaxNode) { function isSourceCommandArgumentName (line 25) | function isSourceCommandArgumentName(node: SyntaxNode) { function isSourcedFilename (line 32) | function isSourcedFilename(node: SyntaxNode) { function isExistingSourceFilenameNode (line 39) | function isExistingSourceFilenameNode(node: SyntaxNode, baseDir?: string) { function getExpandedSourcedFilenameNode (line 45) | function getExpandedSourcedFilenameNode(node: SyntaxNode, baseDir?: stri... function resolveSourcePath (line 61) | function resolveSourcePath(sourcePath: string, baseDir?: string): string { type SourceResource (line 82) | interface SourceResource { method constructor (line 93) | constructor( method create (line 103) | static create( method scopeReachableFromNode (line 121) | scopeReachableFromNode(node: SyntaxNode) { class SourceResource (line 92) | class SourceResource { method constructor (line 93) | constructor( method create (line 103) | static create( method scopeReachableFromNode (line 121) | scopeReachableFromNode(node: SyntaxNode) { function createSourceResources (line 129) | function createSourceResources(analyzer: Analyzer, from: LspDocument): S... function reachableSources (line 153) | function reachableSources(resources: SourceResource[], uniqueUris: Set boolean; type nodeToTokenFunc (line 154) | type nodeToTokenFunc = (node: SyntaxNode, ctx: SemanticTokenContext) => ... type NodeToToken (line 155) | type NodeToToken = [isNodeMatch, nodeToTokenFunc]; function getSemanticTokensSimplest (line 304) | function getSemanticTokensSimplest(analyzedDoc: EnsuredAnalyzeDocument, ... class SemanticTokenContext (line 352) | class SemanticTokenContext { method constructor (line 353) | private constructor( method create (line 359) | public static create({ document, tokens = [] }: { method has (line 366) | public has(token: SemanticToken): boolean { method hasNode (line 369) | public hasNode(node: SyntaxNode): boolean { method add (line 374) | public add(...tokens: SemanticToken[]): void { method size (line 383) | public get size(): number { method getTokens (line 387) | public getTokens(): SemanticToken[] { method clear (line 391) | public clear(): void { method show (line 397) | public show(): void { method build (line 406) | public build() { type SemanticTokensParams (line 447) | type SemanticTokensParams = LSP.SemanticTokensParams | LSP.SemanticToken... method isFull (line 453) | isFull(params: SemanticTokensParams): params is LSP.SemanticTokensParams { method isRange (line 459) | isRange(params: SemanticTokensParams): params is LSP.SemanticTokensRange... function semanticTokenHandler (line 471) | function semanticTokenHandler(params: SemanticTokensParams): LSP.Semanti... FILE: src/server.ts type SupportedFeatures (line 48) | type SupportedFeatures = { class FishServer (line 73) | class FishServer { method create (line 108) | public static async create( method constructor (line 165) | constructor( method register (line 191) | register(connection: Connection): void { method didSaveTextDocument (line 290) | async didSaveTextDocument(params: LSP.DidSaveTextDocumentParams): Prom... method onShutdown (line 306) | async onShutdown() { method onInitialized (line 323) | async onInitialized(params: any): Promise<{ method handleWorkspaceFolderChanges (line 403) | private async handleWorkspaceFolderChanges(event: WorkspaceFoldersChan... method onCommand (line 413) | onCommand(params: LSP.ExecuteCommandParams): Promise { method onCompletion (line 430) | async onCompletion(params: CompletionParams): Promise { method onCompletionResolve (line 487) | async onCompletionResolve(item: CompletionItem): Promise { method onReferences (line 605) | async onReferences(params: ReferenceParams): Promise { method onImplementation (line 641) | async onImplementation(params: ImplementationParams): Promise { method onRename (line 812) | async onRename(params: RenameParams): Promise { method onDocumentFormatting (line 834) | async onDocumentFormatting(params: DocumentFormattingParams): Promise<... method onDocumentTypeFormatting (line 856) | async onDocumentTypeFormatting(params: DocumentFormattingParams): Prom... method onDocumentRangeFormatting (line 881) | async onDocumentRangeFormatting(params: DocumentRangeFormattingParams)... method onFoldingRanges (line 928) | async onFoldingRanges(params: FoldingRangeParams): Promise { method onShowSignatureHelp (line 987) | public onShowSignatureHelp(params: SignatureHelpParams): SignatureHelp... method analyzeDocument (line 1046) | public analyzeDocument(document: LspDocument) { method info (line 1073) | public get info() { method completions (line 1080) | public get completions(): CompletionItemMap { method instance (line 1084) | public static get instance(): FishServer { method throwError (line 1089) | public static throwError(message: string) { method logParams (line 1103) | private logParams(methodName: string, ...params: any[]) { method getDefaults (line 1109) | private getDefaults(params: TextDocumentPositionParams): { method getDefaultsForPartialParams (line 1128) | private getDefaultsForPartialParams(params: { method logDocument (line 1141) | private logDocument(request: string, document: LspDocument | undefined... method setupForTestUtilities (line 1183) | static async setupForTestUtilities() { FILE: src/signature.ts function buildSignature (line 21) | function buildSignature(label: string, value: string): SignatureInformat... function getCurrentNodeType (line 31) | function getCurrentNodeType(input: string) { function lineSignatureBuilder (line 45) | function lineSignatureBuilder(lineRootNode: SyntaxNode, lineCurrentNode:... function getPipes (line 72) | function getPipes(rootNode: SyntaxNode): ExtendedBaseJson[] { function getVariableNode (line 81) | function getVariableNode(rootNode: SyntaxNode): SyntaxNode | undefined { function getAllCommands (line 85) | function getAllCommands(rootNode: SyntaxNode): SyntaxNode[] { function getRegexOption (line 89) | function getRegexOption(rootNode: SyntaxNode): SyntaxNode | undefined { function isStringWithRegex (line 93) | function isStringWithRegex(line: string, regexOption: SyntaxNode | undef... function isSetOrReadWithVarNode (line 97) | function isSetOrReadWithVarNode(line: string, varNode: SyntaxNode | unde... function getSignatureForVariable (line 101) | function getSignatureForVariable(varNode: SyntaxNode): SignatureHelp | n... function getReturnStatusSignature (line 111) | function getReturnStatusSignature(): SignatureHelp { function getPipesSignature (line 120) | function getPipesSignature(pipes: ExtendedBaseJson[]): SignatureHelp { function getCommandSignature (line 128) | function getCommandSignature(firstCmd: SyntaxNode): SignatureHelp { function getAliasedCompletionItemSignature (line 137) | function getAliasedCompletionItemSignature(item: FishAliasCompletionItem... function regexStringSignature (line 150) | function regexStringSignature(): SignatureInformation { function regexStringCharacterSets (line 165) | function regexStringCharacterSets(): SignatureInformation { function isMatchingOption (line 194) | function isMatchingOption( function getActiveParameterIndex (line 226) | function getActiveParameterIndex(line: string, commandName: string, need... function isRegexStringSignature (line 279) | function isRegexStringSignature(line: string): boolean { function findActiveParameterStringRegex (line 295) | function findActiveParameterStringRegex( type signatureType (line 315) | type signatureType = 'stringRegexPatterns' | 'stringRegexCharacterSets'; function getDefaultSignatures (line 322) | function getDefaultSignatures(): SignatureHelp { function getFunctionSignatureHelp (line 342) | function getFunctionSignatureHelp( function calculateActiveParameter (line 440) | function calculateActiveParameter(line: string, position: Position): num... FILE: src/utils/builtins.ts function isBuiltin (line 80) | function isBuiltin(word: string): boolean { function isReservedKeyword (line 121) | function isReservedKeyword(word: string): boolean { function findShell (line 128) | function findShell() { function execFishCommand (line 144) | function execFishCommand(command: string): string[] { function createFunctionNamesList (line 149) | function createFunctionNamesList() { function isFunction (line 153) | function isFunction(word: string): boolean { function createFunctionEventsList (line 156) | function createFunctionEventsList() { function isEvent (line 164) | function isEvent(word: string): boolean { function createAbbrList (line 168) | function createAbbrList() { function createGlobalVariableList (line 173) | function createGlobalVariableList() { FILE: src/utils/cli-dump-tree.ts function isDumpFlagStdin (line 19) | function isDumpFlagStdin(value: string | boolean | undefined): boolean { type ParseTreeOutput (line 28) | interface ParseTreeOutput { type SemanticTokensOutput (line 33) | interface SemanticTokensOutput { function readFromStdin (line 43) | async function readFromStdin(): Promise { function debugWorkspaceDocument (line 63) | function debugWorkspaceDocument(document: LspDocument, useColors: boolea... function getNodeTypeColor (line 144) | function getNodeTypeColor(nodeType: string): (text: string) => string { function getParenthesesColor (line 151) | function getParenthesesColor(depth: number): (text: string) => string { function formatSyntaxTree (line 159) | function formatSyntaxTree(node: any, depth: number = 0, useColors: boole... function escapeWhitespace (line 206) | function escapeWhitespace(text: string): string { function logTreeSitterDocumentDebug (line 217) | function logTreeSitterDocumentDebug(document: LspDocument): void { function returnParseTreeString (line 239) | function returnParseTreeString(document: LspDocument, useColors: boolean... function expandParseCliTreeFile (line 244) | function expandParseCliTreeFile(input: string | undefined): string { function cliDumpParseTree (line 256) | async function cliDumpParseTree(document: LspDocument, useColors: boolea... function handleCLiDumpParseTree (line 271) | async function handleCLiDumpParseTree(args: CommanderSubcommand.info.sch... function getTokenTypeColor (line 324) | function getTokenTypeColor(tokenType: string, useColors: boolean): (text... function decodeModifiers (line 332) | function decodeModifiers(modifiersMask: number): string[] { function formatSemanticTokens (line 349) | function formatSemanticTokens(data: number[], source: string, useColors:... function debugSemanticTokens (line 419) | function debugSemanticTokens(document: LspDocument, useColors: boolean =... function cliDumpSemanticTokens (line 439) | async function cliDumpSemanticTokens(document: LspDocument, useColors: b... function formatSymbolLine (line 523) | function formatSymbolLine(symbol: FishSymbol, useIcons: boolean): string { function formatColoredSymbolNodes (line 538) | function formatColoredSymbolNodes(symbols: FishSymbol[], prefix: string,... function formatColoredSymbolTree (line 560) | function formatColoredSymbolTree(symbols: FishSymbol[], rootLabel: strin... function cliDumpSymbolTree (line 567) | async function cliDumpSymbolTree(document: LspDocument, useColors: boole... function handleCLiDumpSymbolTree (line 603) | async function handleCLiDumpSymbolTree(args: CommanderSubcommand.info.sc... function handleCLiDumpSemanticTokens (line 639) | async function handleCLiDumpSemanticTokens(args: CommanderSubcommand.inf... FILE: src/utils/commander-cli-subcommands.ts function accumulateStartupOptions (line 23) | function accumulateStartupOptions(args: string[]): { type ArgsType (line 65) | type ArgsType = { type HandlerOptionsType (line 80) | type HandlerOptionsType = { function getOutputType (line 108) | function getOutputType(args: ArgsType): 'show' | 'create' | 'showDefault' { function getOnly (line 112) | function getOnly(args: ArgsType): string[] | undefined { function toEnvOutputOptions (line 123) | function toEnvOutputOptions(args: ArgsType): HandlerOptionsType { function getEnvOnlyArgs (line 137) | function getEnvOnlyArgs(cliEnvOnly: string | string[] | undefined): stri... function filterStartCommandArgs (line 157) | function filterStartCommandArgs(args: string[]): string[] { type VersionTuple (line 203) | type VersionTuple = { function minimumNodeVersion (line 215) | function minimumNodeVersion(): VersionTuple { function extract (line 224) | function extract(versionString: string): VersionTuple | null { function compareVersions (line 240) | function compareVersions(a: VersionTuple, b: VersionTuple): number { function satisfies (line 252) | function satisfies(current: VersionTuple, required: VersionTuple): boole... type BuildTimeJsonObj (line 292) | type BuildTimeJsonObj = { function FishLspHelp (line 470) | function FishLspHelp() { function FishLspManPage (line 509) | function FishLspManPage() { function fishLspLogFile (line 552) | function fishLspLogFile() { type schemaType (line 586) | type schemaType = z.infer; function parse (line 587) | function parse(args: unknown): schemaType { type schemaType (line 627) | type schemaType = z.infer; function parse (line 628) | function parse(args: unknown): schemaType { type skippableType (line 643) | type skippableType = z.infer; type skippableArgs (line 644) | type skippableArgs = keyof skippableType; function handleBadArgs (line 662) | function handleBadArgs(args: schemaType) { function handleFileArgs (line 686) | function handleFileArgs(args: schemaType) { function handleSourceMaps (line 725) | function handleSourceMaps(args: schemaType) { function sourcemaps (line 813) | function sourcemaps() { function log (line 827) | function log(argsCount: number, title: string, message: string, alwaysSh... type schemaType (line 852) | type schemaType = z.infer; function parse (line 853) | function parse(args: unknown): schemaType { type schemaType (line 873) | type schemaType = z.infer; function parse (line 874) | function parse(args: unknown): schemaType { type schemaType (line 897) | type schemaType = z.infer; function parse (line 898) | function parse(args: unknown): schemaType { type SubcommandType (line 912) | type SubcommandType = (typeof subcommands)[number]; type schemas (line 914) | type schemas = typeof start.schema function parseSubcommand (line 928) | function parseSubcommand(command: SubcommandType, args: unknown): z.infe... function hasSkippable (line 950) | function hasSkippable(command: SubcommandType) { function getSubcommand (line 965) | function getSubcommand(command: SubcommandType): schemas { function countArgsWithValues (line 982) | function countArgsWithValues(subcommand: SubcommandType, args: Record(arr: T[], minLength: number, fillValue?: T):... FILE: src/utils/completion/inline-parser.ts class InlineParser (line 7) | class InlineParser { method create (line 10) | static async create() { method constructor (line 15) | constructor(private parser: Parser) { method parseWord (line 30) | parseWord(line: string): { method parseCommand (line 63) | parseCommand(line: string) : { method parse (line 85) | parse(line: string): SyntaxNode { method getNodeContext (line 90) | getNodeContext(line: string) { method lastItemIsOption (line 108) | lastItemIsOption(line: string): boolean { method getLastNode (line 122) | getLastNode(line: string): SyntaxNode | null { method hasOption (line 131) | hasOption(command: SyntaxNode, options: string[]) { method getIndex (line 135) | getIndex(line: string): number { method createCompletionList (line 148) | async createCompletionList(line: string): Promise { function wordPrecedesCommand (line 164) | function wordPrecedesCommand(word: string | null) { function isEmpty (line 186) | function isEmpty(line: string): boolean { function isComment (line 189) | function isComment(line: string): boolean { function hasMultipleLastSpaces (line 192) | function hasMultipleLastSpaces(line: string): boolean { function removeAllButLastSpace (line 195) | function removeAllButLastSpace(line: string): string { function appendEndSequence (line 201) | function appendEndSequence( FILE: src/utils/completion/list.ts class FishCompletionListBuilder (line 6) | class FishCompletionListBuilder { method constructor (line 9) | constructor( method addItem (line 15) | addItem(item: FishCompletionItem) { method addItems (line 19) | addItems(items: FishCompletionItem[], priority?: number) { method addSymbols (line 26) | addSymbols(symbols: FishSymbol[], insertDollarSign: boolean = false) { method addData (line 39) | addData(data: FishCompletionData) { method reset (line 53) | reset() { method sortByPriority (line 57) | sortByPriority(items: FishCompletionItem[]): FishCompletionItem[] { method build (line 92) | build(isIncomplete: boolean = false): FishCompletionList { method log (line 100) | log() { method _logger (line 105) | get _logger() { function itemLoggingInfo (line 110) | function itemLoggingInfo(item: FishCompletionItem, index: number) { type FishCompletionList (line 122) | type FishCompletionList = CompletionList; function empty (line 125) | function empty() { function create (line 132) | function create( FILE: src/utils/completion/pager.ts type SetupData (line 20) | type SetupData = { class CompletionPager (line 26) | class CompletionPager { method constructor (line 29) | constructor( method empty (line 37) | empty(): CompletionList { method create (line 44) | create( method completeEmpty (line 54) | async completeEmpty( method completeVariables (line 75) | async completeVariables( method isInVariableDefinitionContext (line 161) | private isInVariableDefinitionContext(lineBeforeCursor: string, positi... method complete (line 246) | async complete( method getData (line 334) | getData(uri: string, position: Position, line: string, word: string) { method getSubshellStdoutCompletions (line 343) | private async getSubshellStdoutCompletions( function initializeCompletionPager (line 360) | async function initializeCompletionPager(logger: Logger, items: Completi... function addFirstIndexedItems (line 365) | function addFirstIndexedItems(command: string, items: CompletionItemMap) { function addSpecialItems (line 383) | function addSpecialItems( function wordsFirstChar (line 423) | function wordsFirstChar(word: string | null) { function includesFlag (line 427) | function includesFlag( function sortSymbols (line 451) | function sortSymbols(symbols: FishSymbol[]) { function isInVariableExpansionContext (line 474) | function isInVariableExpansionContext(doc: LspDocument, position: Positi... FILE: src/utils/completion/shell.ts function escapeCmd (line 3) | function escapeCmd(cmd: string): string { function shellComplete (line 12) | async function shellComplete(cmd: string): Promise<[string, string][]> { FILE: src/utils/completion/startup-cache.ts type ItemMapRecord (line 6) | type ItemMapRecord = Record; class CompletionItemMap (line 8) | class CompletionItemMap { method constructor (line 9) | constructor(private _items: ItemMapRecord = {} as ItemMapRecord) { } method initialize (line 11) | static async initialize(): Promise { method get (line 71) | get(kind: FishCompletionItemKind): FishCompletionItem[] { method allKinds (line 75) | get allKinds(): FishCompletionItemKind[] { method allOfKinds (line 79) | allOfKinds(...kinds: FishCompletionItemKind[]): FishCompletionItem[] { method entries (line 83) | entries(): [FishCompletionItemKind, FishCompletionItem[]][] { method forEach (line 87) | forEach(callbackfn: (key: FishCompletionItemKind, value: FishCompletio... method allCompletionsWithoutCommand (line 91) | allCompletionsWithoutCommand() { method findLabel (line 102) | findLabel(label: string, ...searchKinds: FishCompletionItemKind[]): Fi... method blockedCommands (line 113) | get blockedCommands() { function splitLine (line 123) | function splitLine(line: string): { label: string; value?: string; } { function getCommandsDetail (line 134) | function getCommandsDetail(value: string) { FILE: src/utils/completion/startup-config.ts type SetupItem (line 4) | type SetupItem = { type SetupResult (line 63) | type SetupResult = SetupItem & { results: string[]; }; function runSetupItems (line 65) | async function runSetupItems( FILE: src/utils/completion/types.ts type FishCompletionItemKind (line 34) | type FishCompletionItemKind = typeof FishCompletionItemKind[keyof typeof... type FishCompletionData (line 59) | type FishCompletionData = { type FishCompletionItem (line 68) | interface FishCompletionItem extends CompletionItem { method constructor (line 84) | constructor( method setKinds (line 97) | setKinds(kind: FishCompletionItemKind) { method setLocal (line 103) | setLocal() { method setUseDocAsDetail (line 108) | setUseDocAsDetail() { method setData (line 113) | setData(data: FishCompletionData) { method setPriority (line 123) | setPriority(priority: number) { class FishCompletionItem (line 83) | class FishCompletionItem implements FishCompletionItem { method constructor (line 84) | constructor( method setKinds (line 97) | setKinds(kind: FishCompletionItemKind) { method setLocal (line 103) | setLocal() { method setUseDocAsDetail (line 108) | setUseDocAsDetail() { method setData (line 113) | setData(data: FishCompletionData) { method setPriority (line 123) | setPriority(priority: number) { class FishCommandCompletionItem (line 129) | class FishCommandCompletionItem extends FishCompletionItem { class FishAbbrCompletionItem (line 135) | class FishAbbrCompletionItem extends FishCommandCompletionItem { method constructor (line 136) | constructor(label: string, detail: string, documentation: string) { class FishAliasCompletionItem (line 144) | class FishAliasCompletionItem extends FishCommandCompletionItem { method constructor (line 145) | constructor(label: string, detail: string, documentation: string) { function create (line 152) | function create(label: string, kind: FishCompletionItemKind, detail: str... function fromSymbol (line 168) | function fromSymbol(symbol: FishSymbol) { function createData (line 179) | function createData( type CompletionExample (line 191) | interface CompletionExample { function create (line 197) | function create(title: string, ...shellText: string[]): CompletionExample { function toMarkedString (line 205) | function toMarkedString(example: CompletionExample): string { FILE: src/utils/definition-scope.ts type ScopeTag (line 8) | type ScopeTag = 'global' | 'universal' | 'local' | 'function' | 'inherit'; type DefinitionScope (line 9) | interface DefinitionScope { method constructor (line 16) | constructor( method create (line 20) | static create( method containsPosition (line 30) | containsPosition(position: Position) { method isBeforePosition (line 39) | isBeforePosition(position: Position) { method isAfterPosition (line 44) | isAfterPosition(position: Position) { method isBeforeNode (line 49) | isBeforeNode(node: SyntaxNode) { method isAfterNode (line 55) | isAfterNode(node: SyntaxNode) { method containsNode (line 61) | containsNode(node: SyntaxNode) { method tag (line 66) | get tag() { method ScopeTags (line 71) | static get ScopeTags() { class DefinitionScope (line 15) | class DefinitionScope { method constructor (line 16) | constructor( method create (line 20) | static create( method containsPosition (line 30) | containsPosition(position: Position) { method isBeforePosition (line 39) | isBeforePosition(position: Position) { method isAfterPosition (line 44) | isAfterPosition(position: Position) { method isBeforeNode (line 49) | isBeforeNode(node: SyntaxNode) { method isAfterNode (line 55) | isAfterNode(node: SyntaxNode) { method containsNode (line 61) | containsNode(node: SyntaxNode) { method tag (line 66) | get tag() { method ScopeTags (line 71) | static get ScopeTags() { class VariableDefinitionFlag (line 83) | class VariableDefinitionFlag { method constructor (line 87) | constructor(short: string, long: string) { method isMatch (line 92) | isMatch(node: SyntaxNode) { method kind (line 105) | get kind() { function getMatchingFlags (line 123) | function getMatchingFlags(focusedNode: SyntaxNode, nodes: SyntaxNode[]) { function findScopeFromFlag (line 135) | function findScopeFromFlag(node: SyntaxNode, flag: VariableDefinitionFla... function getVariableScope (line 177) | function getVariableScope(node: SyntaxNode) { function getScope (line 199) | function getScope(document: LspDocument, node: SyntaxNode) { function expandEntireVariableLine (line 243) | function expandEntireVariableLine(node: SyntaxNode): SyntaxNode[] { function setQuery (line 267) | function setQuery(searchNodes: SyntaxNode[]) { FILE: src/utils/documentation-cache.ts type CachedGlobalItem (line 31) | interface CachedGlobalItem { function createCachedItem (line 40) | function createCachedItem(type: SymbolKind, uri?: string): CachedGlobalI... function getNewDocString (line 52) | async function getNewDocString(name: string, item: CachedGlobalItem): Pr... function resolveItem (line 65) | async function resolveItem(name: string, item: CachedGlobalItem, uri?: s... function getFunctionUri (line 87) | async function getFunctionUri(name: string): Promise { function _escapePathStr (line 101) | function _escapePathStr(functionTitleLine: string): string { function _ensureMinLength (line 112) | function _ensureMinLength(arr: T[], minLength: number, fillValue?: T)... function getFunctionDocString (line 122) | async function getFunctionDocString(name: string): Promise { method keys (line 260) | get keys(): string[] { method getAutoloadedKeys (line 264) | public getAutoloadedKeys(): string[] { method getProcessEnvKeys (line 268) | public getProcessEnvKeys(): string[] { method findAutolaodedKey (line 272) | public findAutolaodedKey(key: string): string | undefined { method values (line 279) | get values() { method entries (line 287) | get entries(): [string, string][] { method parser (line 294) | public parser() { method findAutoloadedFunctionPath (line 298) | public findAutoloadedFunctionPath(functionName: string): string[] { method clear (line 313) | public clear(): void { FILE: src/utils/exec.ts type EmbeddedFishResult (line 18) | type EmbeddedFishResult = { function runEmbeddedFish (line 24) | function runEmbeddedFish(script: string, args: string[] = []): Promise { function getType (line 68) | function getType(...args: string[]): Promise { function getTypeVerbose (line 72) | function getTypeVerbose(...args: string[]): Promise { function getCartisianExpansion (line 76) | function getCartisianExpansion(...args: string[]): Promise { function getDocumentation (line 92) | function getDocumentation(...args: string[]): Promise { function execFish (line 96) | function execFish(cmd: string): Promise { function getCompletion (line 100) | function getCompletion(...args: string[]): Promise { function execEscapedCommand (line 117) | async function execEscapedCommand(cmd: string): Promise { function execCmd (line 126) | async function execCmd(cmd: string, options?: { function execAsyncF (line 147) | async function execAsyncF(cmd: string) { function execAsyncFish (line 161) | async function execAsyncFish(cmd: string) { function execFishNoExecute (line 165) | function execFishNoExecute(filepath: string) { function execCompletions (line 180) | async function execCompletions(...cmd: string[]): Promise { function execSubCommandCompletions (line 187) | async function execSubCommandCompletions(...cmd: string[]): Promise { function execCompleteSpace (line 206) | async function execCompleteSpace(cmd: string): Promise { function execCompleteCmdArgs (line 219) | async function execCompleteCmdArgs(cmd: string): Promise { function execCommandDocs (line 240) | async function execCommandDocs(cmd: string): Promise { function execCommandType (line 255) | async function execCommandType(cmd: string): Promise { type CompletionArguments (line 263) | interface CompletionArguments { function documentCommandDescription (line 268) | async function documentCommandDescription(cmd: string): Promise { function execFindDependency (line 273) | async function execFindDependency(cmd: string): Promise { function execExpandBraceExpansion (line 278) | async function execExpandBraceExpansion(input: string): Promise { function execCommandLocations (line 283) | function execCommandLocations(cmd: string): { uri: string; path: string;... FILE: src/utils/file-operations.ts class SyncFileHelper (line 13) | class SyncFileHelper { method open (line 14) | static open(filePath: PathLike, flags: string): number { method close (line 19) | static close(fd: number): void { method read (line 23) | static read(filePath: PathLike, encoding: BufferEncoding = 'utf8'): st... method loadDocumentSync (line 36) | static loadDocumentSync(filePath: PathLike): LspDocument | undefined { method write (line 65) | static write(filePath: PathLike, data: string, encoding: BufferEncodin... method writeRecursive (line 71) | static writeRecursive(filePath: PathLike, data: string, encoding: Buff... method append (line 83) | static append(filePath: PathLike, data: string, encoding: BufferEncodi... method expandEnvVars (line 88) | static expandEnvVars(filePath: PathLike): string { method expandNormalize (line 107) | static expandNormalize(filePath: PathLike): string { method isExpandable (line 112) | static isExpandable(filePath: PathLike): boolean { method exists (line 117) | static exists(filePath: PathLike): boolean { method delete (line 122) | static delete(filePath: PathLike): void { method create (line 126) | static create(filePath: PathLike) { method getPathTokens (line 136) | static getPathTokens(filePath: PathLike) { method convertTextToFishFunction (line 148) | static convertTextToFishFunction(filePath: PathLike, data: string, _en... method toTextDocumentItem (line 166) | static toTextDocumentItem(filePath: PathLike, languageId: string, vers... method toLspDocument (line 173) | static toLspDocument(filePath: PathLike, languageId: string = 'fish', ... method isDirectory (line 184) | static isDirectory(filePath: PathLike): boolean { method isFile (line 194) | static isFile(filePath: PathLike): boolean { method isWriteableDirectory (line 209) | static isWriteableDirectory(workspacePath: string): boolean { method isWriteableFile (line 217) | static isWriteableFile(filePath: string): boolean { method isWriteable (line 225) | static isWriteable(filePath: string): boolean { method isWriteablePath (line 230) | private static isWriteablePath(path: string): boolean { method isAbsolutePath (line 239) | static isAbsolutePath(filePath: string): boolean { method isRelativePath (line 244) | static isRelativePath(filePath: string): boolean { function isReadable (line 251) | async function isReadable(filePath: string): Promise { function isDir (line 261) | async function isDir(filePath: string): Promise { function isFile (line 271) | async function isFile(filePath: string): Promise { function readFile (line 281) | async function readFile(filePath: string, encoding: BufferEncoding = 'ut... FILE: src/utils/flag-documentation.ts function getFlagDocumentationStrings (line 106) | async function getFlagDocumentationStrings(input: string) : Promise { FILE: src/utils/flatten.ts function flattenNested (line 26) | function flattenNested(...roots: T[]): T[] { FILE: src/utils/get-lsp-completions.ts function getAutoGeneratedHeader (line 6) | function getAutoGeneratedHeader(): string { function getHelperFunctions (line 53) | function getHelperFunctions(): string { function getAutoGeneratedFooter (line 475) | function getAutoGeneratedFooter(): string { function buildFishLspCompletions (line 496) | function buildFishLspCompletions(commandBin: Command) { function buildFishLspAbbreviations (line 532) | function buildFishLspAbbreviations() { FILE: src/utils/health-check.ts function performHealthCheck (line 11) | async function performHealthCheck() { function logFishLspConfig (line 197) | async function logFishLspConfig() { function isNodeVersionGreaterThanMinimumRequiredVersion (line 239) | function isNodeVersionGreaterThanMinimumRequiredVersion() { FILE: src/utils/locations.ts type Location (line 7) | interface Location { type TextSpan (line 12) | type TextSpan = { function intersection (line 34) | function intersection(one: LSP.Range, other: LSP.Range): LSP.Range | und... function isAfter (line 46) | function isAfter(one: LSP.Range, other: LSP.Range): boolean { function Min (line 72) | function Min(...positions: LSP.Position[]): LSP.Position | undefined { function isBefore (line 84) | function isBefore(one: LSP.Position, other: LSP.Position): boolean { function Max (line 95) | function Max(...positions: LSP.Position[]): LSP.Position | undefined { function isAfter (line 107) | function isAfter(one: LSP.Position, other: LSP.Position): boolean { function isBeforeOrEqual (line 110) | function isBeforeOrEqual(one: LSP.Position, other: LSP.Position): boolean { function fromSyntaxNode (line 120) | function fromSyntaxNode(node: TS.SyntaxNode): { start: LSP.Position; end... function equals (line 134) | function equals(one: LSP.Location, other: LSP.Location): boolean { FILE: src/utils/markdown-builder.ts function h (line 9) | function h(text: string, value: number = 1) { function italic (line 13) | function italic(value: string) { function bold (line 17) | function bold(value: string) { function boldItalic (line 21) | function boldItalic(value: string) { function separator (line 25) | function separator() { function space (line 29) | function space() { function newline (line 33) | function newline() { function blockQuote (line 40) | function blockQuote(value: string) { function inlineCode (line 44) | function inlineCode(value: string) { function codeBlock (line 48) | function codeBlock(language: string, value: string): string { function li (line 56) | function li(value: string) { function ol (line 60) | function ol(value: string) { function link (line 64) | function link(name: string, href: string) { function filepathString (line 68) | function filepathString(value: string) { function p (line 72) | function p(...strs: string[]) { type MarkdownStringTextNewlineStyle (line 79) | const enum MarkdownStringTextNewlineStyle { class MarkdownBuilder (line 84) | class MarkdownBuilder { method constructor (line 85) | constructor(public value = '') { } method appendText (line 87) | appendText(value: string, newlineStyle: MarkdownStringTextNewlineStyle... method appendNewline (line 96) | appendNewline(): MarkdownBuilder { method fromMarkdown (line 106) | fromMarkdown(...values: (string | string[])[]): MarkdownBuilder { method appendMarkdown (line 113) | appendMarkdown(value: string): MarkdownBuilder { method appendCodeblock (line 118) | appendCodeblock(langId: string, code: string): MarkdownBuilder { method toMarkupContent (line 127) | toMarkupContent(): MarkupContent { method toString (line 134) | toString() { function escapeMarkdownSyntaxTokens (line 139) | function escapeMarkdownSyntaxTokens(text: string): string { FILE: src/utils/maybe.ts class Maybe (line 21) | class Maybe { method constructor (line 22) | constructor(private value: T | null | undefined) {} method of (line 27) | static of(value: T | null | undefined): Maybe { method none (line 34) | static none(): Maybe { method map (line 41) | map(fn: (value: T) => U | null | undefined): Maybe { method flatMap (line 48) | flatMap(fn: (value: T) => Maybe): Maybe { method filter (line 55) | filter(predicate: (value: T) => boolean): Maybe { method getOrElse (line 64) | getOrElse(defaultValue: T | U): T | U { method exists (line 71) | exists(): boolean { method equals (line 78) | equals(other: T): boolean { method ifPresent (line 89) | ifPresent(action: (value: T) => void): Maybe { method get (line 99) | get(): T | null | undefined { FILE: src/utils/node-types.ts function isVariableDefinition (line 28) | function isVariableDefinition(node: SyntaxNode): boolean { function isComment (line 35) | function isComment(node: SyntaxNode): boolean { function isShebang (line 39) | function isShebang(node: SyntaxNode) { function isFunctionDefinition (line 67) | function isFunctionDefinition(node: SyntaxNode): boolean { function isCommand (line 75) | function isCommand(node: SyntaxNode): boolean { function isFishShippedFunctionName (line 83) | function isFishShippedFunctionName(node: SyntaxNode): boolean { function isTopLevelFunctionDefinition (line 116) | function isTopLevelFunctionDefinition(node: SyntaxNode): boolean { function isTopLevelDefinition (line 126) | function isTopLevelDefinition(node: SyntaxNode): boolean { function isDefinition (line 144) | function isDefinition(node: SyntaxNode): boolean { function isCommandName (line 151) | function isCommandName(node: SyntaxNode): boolean { function isProgram (line 166) | function isProgram(node: SyntaxNode): boolean { function isError (line 170) | function isError(node: SyntaxNode | null = null): boolean { function isForLoop (line 177) | function isForLoop(node: SyntaxNode): boolean { function isIfStatement (line 181) | function isIfStatement(node: SyntaxNode): boolean { function isElseStatement (line 185) | function isElseStatement(node: SyntaxNode): boolean { function isConditional (line 190) | function isConditional(node: SyntaxNode): boolean { function isIfOrElseIfConditional (line 194) | function isIfOrElseIfConditional(node: SyntaxNode): boolean { function isPossibleUnreachableStatement (line 198) | function isPossibleUnreachableStatement(node: SyntaxNode): boolean { function isClause (line 209) | function isClause(node: SyntaxNode): boolean { function isStatement (line 220) | function isStatement(node: SyntaxNode): boolean { function isBlock (line 237) | function isBlock(node: SyntaxNode): boolean { function isEnd (line 241) | function isEnd(node: SyntaxNode): boolean { function isScope (line 249) | function isScope(node: SyntaxNode): boolean { function isSemicolon (line 253) | function isSemicolon(node: SyntaxNode): boolean { function isNewline (line 257) | function isNewline(node: SyntaxNode): boolean { function isBlockBreak (line 261) | function isBlockBreak(node: SyntaxNode): boolean { function isString (line 265) | function isString(node: SyntaxNode) { function isStringCharacter (line 272) | function isStringCharacter(node: SyntaxNode) { function isEmptyString (line 279) | function isEmptyString(node: SyntaxNode) { function isEndStdinCharacter (line 289) | function isEndStdinCharacter(node: SyntaxNode) { function isEscapeSequence (line 297) | function isEscapeSequence(node: SyntaxNode) { function isLongOption (line 301) | function isLongOption(node: SyntaxNode): boolean { function isShortOption (line 311) | function isShortOption(node: SyntaxNode): boolean { function isOption (line 323) | function isOption(node: SyntaxNode): boolean { function isOptionValue (line 328) | function isOptionValue(node: SyntaxNode): boolean { function isJoinedShortOption (line 345) | function isJoinedShortOption(node: SyntaxNode) { function hasShortOptionCharacter (line 351) | function hasShortOptionCharacter(node: SyntaxNode, findChar: string) { function isPipe (line 358) | function isPipe(node: SyntaxNode): boolean { function isInvalidVariableName (line 364) | function isInvalidVariableName(node: SyntaxNode): boolean { function gatherSiblingsTillEol (line 378) | function gatherSiblingsTillEol(node: SyntaxNode): SyntaxNode[] { function isBeforeCommand (line 392) | function isBeforeCommand(node: SyntaxNode) { function isVariableExpansion (line 403) | function isVariableExpansion(node: SyntaxNode) { function isVariableExpansionWithName (line 412) | function isVariableExpansionWithName(node: SyntaxNode, variableName: str... function isVariable (line 416) | function isVariable(node: SyntaxNode) { function isCompleteFlagCommandName (line 424) | function isCompleteFlagCommandName(node: SyntaxNode) { function findPreviousSibling (line 440) | function findPreviousSibling(node?: SyntaxNode): SyntaxNode | null { function findParentCommand (line 459) | function findParentCommand(node?: SyntaxNode): SyntaxNode | null { function isConcatenation (line 473) | function isConcatenation(node: SyntaxNode) { function isAliasWithName (line 477) | function isAliasWithName(node: SyntaxNode, aliasName: string) { function findParentFunction (line 490) | function findParentFunction(node?: SyntaxNode): SyntaxNode | null { function findParentVariableDefinitionKeyword (line 504) | function findParentVariableDefinitionKeyword(node?: SyntaxNode): SyntaxN... function findForLoopVariable (line 521) | function findForLoopVariable(node: SyntaxNode): SyntaxNode | null { function findSetDefinedVariable (line 537) | function findSetDefinedVariable(node: SyntaxNode): SyntaxNode | null { function hasParent (line 561) | function hasParent(node: SyntaxNode, callbackfn: (n: SyntaxNode) => bool... function findParent (line 572) | function findParent(node: SyntaxNode, callbackfn: (n: SyntaxNode) => boo... function findParentWithFallback (line 586) | function findParentWithFallback(node: SyntaxNode, callbackfn: (n: Syntax... function hasParentFunction (line 597) | function hasParentFunction(node: SyntaxNode) { function findFunctionScope (line 611) | function findFunctionScope(node: SyntaxNode) { function scopeCheck (line 622) | function scopeCheck(node1: SyntaxNode, node2: SyntaxNode): boolean { function wordNodeIsCommand (line 631) | function wordNodeIsCommand(node: SyntaxNode) { function isSwitchStatement (line 638) | function isSwitchStatement(node: SyntaxNode) { function isCaseClause (line 642) | function isCaseClause(node: SyntaxNode) { function isReturn (line 646) | function isReturn(node: SyntaxNode) { function isExit (line 650) | function isExit(node: SyntaxNode) { function isConditionalCommand (line 654) | function isConditionalCommand(node: SyntaxNode) { function isCommandFlag (line 658) | function isCommandFlag(node: SyntaxNode) { function isRegexArgument (line 666) | function isRegexArgument(n: SyntaxNode): boolean { function isUnmatchedStringCharacter (line 670) | function isUnmatchedStringCharacter(node: SyntaxNode) { function isPartialForLoop (line 680) | function isPartialForLoop(node: SyntaxNode) { function isInlineComment (line 702) | function isInlineComment(node: SyntaxNode) { function isCommandWithName (line 709) | function isCommandWithName(node: SyntaxNode, ...commandNames: string[]) { function isArgumentThatCanContainCommandCalls (line 714) | function isArgumentThatCanContainCommandCalls(node: SyntaxNode) { function isStringWithCommandCall (line 748) | function isStringWithCommandCall(node: SyntaxNode) { function isReturnStatusNumber (line 783) | function isReturnStatusNumber(node: SyntaxNode) { function isConcatenatedValue (line 790) | function isConcatenatedValue(node: SyntaxNode) { function isBraceExpansion (line 798) | function isBraceExpansion(node: SyntaxNode) { function isFilepath (line 810) | function isFilepath(node: SyntaxNode): boolean { function isDirectoryPath (line 848) | function isDirectoryPath(node: SyntaxNode): boolean { function isPathNode (line 881) | function isPathNode(node: SyntaxNode): boolean { function isBuiltin (line 885) | function isBuiltin(node: SyntaxNode) { function isCompleteCommandName (line 889) | function isCompleteCommandName(node: SyntaxNode) { function isBuiltinCommand (line 903) | function isBuiltinCommand(node: SyntaxNode): boolean { function isRedirect (line 915) | function isRedirect(n: SyntaxNode): boolean { function getRedirectOperatorNode (line 927) | function getRedirectOperatorNode(n: SyntaxNode): SyntaxNode | null { FILE: src/utils/path-resolution.ts function findFirstExistingFile (line 16) | function findFirstExistingFile(...possiblePaths: string[]): string | und... function isExistingFile (line 30) | function isExistingFile(path: string): boolean { function isBundledEnvironment (line 41) | function isBundledEnvironment(): boolean { function getCurrentExecutablePath (line 49) | function getCurrentExecutablePath(): string { function getProjectRootPath (line 66) | function getProjectRootPath(): string { function getFishBuildTimeFilePath (line 98) | function getFishBuildTimeFilePath(): string { function getManFilePath (line 121) | function getManFilePath(): string { FILE: src/utils/polyfills.ts type String (line 43) | interface String { FILE: src/utils/process-env.ts type AutoloadedFishVariableName (line 28) | type AutoloadedFishVariableName = typeof autoloadedFishVariableNames[num... function setupProcessEnvExecFile (line 32) | async function setupProcessEnvExecFile() { function setupFallbackProcessEnv (line 59) | function setupFallbackProcessEnv() { function includes (line 82) | function includes(name: string): name is AutoloadedFishVariableName { function get (line 90) | function get(variable: AutoloadedFishVariableName): string[] { function asShowDocumentation (line 100) | function asShowDocumentation(variable: AutoloadedFishVariableName): stri... function update (line 114) | function update(variable: AutoloadedFishVariableName, ...newValues: stri... function read (line 124) | function read(variable: AutoloadedFishVariableName): string { function all (line 131) | function all(): AutoloadedFishVariableName[] { function find (line 138) | function find(key: string): string[] { function has (line 148) | function has(key: string): boolean { function getHoverDocumentation (line 152) | function getHoverDocumentation(variable: string): string { function findAutoloadedFunctionPath (line 177) | function findAutoloadedFunctionPath(functionName: string): string | null { FILE: src/utils/progress-notification.ts type ProgressAction (line 6) | type ProgressAction = class ProgressNotification (line 16) | class ProgressNotification implements WorkDoneProgressReporter { method constructor (line 24) | private constructor(token: string) { method isSupported (line 29) | public static isSupported(): boolean { method create (line 36) | public static async create(caller?: string): Promise { function setupServerWithConnection (line 157) | function setupServerWithConnection(connection: Connection): void { function startServer (line 178) | function startServer(connectionType: ConnectionType = 'stdio', options: ... function timeOperation (line 192) | async function timeOperation( function fixupStartPath (line 216) | function fixupStartPath(startPath: string | undefined): string | undefin... type TimeServerOpts (line 228) | type TimeServerOpts = { function timeServerStartup (line 247) | async function timeServerStartup( type AlignedItem (line 469) | type AlignedItem = string | { function processAlignedItem (line 494) | function processAlignedItem(item: AlignedItem, availableWidth: number, d... function maxWidthForOutput (line 633) | function maxWidthForOutput(): number { function formatAlignedColumns (line 679) | function formatAlignedColumns(items: AlignedItem[], maxWidth?: number): ... function stdoutSeparator (line 773) | function stdoutSeparator(): void { FILE: src/utils/symbol-documentation-builder.ts class DocumentationStringBuilder (line 18) | class DocumentationStringBuilder { method constructor (line 19) | constructor( method outer (line 27) | private get outer() { method precedingComments (line 39) | private get precedingComments(): string { method text (line 52) | get text(): string { method shortenedUri (line 65) | get shortenedUri(): string { method toString (line 71) | toString() { function create (line 97) | function create(name: string, uri: string, kind: SymbolKind, inner: Synt... function getPrecedingCommentString (line 102) | function getPrecedingCommentString(node: SyntaxNode): string { function hasPrecedingFunctionDefinition (line 112) | function hasPrecedingFunctionDefinition(node: SyntaxNode): boolean { FILE: src/utils/translation.ts constant RE_PATHSEP_WINDOWS (line 15) | const RE_PATHSEP_WINDOWS = /\\/g; function isUri (line 17) | function isUri(stringOrUri: unknown): stringOrUri is DocumentUri { type PathLike (line 26) | type PathLike = string; function isPath (line 27) | function isPath(pathOrUri: unknown): pathOrUri is PathLike { function isTextDocument (line 37) | function isTextDocument(value: unknown): value is TextDocument { function isTextDocumentItem (line 61) | function isTextDocumentItem(value: unknown): value is TextDocumentItem { function uriToPath (line 78) | function uriToPath(stringUri: DocumentUri): PathLike { function pathToUri (line 83) | function pathToUri(filepath: PathLike, documents?: Documents | undefined... function normalizePath (line 103) | function normalizePath(filePath: PathLike): PathLike { function normalizeFsPath (line 111) | function normalizeFsPath(fsPath: string): string { function pathToRelativeFunctionName (line 115) | function pathToRelativeFunctionName(filepath: PathLike): string { function uriInUserFunctions (line 120) | function uriInUserFunctions(uri: DocumentUri) { function nodeToSymbolInformation (line 125) | function nodeToSymbolInformation(node: SyntaxNode, uri: string): SymbolI... function nodeToDocumentSymbol (line 144) | function nodeToDocumentSymbol(node: SyntaxNode): DocumentSymbol { function createRange (line 172) | function createRange(startLine: number, startCharacter: number, endLine:... function toSelectionRange (line 185) | function toSelectionRange(range: SelectionRange): SelectionRange { function toLspDocument (line 193) | function toLspDocument(filename: string, content: string): LspDocument { function toSymbolKind (line 198) | function toSymbolKind(node: SyntaxNode): SymbolKind { function symbolKindToString (line 216) | function symbolKindToString(kind: SymbolKind) { function uriToReadablePath (line 242) | function uriToReadablePath(uri: DocumentUri | WorkspaceUri): string { function symbolKindsFromNode (line 276) | function symbolKindsFromNode(node: SyntaxNode): { kindType: SymbolKind; ... type AutoloadType (line 285) | type AutoloadType = 'conf.d' | 'functions' | 'completions' | 'config' | ''; type AutoloadFunctionCallback (line 286) | type AutoloadFunctionCallback = (n: SyntaxNode) => boolean; function isAutoloadedUriLoadsFunction (line 295) | function isAutoloadedUriLoadsFunction(document: LspDocument): (n: Syntax... function isAutoloadedUriLoadsFunctionName (line 323) | function isAutoloadedUriLoadsFunctionName(document: LspDocument): (n: Sy... function isAutoloadedUriLoadsAliasName (line 339) | function isAutoloadedUriLoadsAliasName(document: LspDocument): (n: Synta... function shouldHaveAutoloadedFunction (line 350) | function shouldHaveAutoloadedFunction(document: LspDocument): boolean { function formatTextWithIndents (line 354) | function formatTextWithIndents(doc: LspDocument, line: number, text: str... FILE: src/utils/tree-sitter.ts function isSyntaxNode (line 8) | function isSyntaxNode(obj: unknown): obj is SyntaxNode { function getChildNodes (line 40) | function getChildNodes(root: SyntaxNode): SyntaxNode[] { function getNamedChildNodes (line 55) | function getNamedChildNodes(root: SyntaxNode): SyntaxNode[] { function findChildNodes (line 70) | function findChildNodes(root: SyntaxNode, predicate: (node: SyntaxNode) ... function collectNodesByTypes (line 91) | function collectNodesByTypes(root: SyntaxNode, types: string[]): SyntaxN... function getParentNodes (line 115) | function getParentNodes(child: SyntaxNode): SyntaxNode[] { function findFirstParent (line 185) | function findFirstParent(node: SyntaxNode, predicate: (node: SyntaxNode)... function getSiblingNodes (line 204) | function getSiblingNodes( function findFirstNamedSibling (line 225) | function findFirstNamedSibling( function findFirstSibling (line 242) | function findFirstSibling( function findEnclosingScope (line 267) | function findEnclosingScope(node: SyntaxNode): SyntaxNode { function getNodeText (line 290) | function getNodeText(node: SyntaxNode | null): string { function getNodesTextAsSingleLine (line 304) | function getNodesTextAsSingleLine(nodes: SyntaxNode[]): string { function firstAncestorMatch (line 315) | function firstAncestorMatch( function ancestorMatch (line 339) | function ancestorMatch( function descendantMatch (line 362) | function descendantMatch( function hasNode (line 373) | function hasNode(allNodes: SyntaxNode[], matchNode: SyntaxNode) { function getNamedNeighbors (line 382) | function getNamedNeighbors(node: SyntaxNode): SyntaxNode[] { function getRange (line 386) | function getRange(node: SyntaxNode): Range { function nodeLogFormatter (line 406) | function nodeLogFormatter(node: SyntaxNode | null) { function findNodeAt (line 424) | function findNodeAt(tree: Tree, line: number, column: number): SyntaxNod... function equalRanges (line 442) | function equalRanges(a: Range, b: Range): boolean { function containsRange (line 457) | function containsRange(outer: Range, inner: Range): boolean { function precedesRange (line 478) | function precedesRange(before: Range, after: Range): boolean { function getNodeAt (line 491) | function getNodeAt(tree: Tree, line: number, column: number): SyntaxNode... function containsNode (line 505) | function containsNode(outer: SyntaxNode, inner: SyntaxNode): boolean { function getNodeAtRange (line 509) | function getNodeAtRange(root: SyntaxNode, range: Range): SyntaxNode | nu... function positionToPoint (line 516) | function positionToPoint(pos: Position): Point { function pointToPosition (line 523) | function pointToPosition(point: Point): Position { function rangeToPoint (line 530) | function rangeToPoint(range: Range): Point { function getRangeWithPrecedingComments (line 537) | function getRangeWithPrecedingComments(node: SyntaxNode): Range { function getPrecedingComments (line 550) | function getPrecedingComments(node: SyntaxNode | null): string { function commentsHelper (line 564) | function commentsHelper(node: SyntaxNode | null): string { function isFishExtension (line 581) | function isFishExtension(path: URI | string): boolean { function isPositionWithinRange (line 586) | function isPositionWithinRange(position: Position, range: Range): boolean { function isPositionAfter (line 598) | function isPositionAfter(first: Position, second: Position): boolean { function isNodeWithinRange (line 604) | function isNodeWithinRange(node: SyntaxNode, range: Range): boolean { function isNodeWithinOtherNode (line 618) | function isNodeWithinOtherNode(node: SyntaxNode, otherNode: SyntaxNode):... function isPositionInNode (line 625) | function isPositionInNode(position: Position, node: SyntaxNode): boolean { function getLeafNodes (line 640) | function getLeafNodes(node: SyntaxNode): SyntaxNode[] { function getLastLeafNode (line 654) | function getLastLeafNode(node: SyntaxNode, maxIndex: number = Infinity):... function getNodeAtPosition (line 659) | function getNodeAtPosition(tree: Tree, position: { line: number; charact... class TreeWalker (line 685) | class TreeWalker { method walkUp (line 689) | static walkUp(node: SyntaxNode, predicate: (n: SyntaxNode) => boolean)... method walkUpAll (line 703) | static walkUpAll(node: SyntaxNode, predicate: (n: SyntaxNode) => boole... method findFirstChild (line 718) | static findFirstChild(node: SyntaxNode, predicate: (n: SyntaxNode) => ... method findHighest (line 726) | static findHighest(node: SyntaxNode, predicate: (n: SyntaxNode) => boo... method walkDown (line 734) | static walkDown(node: SyntaxNode, predicate: (n: SyntaxNode) => boolea... method walkDownAll (line 749) | static walkDownAll(node: SyntaxNode, predicate: (n: SyntaxNode) => boo... FILE: src/utils/workspace-manager.ts type WorkspaceUpdateOptions (line 10) | type WorkspaceUpdateOptions = { class WorkspaceManager (line 19) | class WorkspaceManager { method copy (line 26) | public copy(workspaceManager: WorkspaceManager) { method setCurrent (line 38) | public setCurrent(workspace: Workspace) { method current (line 47) | public get current(): Workspace | undefined { method add (line 53) | public add(...workspaces: Workspace[]): void { method remove (line 63) | public remove(...workspaces: Workspace[]): void { method findContainingWorkspace (line 76) | public findContainingWorkspace(doc: DocumentUri | LspDocument): Worksp... method hasContainingWorkspace (line 85) | public hasContainingWorkspace(doc: DocumentUri | LspDocument): boolean { method clear (line 93) | public clear(): this { method all (line 104) | public get all() { method allUrisInAllWorkspaces (line 123) | public get allUrisInAllWorkspaces(): DocumentUri[] { method workspacesToAnalyze (line 134) | public workspacesToAnalyze(): Workspace[] { method needsAnalysis (line 141) | public needsAnalysis(): boolean { method allWorkspacesWithDocument (line 148) | public allWorkspacesWithDocument(doc: LspDocument): Workspace[] { method allAnalysisDocuments (line 157) | public allAnalysisDocuments(): LspDocument[] { method isLargeAnalysis (line 172) | public get isLargeAnalysis(): boolean { method findDocumentInAnyWorkspace (line 176) | public findDocumentInAnyWorkspace(uri: DocumentUri): LspDocument | null { method getWorkspaceContainingUri (line 187) | private getWorkspaceContainingUri(uri: DocumentUri): Workspace | null { method getExistingWorkspaceOrCreateNew (line 212) | private getExistingWorkspaceOrCreateNew(uri: DocumentUri): Workspace |... method getDocumentUriFromParams (line 230) | private getDocumentUriFromParams(param: DocumentUri | LspDocument | Pa... method handleOpenDocument (line 246) | public handleOpenDocument(doc: DocumentUri | LspDocument): Workspace |... method handleCloseDocument (line 287) | public handleCloseDocument(doc: DocumentUri | LspDocument): Workspace ... method handleUpdateDocument (line 331) | public handleUpdateDocument(doc: DocumentUri | LspDocument, options: W... method handleWorkspaceChangeEvent (line 379) | public handleWorkspaceChangeEvent(event: WorkspaceFoldersChangeEvent, ... method analyzePendingDocuments (line 429) | public async analyzePendingDocuments( class WorkspaceStack (line 536) | class WorkspaceStack { method copy (line 539) | public copy(workspaceStack: WorkspaceStack) { method push (line 544) | public push(workspace: Workspace): void { method pop (line 549) | public pop(): Workspace | undefined { method current (line 553) | public get current(): Workspace | undefined { method allOpened (line 557) | public get allOpened(): Workspace[] { method findIndex (line 561) | public findIndex(workspace: Workspace): number { method has (line 565) | public has(workspace: Workspace): boolean { method isEmpty (line 569) | public isEmpty(): boolean { method clear (line 573) | public clear(): void { method length (line 577) | public get length(): number { method remove (line 581) | public remove(...workspaces: Workspace[]): void { FILE: src/utils/workspace.ts type AnalyzedWorkspace (line 16) | type AnalyzedWorkspace = { type AnalyzeWorkspacePromise (line 23) | type AnalyzeWorkspacePromise = Promise<{ function getWorkspacePathsFromInitializationParams (line 35) | function getWorkspacePathsFromInitializationParams(params: LSP.Initializ... function getFileUriSet (line 56) | async function getFileUriSet(path: string) { function syncGetFileUriSet (line 82) | function syncGetFileUriSet(path: string) { function initializeDefaultFishWorkspaces (line 116) | async function initializeDefaultFishWorkspaces(...uris: string[]): Promi... type WorkspaceUri (line 165) | type WorkspaceUri = string; type FishWorkspace (line 167) | interface FishWorkspace extends LSP.WorkspaceFolder { class Workspace (line 177) | class Workspace implements FishWorkspace { method create (line 184) | public static async create(name: string, uri: DocumentUri | WorkspaceU... method syncCreateFromUri (line 197) | public static syncCreateFromUri(uri: string) { method constructor (line 218) | public constructor(name: string, uri: WorkspaceUri, path: string, file... method allUris (line 225) | public get allUris(): Set { method contains (line 229) | contains(...checkUris: DocumentUri[]): boolean { method shouldContain (line 243) | shouldContain(uri: DocumentUri) { method addUri (line 247) | addUri(uri: DocumentUri) { method add (line 251) | add(...newUris: DocumentUri[]) { method addDocument (line 255) | addDocument(...newDocs: LspDocument[]) { method addPending (line 260) | addPending(...newUris: DocumentUri[]) { method findMatchingFishIdentifiers (line 264) | findMatchingFishIdentifiers(fishIdentifier: string) { method findDocument (line 275) | findDocument(callbackfn: (doc: LspDocument) => boolean): LspDocument |... method isMutable (line 291) | isMutable() { method isLoadable (line 295) | isLoadable() { method isAnalyzed (line 299) | isAnalyzed() { method hasCompletionUri (line 303) | hasCompletionUri(fishIdentifier: string) { method hasFunctionUri (line 308) | hasFunctionUri(fishIdentifier: string) { method hasCompletionAndFunction (line 313) | hasCompletionAndFunction(fishIdentifier: string) { method getCompletionUri (line 317) | getCompletionUri(fishIdentifier: string) { method pendingDocuments (line 322) | pendingDocuments(): LspDocument[] { method allDocuments (line 336) | allDocuments(): LspDocument[] { method paths (line 355) | get paths(): string[] { method getUris (line 359) | getUris(): DocumentUri[] { method equals (line 363) | equals(other: FishWorkspace | null) { method needsAnalysis (line 368) | public needsAnalysis() { method setAllPending (line 372) | setAllPending() { method toTreeString (line 378) | toTreeString() { method showAllTreeSitterParseTrees (line 399) | showAllTreeSitterParseTrees() { type FishUriWorkspace (line 411) | interface FishUriWorkspace { function isTmpWorkspace (line 423) | function isTmpWorkspace(uri: string) { function getFuncedOrCommandlineWorkspaceRoot (line 436) | function getFuncedOrCommandlineWorkspaceRoot(): string | undefined { function trimFishFilePath (line 444) | function trimFishFilePath(uri: string): string | undefined { function getWorkspaceRootFromUri (line 456) | function getWorkspaceRootFromUri(uri: string): string | undefined { function getWorkspaceName (line 515) | function getWorkspaceName(uri: string): string { function isFishWorkspacePath (line 543) | function isFishWorkspacePath(path: string): boolean { function isInFishWorkspace (line 561) | function isInFishWorkspace(uri: string): boolean { function initializeEnvWorkspaces (line 565) | function initializeEnvWorkspaces(): FishUriWorkspace[] { function create (line 577) | function create(uri: string): FishUriWorkspace | null { class UriTracker (line 628) | class UriTracker { method create (line 632) | static create(...uris: string[]) { method add (line 643) | add(...uris: string[]) { method addPending (line 655) | addPending(uris: string[]) { method markIndexed (line 667) | markIndexed(uri: string): void { method markPending (line 675) | markPending(uri: string): void { method all (line 683) | get all(): string[] { method allAsSet (line 687) | allAsSet(): Set { method indexed (line 694) | get indexed(): string[] { method pending (line 701) | get pending(): string[] { method pendingCount (line 708) | get pendingCount(): number { method indexedCount (line 715) | get indexedCount(): number { method isIndexed (line 722) | isIndexed(uri: string): boolean { method has (line 726) | has(uri: string): boolean { FILE: src/virtual-fs.ts type FindMatchPredicateFunction (line 24) | type FindMatchPredicateFunction = (vf: VirtualFile) => boolean; type FindMatchPredicate (line 25) | type FindMatchPredicate = string | FindMatchPredicateFunction; class VirtualFile (line 27) | class VirtualFile { method constructor (line 30) | private constructor( method create (line 55) | static create( method getContent (line 62) | async getContent(): Promise { method type (line 70) | get type() { method exists (line 74) | exists(): boolean { method getParentDirectory (line 78) | getParentDirectory(): string { method depth (line 89) | depth(): number { method basename (line 95) | basename(): string { method insideDirectory (line 99) | insideDirectory(dir: string): boolean { class VirtualFileSystem (line 114) | class VirtualFileSystem { method constructor (line 121) | constructor() { method setupVirtualFS (line 128) | private async setupVirtualFS() { method initialize (line 150) | async initialize(): Promise { method getVirtualPath (line 214) | getVirtualPath(relativePath: string): string { method getMountPoint (line 225) | getMountPoint(): string { method isReady (line 232) | isReady(): boolean { method displayTree (line 239) | displayTree(): string { method cleanup (line 294) | async cleanup(): Promise { method find (line 303) | find(predicate: FindMatchPredicate): VirtualFile | undefined { method fishFiles (line 310) | get fishFiles() { method getPathOrFallback (line 347) | getPathOrFallback(vfsRelativePath: string, ...fallbackPaths: string[])... FILE: src/web.ts class FishLspWeb (line 9) | class FishLspWeb { method constructor (line 12) | constructor() { method setupHandlers (line 18) | private setupHandlers() { method listen (line 73) | public listen() { method dispose (line 77) | public dispose() { FILE: tests/alias-conversion.test.ts function createTestDocument (line 22) | function createTestDocument(content: string): LspDocument { function createDiagnostic (line 31) | function createDiagnostic(line: number, character: number, length: numbe... FILE: tests/code-action.test.ts type LocalFunctionCallType (line 639) | type LocalFunctionCallType = { function isMatchingCompletionOption (line 644) | function isMatchingCompletionOption(node: SyntaxNode) { FILE: tests/completion-startup-config.test.ts type AllowedEmptyCommandResult (line 20) | type AllowedEmptyCommandResult = { kind: FishCompletionItemKind; command... function setup (line 23) | async function setup(): Promise { function hasKind (line 33) | function hasKind(kind: FishCompletionItemKind): boolean { function getCountForKind (line 38) | function getCountForKind(kind: FishCompletionItemKind): number { type SetupResult (line 46) | type SetupResult = SetupItem & { function simpleParrallelTestSetupItemsInitializer (line 50) | async function simpleParrallelTestSetupItemsInitializer( type TestItemInput (line 180) | type TestItemInput = { label: string; kinds: FishCompletionItemKind[]; }; type TestItemExpectedOutput (line 181) | type TestItemExpectedOutput = { found: boolean; }; FILE: tests/diagnostics.test.ts function fishTextDocumentItem (line 58) | function fishTextDocumentItem(uri: string, text: string): LspDocument { function severityStr (line 67) | function severityStr(severity: DiagnosticSeverity | undefined) { function logDiagnostics (line 77) | function logDiagnostics(diagnostic: Diagnostic, root: SyntaxNode) { function mapDiagnostics (line 88) | function mapDiagnostics(diagnostics: Diagnostic) { function extractDiagnostics (line 95) | function extractDiagnostics(tree: Tree) { type ConditionalOutput (line 380) | type ConditionalOutput = { FILE: tests/document-highlights.test.ts function createHighlightRequest (line 32) | function createHighlightRequest(doc: LspDocument, position: Position) { FILE: tests/document-test-helpers.ts function testOpenDocument (line 20) | function testOpenDocument(doc: LspDocument): void { function testCloseDocument (line 54) | function testCloseDocument(uri: string): void { function testClearDocuments (line 73) | function testClearDocuments(): void { function testChangeDocument (line 96) | function testChangeDocument(uri: string, newText: string, version?: numb... function testGetDocumentCount (line 119) | function testGetDocumentCount(): number { function testHasDocument (line 130) | function testHasDocument(uri: string): boolean { FILE: tests/exec.test.ts type PrintDocsParams (line 75) | type PrintDocsParams = EmbeddedFishResult & { function printDocsStdout (line 79) | function printDocsStdout(input: PrintDocsParams) { FILE: tests/fish-symbol.test.ts function getGlobalSymbols (line 18) | function getGlobalSymbols(symbols: FishSymbol[]): FishSymbol[] { function getLocalSymbols (line 22) | function getLocalSymbols(symbols: FishSymbol[]): FishSymbol[] { function clientTree (line 172) | function clientTree(symbol: FishSymbol[]) { type NestedStringArray (line 185) | type NestedStringArray = Array; function expectedClientTree (line 186) | function expectedClientTree(names: NestedStringArray[]): string { FILE: tests/fish-syntax-node.test.ts constant SHOULD_LOG (line 47) | let SHOULD_LOG = false; FILE: tests/formatting.test.ts function helperOutputFormattedString (line 13) | function helperOutputFormattedString(input: string) { FILE: tests/helpers.ts function setupStartupMock (line 41) | function setupStartupMock() { function setLogger (line 264) | function setLogger( function createMockConnection (line 285) | function createMockConnection(): LSP.Connection { function getMockedInitializationFunctions (line 410) | async function getMockedInitializationFunctions() { function resolveLspDocumentForHelperTestFile (line 432) | function resolveLspDocumentForHelperTestFile(fname: string, inAutoloadPa... function resolveAbsPath (line 441) | async function resolveAbsPath(fname: string): Promise { function positionStr (line 446) | function positionStr(pos: Point) { function parseFile (line 450) | async function parseFile(fname: string): Promise { function createFakeUriPath (line 457) | function createFakeUriPath(path: string): string { type TestLspDocument (line 464) | type TestLspDocument = { function createTestWorkspace (line 469) | function createTestWorkspace( type FakeLspDocumentType (line 482) | type FakeLspDocumentType = { class FakeLspDocument (line 489) | class FakeLspDocument extends LspDocument { method constructor (line 490) | constructor(input: FakeLspDocumentType = { languageId: 'fish', version... method from (line 494) | static from(uri: string, ...text: string[]): FakeLspDocument { function createFakeLspDocument (line 499) | function createFakeLspDocument(name: string, ...text: string[]): LspDocu... function setupTestCallback (line 520) | function setupTestCallback(parser: Parser) { function getAllTypesOfNestedArrays (line 535) | function getAllTypesOfNestedArrays(doc: LspDocument, root: SyntaxNode) { type PrintClientTreeOpts (line 553) | type PrintClientTreeOpts = { log: boolean; }; function printClientTree (line 558) | function printClientTree( function locationAsString (line 589) | function locationAsString(loc: Location): string[] { function rangeAsString (line 596) | function rangeAsString(range: Range): string { function fakeDocumentTrimUri (line 603) | function fakeDocumentTrimUri(doc: LspDocument): string { function printLocations (line 613) | function printLocations(locations: Location[], opts: { function fishLocations (line 665) | async function fishLocations(): Promise { type FishLocations (line 714) | type FishLocations = { type FishTestWorkspaceLocation (line 807) | type FishTestWorkspaceLocation = { function getAllFilesInDir (line 813) | function getAllFilesInDir(dir: string): { function truncatedUri (line 880) | function truncatedUri(doc: LspDocument, opts: { FILE: tests/issue-140-complete-command-quoting.test.ts constant COMMAND_NAME (line 39) | const COMMAND_NAME = 'mas'; constant MAS_REPRESENTATIONS (line 53) | const MAS_REPRESENTATIONS: { input: string; description: string; nodeTyp... FILE: tests/node-types.test.ts function parseStringForNodeType (line 21) | function parseStringForNodeType(str: string, predicate: (n: SyntaxNode) ... function skipSetQuery (line 27) | function skipSetQuery(node: SyntaxNode) { function walkUpSiblings (line 41) | function walkUpSiblings(n: SyntaxNode) { function walkUpAndGather (line 49) | function walkUpAndGather(n: SyntaxNode, predicate: (_: SyntaxNode) => bo... FILE: tests/parsing-defintions.test.ts type PrintClientTreeOpts (line 31) | type PrintClientTreeOpts = { log: boolean; }; function printClientTree (line 32) | function printClientTree( function getCompletionsForCommand (line 62) | async function getCompletionsForCommand(command: string) { function getFlagsFromCompletion (line 69) | function getFlagsFromCompletion(completions: string[][]): string[] { function getAllOptionFlags (line 73) | function getAllOptionFlags(flags: Option[]): string[] { FILE: tests/parsing-env-values.test.ts type PrintClientTreeOpts (line 26) | type PrintClientTreeOpts = { log: boolean; }; FILE: tests/parsing-export-defintions.test.ts type PrintClientTreeOpts (line 32) | type PrintClientTreeOpts = { log: boolean; }; function printClientTree (line 33) | function printClientTree( FILE: tests/parsing-string-value.test.ts function getCommandArgNode (line 32) | function getCommandArgNode(input: string): Parser.SyntaxNode { FILE: tests/reference-locations.test.ts function setup (line 37) | function setup() { FILE: tests/semantic-tokens-helpers.ts type DecodedToken (line 7) | interface DecodedToken { function decodeSemanticTokens (line 24) | function decodeSemanticTokens( function findTokensByText (line 71) | function findTokensByText(tokens: DecodedToken[], text: string): Decoded... function findTokensByType (line 78) | function findTokensByType(tokens: DecodedToken[], tokenType: string): De... function findTokensByModifier (line 85) | function findTokensByModifier(tokens: DecodedToken[], modifier: string):... function findTokensWithModifiers (line 92) | function findTokensWithModifiers(tokens: DecodedToken[], ...modifiers: s... function expectTokenExists (line 99) | function expectTokenExists( function countTokensByType (line 131) | function countTokensByType(tokens: DecodedToken[], tokenType: string): n... function getUniqueTokenTypes (line 138) | function getUniqueTokenTypes(tokens: DecodedToken[]): string[] { function getUniqueModifiers (line 145) | function getUniqueModifiers(tokens: DecodedToken[]): string[] { function printTokens (line 153) | function printTokens(tokens: DecodedToken[], title?: string): void { FILE: tests/temp.ts type TempFileResult (line 9) | interface TempFileResult { function createFakeLspDocument (line 15) | function createFakeLspDocument(document: TextDocumentItem) { function createTempFishFile (line 32) | function createTempFishFile(content: string): TempFileResult { function withTempFishFile (line 72) | async function withTempFishFile( FILE: tests/test-workspace-utils.ts class Query (line 72) | class Query { method constructor (line 76) | private constructor() { } method create (line 81) | static create(): Query { method functions (line 88) | static functions(): Query { method completions (line 95) | static completions(): Query { method config (line 102) | static config(): Query { method confd (line 109) | static confd(): Query { method scripts (line 116) | static scripts(): Query { method autoloaded (line 123) | static autoloaded(): Query { method withName (line 130) | static withName(name: string): Query { method withPath (line 137) | static withPath(...patterns: string[]): Query { method firstMatch (line 144) | static firstMatch(): Query { method functions (line 153) | functions(): Query { method completions (line 164) | completions(): Query { method config (line 175) | config(): Query { method confd (line 186) | confd(): Query { method scripts (line 197) | scripts(): Query { method autoloaded (line 214) | autoloaded(): Query { method withName (line 230) | withName(name: string): Query { method withPath (line 243) | withPath(...patterns: string[]): Query { method firstMatch (line 254) | firstMatch(): Query { method execute (line 262) | execute(documents: LspDocument[]): LspDocument[] { type TestFileSpec (line 282) | interface TestFileSpec { function is (line 290) | function is(item: any): item is TestFileSpec { type TestFileSpecLegacy (line 295) | interface TestFileSpecLegacy { function is (line 301) | function is(item: any): item is TestFileSpecLegacy { function toNewFormat (line 305) | function toNewFormat(item: TestFileSpecLegacy): TestFileSpec { function is (line 321) | function is(item: any): item is TestFileSpecInput { type TestFileSpecInput (line 326) | type TestFileSpecInput = TestFileSpec | TestFileSpecLegacy; type TestWorkspaceConfig (line 331) | interface TestWorkspaceConfig { type ReadWorkspaceConfig (line 359) | interface ReadWorkspaceConfig { function is (line 365) | function is(item: any): item is ReadWorkspaceConfig { function fromInput (line 369) | function fromInput(input: string | ReadWorkspaceConfig): ReadWorkspaceCo... type WorkspaceSnapshot (line 384) | interface WorkspaceSnapshot { class TestFile (line 393) | class TestFile { method constructor (line 394) | private constructor( method function (line 402) | static function(name: string, content: string | string[]) { method completion (line 410) | static completion(name: string, content: string | string[]) { method config (line 418) | static config(content: string | string[]) { method confd (line 425) | static confd(name: string, content: string | string[]) { method script (line 433) | static script(name: string, content: string | string[]) { method custom (line 441) | static custom(relativePath: string, content: string | string[]) { method withShebang (line 445) | withShebang(shebang: string = '#!/usr/bin/env fish'): TestFile { method fromInput (line 454) | static fromInput(relativePath: string, content: string | string[]): Te... class TestWorkspace (line 480) | class TestWorkspace { method constructor (line 494) | private constructor(config: TestWorkspaceConfig = {}) { method createBaseWorkspace (line 525) | static createBaseWorkspace() { method reset (line 529) | reset() { method read (line 588) | static read(input: ReadWorkspaceConfig | string): TestWorkspace { method create (line 647) | static create(config?: TestWorkspaceConfig): TestWorkspace { method createSingle (line 667) | static createSingle( method createSingleFileReady (line 712) | static createSingleFileReady( method fromSnapshot (line 738) | static fromSnapshot(snapshotPath: string): TestWorkspace { method addFiles (line 750) | addFiles(...files: TestFileSpecInput[]): TestWorkspace { method addFile (line 770) | addFile(file: TestFileSpecInput): TestWorkspace { method inheritFilesFromExistingAutoloadedWorkspace (line 786) | inheritFilesFromExistingAutoloadedWorkspace(sourcePath: string): TestW... method editFile (line 844) | editFile(searchPath: string, newContent: string | string[]): void { method addDocuments (line 879) | addDocuments(...item: (LspDocument | TestFileSpec)[]): TestWorkspace { method addDocument (line 886) | addDocument(item: LspDocument | TestFileSpec): TestWorkspace { method initialize (line 953) | initialize() { method setup (line 961) | get setup() { method focus (line 1010) | focus(documentPath?: string | number): TestWorkspace { method setupWithFocus (line 1030) | get setupWithFocus() { method documents (line 1040) | get documents(): LspDocument[] { method focusedDocument (line 1047) | get focusedDocument(): LspDocument | null { method document (line 1052) | get document(): LspDocument | null { method workspace (line 1056) | get workspace(): Workspace | null { method name (line 1063) | get name(): string { method path (line 1070) | get path(): string { method uri (line 1077) | get uri(): string { method getDocument (line 1084) | getDocument(searchPath: string): LspDocument | undefined { method getDocuments (line 1105) | getDocuments(...queries: Query[]): LspDocument[] { method find (line 1139) | find(...query: (Query | string | number)[]) { method getWorkspace (line 1177) | getWorkspace(): Workspace | null { method asResult (line 1184) | asResult() { method inspect (line 1201) | inspect(): TestWorkspace { method dumpFileTree (line 1209) | dumpFileTree(): string { method writeSnapshot (line 1237) | writeSnapshot(outputPath?: string): string { method _generateUniqueName (line 1253) | private _generateUniqueName(): string { method _generateRandomName (line 1259) | private static _generateRandomName(): string { method _createWorkspaceFiles (line 1265) | private async _createWorkspaceFiles(): Promise { method _setupWorkspace (line 1320) | private async _setupWorkspace(): Promise { method analyzeAllFiles (line 1369) | async analyzeAllFiles() { method _resetAnalysisState (line 1408) | private async _resetAnalysisState(): Promise { method _cleanup (line 1425) | private async _cleanup(): Promise { class TestLogger (line 1459) | class TestLogger { method setSilent (line 1465) | static setSilent(silent: boolean): void { method enableTestWorkspaceLogging (line 1487) | static enableTestWorkspaceLogging(): void { class DefaultTestWorkspaces (line 1496) | class DefaultTestWorkspaces { method emptyWorkspace (line 1497) | static emptyWorkspace(): TestWorkspace { method basicFunctions (line 1504) | static basicFunctions(): TestWorkspace { method complexFunctions (line 1524) | static complexFunctions(): TestWorkspace { method configAndEvents (line 1553) | static configAndEvents(): TestWorkspace { method projectWorkspace (line 1576) | static projectWorkspace(): TestWorkspace { function cliModule (line 1646) | function cliModule() { FILE: tests/tree-sitter-fast-check.test.ts function shellVals (line 149) | function shellVals() { FILE: tests/tree-sitter.test.ts function parseString (line 36) | function parseString(str: string): Parser.Tree { function parseStringForNode (line 41) | function parseStringForNode(str: string, predicate: (n: SyntaxNode) => b... FILE: tests/unreachable.test.ts function logNode (line 381) | function logNode(node: any, indent = 0) { FILE: tests/workspace-util.ts function generateRandomWorkspaceName (line 14) | function generateRandomWorkspaceName(): string { type QueryPathType (line 22) | type QueryPathType = 'functions' | 'completions' | 'conf.d' | 'config.fi... class QueryConfig (line 23) | class QueryConfig { method is (line 29) | static is(config: any): config is QueryConfig { method to (line 42) | static to(config: QueryConfig): Query { class Query (line 98) | class Query { method constructor (line 102) | private constructor() { } method is (line 104) | public static is(query: unknown): query is Query { method fromConfig (line 111) | public static fromConfig(config: QueryConfig | string | unknown): Query { method create (line 126) | static create(): Query { method functions (line 133) | static functions(): Query { method completions (line 140) | static completions(): Query { method config (line 147) | static config(): Query { method confd (line 154) | static confd(): Query { method scripts (line 161) | static scripts(): Query { method autoloaded (line 168) | static autoloaded(): Query { method withName (line 175) | static withName(name: string): Query { method withPath (line 182) | static withPath(...patterns: string[]): Query { method firstMatch (line 189) | static firstMatch(): Query { method functions (line 198) | functions(): Query { method completions (line 209) | completions(): Query { method config (line 220) | config(): Query { method confd (line 231) | confd(): Query { method scripts (line 242) | scripts(): Query { method autoloaded (line 259) | autoloaded(): Query { method withName (line 275) | withName(name: string): Query { method withPath (line 287) | withPath(...patterns: string[]): Query { method firstMatch (line 298) | firstMatch(): Query { method execute (line 306) | execute(documents: LspDocument[]): LspDocument[] { type QueryPropsType (line 323) | type QueryPropsType = Query | QueryConfig | string; class TestFile (line 326) | class TestFile { method constructor (line 330) | private constructor( method absPath (line 336) | get absPath(): string { method toDocument (line 340) | toDocument(): LspDocument { method getType (line 347) | getType() { method withShebang (line 351) | withShebang(shebang: string = '#!/usr/bin/env fish'): TestFile { method writeFile (line 364) | writeFile() { method create (line 374) | static create( method relativeUri (line 382) | get relativeUri() { method uri (line 386) | get uri() { method function (line 399) | static function(name: string, content: string | string[]) { method completion (line 407) | static completion(name: string, content: string | string[]) { method config (line 415) | static config(content: string | string[]) { method confd (line 422) | static confd(name: string, content: string | string[]) { method script (line 430) | static script(name: string, content: string | string[]) { method custom (line 438) | static custom(relativePath: string, content: string | string[]) { method fromDoc (line 442) | static fromDoc(doc: LspDocument): TestFile { type TestWorkspaceForceUtil (line 465) | type TestWorkspaceForceUtil = { class TestWorkspace (line 475) | class TestWorkspace { method constructor (line 487) | constructor( method absPath (line 505) | get absPath() { method workspaceUri (line 512) | get workspaceUri() { method isCurrent (line 516) | isCurrent() { method add (line 524) | add(...files: TestFile[]) { method inspect (line 568) | inspect() { method _isValidFishDir (line 572) | private _isValidFishDir(relativePath: string): boolean { method copyFromAutoloadedEnvVariable (line 579) | copyFromAutoloadedEnvVariable(sourcePath: string) { method initialize (line 676) | initialize() { method getHooks (line 800) | getHooks(): { method initializeLazy (line 883) | initializeLazy(): TestWorkspace { method forceInitializeSync (line 905) | forceInitializeSync(): TestWorkspace { method forceInitializeAsync (line 943) | async forceInitializeAsync(): Promise { method forceInitialize (line 980) | async forceInitialize(): Promise { method workspace (line 1014) | get workspace(): Workspace { method documents (line 1027) | get documents(): LspDocument[] { method get (line 1041) | public get( method findDocumentByPath (line 1047) | findDocumentByPath(searchPath: string): LspDocument | undefined { method findDocumentsByName (line 1051) | findDocumentsByName(name: string): LspDocument[] { method writeSnapshot (line 1055) | writeSnapshot(outputPath?: string): string { method findSnapshotPath (line 1067) | static findSnapshotPath(searchWorkspace: string | TestWorkspace) { method fromSnapshot (line 1081) | static fromSnapshot(path: string): TestWorkspace { method readSnapshot (line 1105) | readSnapshot(path: string) { method dumpFileTree (line 1132) | dumpFileTree(): string { method dumpParseTrees (line 1161) | dumpParseTrees(): string { method dumpParseTree (line 1188) | dumpParseTree(pathOrQuery: string): string { method formatParseTree (line 1209) | private formatParseTree(node: any, indent = ''): string { method filter (line 1241) | filter(...queryProps: QueryPropsType[]) { method filterHelper (line 1257) | private filterHelper( method find (line 1282) | find(...queryProps: QueryPropsType[]) { method force (line 1296) | get force(): TestWorkspaceForceUtil { method edit (line 1350) | edit( method create (line 1388) | static create(name: string | { name: string; } = generateRandomWorkspa... method createSingleFile (line 1403) | static createSingleFile( method forceDelete (line 1417) | forceDelete() { class DefaultTestWorkspaces (line 1428) | class DefaultTestWorkspaces { method basicFunctions (line 1432) | static basicFunctions(): TestWorkspace { method complexFunctions (line 1452) | static complexFunctions(): TestWorkspace { method configAndEvents (line 1481) | static configAndEvents(): TestWorkspace { method projectWorkspace (line 1504) | static projectWorkspace(): TestWorkspace { FILE: vitest.config.ts function fishLoader (line 8) | function fishLoader(): Plugin {