diff options
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 13 |
1 files changed, 11 insertions, 2 deletions
@@ -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); |