diff options
-rw-r--r-- | lsp.c | 5 | ||||
-rw-r--r-- | lsp.h | 2 | ||||
-rw-r--r-- | main.c | 2 |
3 files changed, 6 insertions, 3 deletions
@@ -523,6 +523,11 @@ LSP *lsp_create(const char *root_dir, const char *command, const char *configura lsp->quit_sem = SDL_CreateSemaphore(0); lsp->error_mutex = SDL_CreateMutex(); lsp->messages_mutex = SDL_CreateMutex(); + + // document ID 0 is reserved + LSPDocumentID zero_id = lsp_document_id(lsp, ""); + assert(zero_id == 0); + arr_add(lsp->workspace_folders, lsp_document_id(lsp, root_dir)); lsp->workspace_folders_mutex = SDL_CreateMutex(); @@ -8,7 +8,7 @@ #include "ds.h" #include "os.h" -// an ID specific to a path. 0 is a valid document ID, currently. +// an ID specific to a path. a document's ID is never 0 (thanks to lsp_create). typedef u32 LSPDocumentID; // ID of an LSP server. a server's ID is never 0. typedef u32 LSPID; @@ -1,7 +1,5 @@ /* @TODO: -- don't let 0 be a valid LSPDocumentID -- TESTING: check all IDE features with different servers - run everything through valgrind ideally with leak checking - some way of opening + closing all C files in directory for clangd textDocument/references to work? |