summaryrefslogtreecommitdiff
path: root/ide-autocomplete.c
diff options
context:
space:
mode:
authorpommicket <pommicket@gmail.com>2023-01-06 21:47:59 -0500
committerpommicket <pommicket@gmail.com>2023-01-06 21:47:59 -0500
commit42ae808f712efb7edac1bdc647a456cfcccb2d39 (patch)
tree678f108423517e0331657ca47a375f53b6ada438 /ide-autocomplete.c
parent1780e6ac17c208d749deee31af541a04e3b123fe (diff)
fix various tags things
Diffstat (limited to 'ide-autocomplete.c')
-rw-r--r--ide-autocomplete.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/ide-autocomplete.c b/ide-autocomplete.c
index 1046364..4443c2b 100644
--- a/ide-autocomplete.c
+++ b/ide-autocomplete.c
@@ -183,19 +183,22 @@ static void autocomplete_find_completions(Ted *ted, uint32_t trigger, bool phant
} else {
// tag completion
autocomplete_clear_completions(ac);
+ autocomplete_clear_phantom(ac);
char *word_at_cursor = str32_to_utf8_cstr(buffer_word_at_cursor(buffer));
if (phantom) {
- char *completion = NULL;
- if (tags_beginning_with(ted, word_at_cursor, &completion, 1) == 1) {
+ char *completions[2] = {NULL, NULL};
+ if (tags_beginning_with(ted, word_at_cursor, completions, 2, false) == 1) {
// show phantom
- ac->phantom = completion;
+ ac->phantom = completions[0];
+ free(completions[1]);
} else {
- free(completion);
+ free(completions[0]);
+ free(completions[1]);
}
} else {
char **completions = calloc(TAGS_MAX_COMPLETIONS, sizeof *completions);
- u32 ncompletions = (u32)tags_beginning_with(ted, word_at_cursor, completions, TAGS_MAX_COMPLETIONS);
+ u32 ncompletions = (u32)tags_beginning_with(ted, word_at_cursor, completions, TAGS_MAX_COMPLETIONS, true);
arr_set_len(ac->completions, ncompletions);
@@ -396,7 +399,6 @@ static void autocomplete_find_phantom(Ted *ted) {
TextBuffer *buffer = ted->active_buffer;
if (!buffer->path) return;
if (buffer->view_only) return;
-
autocomplete_find_completions(ted, TRIGGER_INVOKED, true);
}