aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--slack/commands.py25
-rw-r--r--slack/slack_conversation.py1
-rw-r--r--slack/slack_thread.py1
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):