summaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'main.c')
-rw-r--r--main.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/main.c b/main.c
index 0d0732c..718430c 100644
--- a/main.c
+++ b/main.c
@@ -1,6 +1,5 @@
/*
FUTURE FEATURES:
-- LSP "actions"
- wrap-text command
- path-specific extensions
- more tests
@@ -95,6 +94,7 @@ the first character can be interpreted specially if it is one of the following:
#include "menu.c"
#include "ide-autocomplete.c"
#include "ide-signature-help.c"
+#include "ide-code-action.c"
#include "ide-rename-symbol.c"
#include "ide-hover.c"
#include "ide-definitions.c"
@@ -587,6 +587,7 @@ int main(int argc, char **argv) {
find_init(ted);
macros_init(ted);
definitions_init(ted);
+ code_action_init(ted);
autocomplete_init(ted);
format_init(ted);
signature_help_init(ted);
@@ -968,6 +969,7 @@ int main(int argc, char **argv) {
LSP *lsp = ted->lsps[i];
LSPMessage message = {0};
while (lsp_next_message(lsp, &message)) {
+ bool message_moved = false;
switch (message.type) {
case LSP_REQUEST: {
LSPRequest *r = &message.request;
@@ -1005,10 +1007,15 @@ int main(int argc, char **argv) {
highlights_process_lsp_response(ted, r);
usages_process_lsp_response(ted, r);
document_link_process_lsp_response(ted, r);
+ if (code_action_process_lsp_response(ted, r)) {
+ message_moved = true;
+ break;
+ }
rename_symbol_process_lsp_response(ted, r);
} break;
}
- lsp_message_free(&message);
+ if (!message_moved)
+ lsp_message_free(&message);
}
}
@@ -1101,6 +1108,7 @@ int main(int argc, char **argv) {
float y1 = padding;
node_frame(ted, node, rect4(x1, y1, x2, y));
autocomplete_frame(ted);
+ code_action_frame(ted);
signature_help_frame(ted);
hover_frame(ted, frame_dt);
definitions_frame(ted);
@@ -1293,6 +1301,7 @@ int main(int argc, char **argv) {
signature_help_quit(ted);
autocomplete_quit(ted);
format_quit(ted);
+ code_action_quit(ted);
highlights_quit(ted);
usages_quit(ted);
session_write(ted);