From aa2a9ab594c78dee5c74b327a8daf9810ad600ec Mon Sep 17 00:00:00 2001 From: Tony Olagbaiye Date: Sun, 13 May 2018 15:51:39 +0100 Subject: [PATCH] Add slack_workspace completion for /slack commands --- README.org | 2 ++ slack-completion.c | 37 ++++++++++++++++++++++++++++--------- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/README.org b/README.org index a83f0f6..f0f1eac 100644 --- a/README.org +++ b/README.org @@ -95,6 +95,8 @@ ** TODO [#C] Implement full weechat functionality (milestone v0.6) - [ ] Hook buffer closes - [ ] Relay compatibility + - [ ] Config Options + - [ ] Emoji translation options (see [[http://github.com/bqv/weechat-slack/issues/11][#11]]) ** TODO [#D] Close all issues (milestone v1.0) * Contributing diff --git a/slack-completion.c b/slack-completion.c index 7be5449..4a71eec 100644 --- a/slack-completion.c +++ b/slack-completion.c @@ -13,20 +13,39 @@ #include "slack-channel.h" #include "slack-completion.h" +int slack_completion_workspaces_cb(const void *pointer, void *data, + const char *completion_item, + struct t_gui_buffer *buffer, + struct t_gui_completion *completion) +{ + struct t_slack_workspace *ptr_workspace; + + /* make C compiler happy */ + (void) pointer; + (void) data; + (void) completion_item; + (void) buffer; + + for (ptr_workspace = slack_workspaces; ptr_workspace; + ptr_workspace = ptr_workspace->next_workspace) + { + weechat_hook_completion_list_add(completion, ptr_workspace->domain, + 0, WEECHAT_LIST_POS_SORT); + } + + return WEECHAT_RC_OK; +} + void slack_completion_init() { struct t_config_option *option; const char *default_template; - /* - weechat_hook_command_run("/input return", - &slack_emoji_input_replace_cb, - NULL, NULL); - - weechat_hook_command_run("/input complete*", - &slack_emoji_input_complete_cb, - NULL, NULL); - */ + weechat_hook_completion("slack_workspace", + N_("slack workspaces"), + &slack_completion_workspaces_cb, + NULL, NULL); + weechat_hook_completion("slack_emoji", N_("slack emoji"), &slack_emoji_complete_by_name_cb,