diff options
-rw-r--r-- | slack/commands.py | 25 | ||||
-rw-r--r-- | slack/slack_conversation.py | 1 | ||||
-rw-r--r-- | slack/slack_thread.py | 1 |
3 files changed, 19 insertions, 8 deletions
diff --git a/slack/commands.py b/slack/commands.py index f9dcec2..beb35c8 100644 --- a/slack/commands.py +++ b/slack/commands.py @@ -438,13 +438,22 @@ def completion_slack_workspace_commands_cb( return weechat.WEECHAT_RC_OK -def completion_irc_channels_cb( +def completion_slack_channels_cb( data: str, completion_item: str, buffer: str, completion: str ) -> int: - if weechat.buffer_get_string(buffer, "full_name").startswith("core."): - weechat.completion_list_add( - completion, "#asd", 0, weechat.WEECHAT_LIST_POS_SORT - ) + slack_buffer = shared.buffers.get(buffer) + if slack_buffer is None: + return weechat.WEECHAT_RC_OK + + conversations = slack_buffer.workspace.open_conversations.values() + for conversation in conversations: + if conversation.buffer_type == "channel": + weechat.completion_list_add( + completion, + conversation.name_with_prefix("short_name_without_padding"), + 0, + weechat.WEECHAT_LIST_POS_SORT, + ) return weechat.WEECHAT_RC_OK @@ -611,9 +620,9 @@ def register_commands(): "", ) weechat.hook_completion( - "irc_channels", - "channels on all Slack workspaces", - get_callback_name(completion_irc_channels_cb), + "slack_channels", + "conversations in the current Slack workspace", + get_callback_name(completion_slack_channels_cb), "", ) weechat.hook_completion( diff --git a/slack/slack_conversation.py b/slack/slack_conversation.py index 22dd8f8..67c6167 100644 --- a/slack/slack_conversation.py +++ b/slack/slack_conversation.py @@ -325,6 +325,7 @@ class SlackConversation(SlackBuffer): "localvar_set_nick": self.workspace.my_user.nick(), "localvar_set_channel": name, "localvar_set_server": self.workspace.name, + "localvar_set_completion_default_template": "${weechat.completion.default_template}|%(slack_channels)", } async def buffer_switched_to(self): diff --git a/slack/slack_thread.py b/slack/slack_thread.py index 38f0ac2..06f1f16 100644 --- a/slack/slack_thread.py +++ b/slack/slack_thread.py @@ -61,6 +61,7 @@ class SlackThread(SlackBuffer): "localvar_set_nick": self.workspace.my_user.nick(), "localvar_set_channel": name, "localvar_set_server": self.workspace.name, + "localvar_set_completion_default_template": "${weechat.completion.default_template}|%(slack_channels)", } async def buffer_switched_to(self): |