Types
CallAction = proc (name: string; params: JsonNode): Future[JsonNode] {....gcsafe, raises: [].}
- Source Edit
CommandLineParams = object clientProcessId*: Option[int] mode*: Option[ServerMode] transport*: Option[TransportMode] port*: Port
- Source Edit
LanguageServer = ref object case serverMode*: ServerMode of lsp: lspClientCapabilities*: LspClientCapabilities lspServerCapabilities*: LspServerCapabilities lspInitializeParams*: LspInitializeParams of mcp: mcpClientCapabilities*: McpClientCapabilities mcpServerCapabilities*: McpServerCapabilities mcpInitializeParams*: McpInitializeParams extensionCapabilities*: set[LspExtensionCapability] notify*: NotifyAction call*: CallAction onExit*: OnExitCallback projectFiles*: Table[string, Project] openFiles*: Table[string, NlsFileInfo] idleOpenFiles*: Table[string, NlsFileInfo] workspaceConfiguration*: Future[JsonNode] prevWorkspaceConfiguration*: Future[JsonNode] inlayHintsRefreshRequest*: Future[JsonNode] didChangeConfigurationRegistrationRequest*: Future[JsonNode] filesWithDiags*: HashSet[string] lastNimsuggest*: Future[NimSuggest] childNimsuggestProcessesStopped*: bool isShutdown*: bool storageDir*: string cmdLineClientProcessId*: Option[int] nimDumpCache*: Table[string, NimbleDumpInfo] entryPoints*: seq[string] responseMap*: TableRef[string, Future[JsonNode]] testRunProcess*: Option[AsyncProcessRef] srv*: RpcSocketServer pendingRequests*: Table[uint, PendingRequest] case transportMode*: TransportMode of socket: socketTransport*: StreamTransport of stdio: outStream*: FileStream stdinContext*: ptr ReadStdinContext projectErrors*: seq[ProjectError] failTable*: Table[string, int] checkInProgress*: bool
- Source Edit
NimbleDumpInfo = object srcDir*: string name*: string nimDir*: Option[string] nimblePath*: Option[string] entryPoints*: seq[string]
- Source Edit
NlsConfig = ref object of RootObj projectMapping*: OptionalSeq[NlsNimsuggestConfig] workingDirectoryMapping*: OptionalSeq[NlsWorkingDirectoryMaping] checkOnSave*: Option[bool] nimsuggestPath*: Option[string] timeout*: Option[int] autoRestart*: Option[bool] autoCheckFile*: Option[bool] autoCheckProject*: Option[bool] logNimsuggest*: Option[bool] inlayHints*: Option[NlsInlayHintsConfig] notificationVerbosity*: Option[NlsNotificationVerbosity] formatOnSave*: Option[bool] nimsuggestIdleTimeout*: Option[int] useNimCheck*: Option[bool] nimExpandArc*: Option[bool] nimExpandMacro*: Option[bool] maxNimsuggestProcesses*: Option[int]
- Source Edit
NlsFileInfo = ref object of RootObj projectFile*: Future[string] changed*: bool fingerTable*: seq[seq[tuple[u16pos, offset: int]]] cancelFileCheck*: Future[void] checkInProgress*: bool needsChecking*: bool textDocument*: TextDocumentItem
- Source Edit
NlsInlayExceptionHintsConfig = ref object of RootObj enable*: Option[bool] hintStringLeft*: Option[string] hintStringRight*: Option[string]
- Source Edit
NlsInlayHintsConfig = ref object of RootObj typeHints*: Option[NlsInlayTypeHintsConfig] exceptionHints*: Option[NlsInlayExceptionHintsConfig] parameterHints*: Option[NlsInlayParameterHintsConfig]
- Source Edit
NlsInlayParameterHintsConfig = ref object of RootObj enable*: Option[bool]
- Source Edit
NlsInlayTypeHintsConfig = ref object of RootObj enable*: Option[bool]
- Source Edit
NlsNimsuggestConfig = ref object of RootObj projectFile*: string fileRegex*: string
- Source Edit
NlsNotificationVerbosity = enum nvNone = "none", nvError = "error", nvWarning = "warning", nvInfo = "info"
- Source Edit
NlsWorkingDirectoryMaping = ref object of RootObj projectFile*: string directory*: string
- Source Edit
NotifyAction = proc (name: string; params: JsonNode) {....gcsafe, raises: [].}
- Source Edit
OnExitCallback = proc (): Future[void] {....gcsafe, raises: [].}
- Source Edit
PendingRequest = object id*: uint name*: string request*: Future[JsonString] projectFile*: Option[string] startTime*: DateTime endTime*: DateTime state*: PendingRequestState
- Source Edit
PendingRequestState = enum prsOnGoing = "OnGoing", prsCancelled = "Cancelled", prsComplete = "Complete"
- Source Edit
ReadStdinContext = object onStdReadSignal*: ThreadSignalPtr onMainReadSignal*: ThreadSignalPtr value*: cstring
- Source Edit
ServerMode = enum lsp = "lsp", mcp = "mcp"
- Source Edit
TransportMode = enum stdio = "stdio", socket = "socket"
- Source Edit
Consts
CHECK_PROJECT_COMMAND = "nimlangserver.checkProject"
- Source Edit
CONTENT_LENGTH = "Content-Length: "
- Source Edit
FILE_CHECK_DELAY = 1000
- Source Edit
LSPVersion = "1.14.0"
- Source Edit
NIM_EXPAND_ARC_BY_DEFAULT = false
- Source Edit
NIM_EXPAND_MACRO_BY_DEFAULT = false
- Source Edit
RECOMPILE_COMMAND = "nimlangserver.recompile"
- Source Edit
RESTART_COMMAND = "nimlangserver.restart"
- Source Edit
USE_NIM_CHECK_BY_DEFAULT = false
- Source Edit
Procs
proc addProjectFileToPendingRequest(ls: LanguageServer; id: uint; uri: string): Future[ void] {....stackTrace: false, raises: [], gcsafe, tags: [RootEffect], forbids: [].}
- Source Edit
proc applyEdit(ls: LanguageServer; params: ApplyWorkspaceEditParams): Future[ ApplyWorkspaceEditResponse] {....stackTrace: false, raises: [], gcsafe, tags: [RootEffect], forbids: [].}
- Source Edit
proc cancelPendingFileChecks(ls: LanguageServer; nimsuggest: NimSuggest) {. ...raises: [KeyError], tags: [], forbids: [].}
- Source Edit
proc checkFile(ls: LanguageServer; uri: string): Future[void] {....raises: [], gcsafe, tags: [RootEffect], forbids: [].}
- Source Edit
proc checkProject(ls: LanguageServer; uri: string): Future[void] {. ...stackTrace: false, raises: [], gcsafe, tags: [RootEffect], forbids: [].}
- Source Edit
proc createOrRestartNimsuggest(ls: LanguageServer; projectFile: string; uri = "") {. ...gcsafe, raises: [], tags: [WriteIOEffect, RootEffect], forbids: [].}
- Source Edit
proc didCloseFile(ls: LanguageServer; uri: string): Future[void] {. ...stackTrace: false, raises: [], gcsafe, tags: [RootEffect], forbids: [].}
- Source Edit
proc didOpenFile(ls: LanguageServer; textDocument: TextDocumentItem): Future[ void] {....stackTrace: false, raises: [], gcsafe, tags: [RootEffect], forbids: [].}
- Source Edit
func exceptionHintsEnabled(cnf: NlsConfig): bool {....raises: [], tags: [], forbids: [].}
- Source Edit
proc getAndWaitForWorkspaceConfiguration(ls: LanguageServer): Future[NlsConfig] {. ...stackTrace: false, raises: [], gcsafe, tags: [RootEffect], forbids: [].}
- Source Edit
proc getCharacter(ls: LanguageServer; uri: string; line: int; character: int): Option[ int] {....raises: [KeyError], tags: [], forbids: [].}
- Source Edit
proc getLspStatus(ls: LanguageServer): NimLangServerStatus {....raises: [], tags: [ReadIOEffect, TimeEffect], forbids: [].}
- Source Edit
proc getNimbleDumpInfo(ls: LanguageServer; nimbleFile: string): Future[ NimbleDumpInfo] {....stackTrace: false, raises: [], gcsafe, tags: [RootEffect], forbids: [].}
- Source Edit
proc getNimbleEntryPoints(dumpInfo: NimbleDumpInfo; nimbleProjectPath: string): seq[ string] {....raises: [], tags: [ReadDirEffect], forbids: [].}
- Source Edit
proc getNimPath(conf: NlsConfig): Option[string] {....raises: [OSError], tags: [ReadDirEffect, ReadEnvEffect, ReadIOEffect, WriteIOEffect], forbids: [].}
- Source Edit
proc getProjectFile(fileUri: string; ls: LanguageServer): Future[string] {. ...stackTrace: false, raises: [], gcsafe, tags: [RootEffect], forbids: [].}
- Source Edit
proc getProjectFileAutoGuess(ls: LanguageServer; fileUri: string): Future[string] {. ...stackTrace: false, raises: [], gcsafe, tags: [RootEffect], forbids: [].}
- Source Edit
proc getRootPath(ip: LspInitializeParams): string {....raises: [OSError], tags: [], forbids: [].}
- Source Edit
proc getRootPath(ip: McpInitializeParams): string {....raises: [OSError], tags: [], forbids: [].}
- Source Edit
proc getWorkspaceConfiguration(ls: LanguageServer): InternalRaisesFuture[ NlsConfig, void] {....stackTrace: false, raises: [], gcsafe, tags: [RootEffect], forbids: [].}
- Source Edit
proc handleConfigurationChanges(ls: LanguageServer; oldConfiguration, newConfiguration: NlsConfig) {. ...raises: [], tags: [WriteIOEffect, RootEffect], forbids: [].}
- Source Edit
proc initLs(params: CommandLineParams; storageDir: string): LanguageServer {. ...raises: [], tags: [], forbids: [].}
- Source Edit
proc initNimsuggestInstances(ls: LanguageServer; rootPath: string): Future[void] {. ...stackTrace: false, raises: [], gcsafe, tags: [RootEffect], forbids: [].}
- Source Edit
proc inlayExceptionHintsConfigurationEquals(a, b: NlsConfig): bool {....raises: [], tags: [], forbids: [].}
- Source Edit
proc inlayExceptionHintsConfigurationEquals(a, b: NlsInlayHintsConfig): bool {. ...raises: [], tags: [], forbids: [].}
- Source Edit
proc inlayHintsConfigurationEquals(a, b: NlsConfig): bool {....raises: [], tags: [], forbids: [].}
- Source Edit
func inlayHintsEnabled(cnf: NlsConfig): bool {....raises: [], tags: [], forbids: [].}
- Source Edit
proc makeIdleFile(ls: LanguageServer; file: NlsFileInfo): Future[void] {. ...stackTrace: false, raises: [], gcsafe, tags: [RootEffect], forbids: [].}
- Source Edit
proc maybeRegisterCapabilityDidChangeConfiguration(ls: LanguageServer) {. ...raises: [], tags: [RootEffect], forbids: [].}
- Source Edit
proc maybeRequestConfigurationFromClient(ls: LanguageServer) {. ...raises: [KeyError, ValueError, JsonKindError], tags: [WriteIOEffect, RootEffect], forbids: [].}
- Source Edit
func parameterHintsEnabled(cnf: NlsConfig): bool {....raises: [], tags: [], forbids: [].}
- Source Edit
proc parseWorkspaceConfiguration(conf: JsonNode): NlsConfig {....raises: [], tags: [RootEffect, WriteIOEffect], forbids: [].}
- Source Edit
proc progress(ls: LanguageServer; token, kind: string; title = "") {....raises: [], tags: [RootEffect], forbids: [].}
- Source Edit
proc removeIdleNimsuggests(ls: LanguageServer): Future[void] {. ...stackTrace: false, raises: [], gcsafe, tags: [RootEffect], forbids: [].}
- Source Edit
proc sendDiagnostics(ls: LanguageServer; diagnostics: seq[Suggest] | seq[CheckResult]; path: string)
- Source Edit
proc sendStatusChanged(ls: LanguageServer) {....raises: [], tags: [ReadIOEffect, TimeEffect, RootEffect], forbids: [].}
- Source Edit
proc shouldSpawnNimsuggest(ls: LanguageServer): Future[bool] {. ...stackTrace: false, raises: [], gcsafe, tags: [RootEffect], forbids: [].}
- Source Edit
proc showMessage(ls: LanguageServer; message: string; typ: MessageType) {. ...raises: [], tags: [RootEffect, WriteIOEffect], forbids: [].}
- Source Edit
proc stopNimsuggestProcesses(ls: LanguageServer): Future[void] {. ...stackTrace: false, raises: [], gcsafe, tags: [RootEffect], forbids: [].}
- Source Edit
proc stopNimsuggestProcessesP(ls: LanguageServer) {....raises: [CatchableError], tags: [RootEffect], forbids: [].}
- Source Edit
proc supportSignatureHelp(cc: LspClientCapabilities): bool {....raises: [], tags: [], forbids: [].}
- Source Edit
proc tick(ls: LanguageServer): Future[void] {....stackTrace: false, raises: [], gcsafe, tags: [RootEffect], forbids: [].}
- Source Edit
proc toLabelRange(suggest: Suggest): Range {. ...raises: [KeyError, ValueError, JsonKindError], tags: [RootEffect], forbids: [].}
- Source Edit
proc toUtf16Pos(checkResult: CheckResult; ls: LanguageServer): CheckResult {. ...raises: [KeyError], tags: [], forbids: [].}
- Source Edit
proc toUtf16Pos(ls: LanguageServer; uri: string; line: int; utf8Pos: int): Option[ int] {....raises: [KeyError], tags: [], forbids: [].}
- Source Edit
proc toUtf16Pos(suggest: Suggest; ls: LanguageServer): Suggest {. ...raises: [KeyError], tags: [], forbids: [].}
- Source Edit
proc toUtf16Pos(suggest: SuggestInlayHint; ls: LanguageServer; uri: string): SuggestInlayHint {. ...raises: [KeyError], tags: [], forbids: [].}
- Source Edit
proc tryGetNimsuggest(ls: LanguageServer; uri: string): Future[ Option[NimSuggest]] {....raises: [], gcsafe, tags: [RootEffect], forbids: [].}
- Source Edit
func typeHintsEnabled(cnf: NlsConfig): bool {....raises: [], tags: [], forbids: [].}
- Source Edit
proc uriStorageLocation(ls: LanguageServer; uri: string): string {....raises: [], tags: [], forbids: [].}
- Source Edit
proc uriToStash(ls: LanguageServer; uri: string): string {....raises: [KeyError], tags: [], forbids: [].}
- Source Edit
proc usePullConfigurationModel(ls: LanguageServer): bool {....raises: [], tags: [], forbids: [].}
- Source Edit
proc warnIfUnknown(ls: LanguageServer; ns: NimSuggest; uri: string; projectFile: string): Future[void] {....stackTrace: false, raises: [], gcsafe, tags: [RootEffect], forbids: [].}
- Source Edit
proc workDoneProgressCreate(ls: LanguageServer; token: string) {....raises: [], tags: [RootEffect], forbids: [].}
- Source Edit