diff options
author | pommicket <pommicket@gmail.com> | 2022-12-23 21:43:07 -0500 |
---|---|---|
committer | pommicket <pommicket@gmail.com> | 2022-12-23 21:43:07 -0500 |
commit | 8d96a4b0f0ebb059a63cc4c3193e0169ccf4f5b5 (patch) | |
tree | 7155b5d90b9eb8836fa637ed1db44f4e3304fdba /lsp.h | |
parent | aabe543ee93796330158fa7fd247fb1ebeb8e3bb (diff) |
framework for having multiple/configurable LSPs
Diffstat (limited to 'lsp.h')
-rw-r--r-- | lsp.h | 9 |
1 files changed, 4 insertions, 5 deletions
@@ -271,10 +271,7 @@ typedef struct LSP { LSPRequest *requests_server2client; // we keep track of client-to-server requests // so that we can process responses. - // also fucking rust-analyzer gives "waiting for cargo metadata or cargo check" - // WHY NOT JUST WAIT UNTIL YOUVE DONE THAT BEFORE SENDING THE INITIALIZE RESPONSE. YOU HAVE NOT FINISHED INITIALIZATION. YOU ARE LYING. - // YOU GIVE A -32801 ERROR CODE WHICH IS "ContentModified" -- WHAT THE FUCK? THATS JUST COMPLETLY WRONG - // so we need to re-send requests in that case. + // this also lets us re-send requests if that's ever necessary. LSPRequest *requests_sent; SDL_mutex *requests_mutex; bool initialized; // has the response to the initialize request been sent? @@ -284,6 +281,8 @@ typedef struct LSP { bool provides_completion; // can this LSP server handle completion requests? char32_t *trigger_chars; // dynamic array of "trigger characters" SDL_mutex *error_mutex; + Language language; + char root_dir[TED_PATH_MAX]; char error[256]; } LSP; @@ -299,7 +298,7 @@ u32 lsp_document_id(LSP *lsp, const char *path); // don't free the contents of this request! let me handle it! void lsp_send_request(LSP *lsp, LSPRequest *request); const char *lsp_response_string(const LSPResponse *response, LSPString string); -bool lsp_create(LSP *lsp, const char *analyzer_command); +LSP *lsp_create(const char *root_dir, Language language, const char *analyzer_command); bool lsp_next_message(LSP *lsp, LSPMessage *message); void lsp_document_changed(LSP *lsp, const char *document, LSPDocumentChangeEvent change); void lsp_free(LSP *lsp); |