summaryrefslogtreecommitdiff
path: root/ide-code-action.c
diff options
context:
space:
mode:
authorpommicket <pommicket@gmail.com>2025-09-29 13:29:56 -0400
committerpommicket <pommicket@gmail.com>2025-09-29 15:29:51 -0400
commit6c4baeebd88352399059a8df8d38ebe3511588ea (patch)
tree98db7bb4f36a47f8f9ac5a53dcb06e8cd19cf762 /ide-code-action.c
parentec03a105ce7a6e396cfd287cbfe902d65bac1474 (diff)
Start code actions
Diffstat (limited to 'ide-code-action.c')
-rw-r--r--ide-code-action.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/ide-code-action.c b/ide-code-action.c
new file mode 100644
index 0000000..678c046
--- /dev/null
+++ b/ide-code-action.c
@@ -0,0 +1,18 @@
+#include "ted-internal.h"
+
+void code_action_start(Ted *ted) {
+ TextBuffer *buffer = ted_active_buffer(ted);
+ LSP *lsp = buffer_lsp(buffer);
+ LSPRange range = {0};
+ if (buffer_has_selection(buffer))
+ range = buffer_selection_as_lsp_range(buffer);
+ else
+ range.start = range.end = buffer_cursor_pos_as_lsp_position(buffer);
+ LSPRequest req = {
+ .type = LSP_REQUEST_CODE_ACTION,
+ };
+ LSPRequestCodeAction *code_action_req = &req.data.code_action;
+ code_action_req->document = buffer_lsp_document_id(buffer);
+ code_action_req->range = range;
+ lsp_send_request(lsp, &req);
+}