codn_ts
Version:
智能代码分析工具 - 支持语义搜索、调用链分析和代码结构可视化,对大模型/AI agent 友好
100 lines (99 loc) • 3.15 kB
TypeScript
import { EventEmitter } from "events";
declare enum LSPClientState {
STOPPED = "stopped",
STARTING = "starting",
RUNNING = "running",
STOPPING = "stopping"
}
interface LSPConfig {
timeout: number;
enableFileWatcher: boolean;
logLevel: string;
lspCommands: Record<string, string[]>;
}
export declare const DEFAULT_CONFIG: LSPConfig;
export declare const SymbolKind: {
readonly File: 1;
readonly Module: 2;
readonly Namespace: 3;
readonly Package: 4;
readonly Class: 5;
readonly Method: 6;
readonly Property: 7;
readonly Field: 8;
readonly Constructor: 9;
readonly Enum: 10;
readonly Interface: 11;
readonly Function: 12;
readonly Variable: 13;
readonly Constant: 14;
readonly String: 15;
readonly Number: 16;
readonly Boolean: 17;
readonly Array: 18;
readonly Object: 19;
readonly Key: 20;
readonly Null: 21;
readonly EnumMember: 22;
readonly Struct: 23;
readonly Event: 24;
readonly Operator: 25;
readonly TypeParameter: 26;
};
export type SymbolKindType = (typeof SymbolKind)[keyof typeof SymbolKind];
export declare class LSPClient extends EventEmitter {
private _rootUri;
private _config;
private _state;
private _msgId;
private _pending;
private _proc;
private _stdoutBuffer;
private _openFiles;
private _fileStates;
private _fileVersions;
private _shutdownSignal;
private _tasks;
constructor(_rootUri: string, _config?: LSPConfig);
get state(): LSPClientState;
get isClosing(): boolean;
start(lang: string): Promise<void>;
private _startSubprocess;
private _initialize;
private _setupMessageHandlers;
private _handleData;
private _handleMessage;
private _handleDiagnostics;
private _handleLogMessage;
private _handleShowMessage;
private _send;
private _request;
private _notify;
private _manageFileState;
readFile(uri: string): Promise<string>;
sendDidOpen(uri: string, content: string, languageId: string): Promise<void>;
sendDidChange(uri: string, content: string): Promise<void>;
sendDidClose(uri: string): Promise<void>;
sendReferences(uri: string, line: number, character: number, name?: string, timeout?: number): Promise<any>;
sendDefinition(uri: string, line: number, character: number): Promise<any>;
sendDocumentSymbol(uri: string, timeout?: number): Promise<any>;
streamRequests<T>(method: (...args: any[]) => Promise<T>, argsList: any[][], options?: {
maxConcurrency?: number;
showProgress?: boolean;
progressEvery?: number;
progressInterval?: number;
}): Promise<T[]>;
shutdown(): Promise<void>;
private _cancelTasks;
private _cleanup;
getRelativePath(uri: string): string;
sendHover(uri: string, position: {
line: number;
character: number;
}, timeout?: number): Promise<any>;
/**
* 对单个文件进行 LSP 诊断,返回 diagnostics 数组
*/
diagnoseFile(uri: string, content: string, languageId: string, waitMs?: number): Promise<any[]>;
}
export {};