summaryrefslogtreecommitdiff
path: root/ide-code-action.c
blob: 678c04632d63100d9ae6c4603592fa84bd31e860 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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);
}