/sublime-slack-integration

A ST3 plugin which sends messages, code selections and files to slack.com channels/groups/users.

Primary LanguagePythonGNU General Public License v2.0GPL-2.0

Sublime Text 3 slack.com integration plugin

A Sublime Text 3 plugin which integrates http://slack.com services.

This plugin is no longer maintained (mainly because I switched to PyCharm). If someone wants to continue work on this, i will give access rights.

Installation

Search for "Slack" package in Sublime Package Control

Configuration

Open "Settings - User" from Preferences -> Package Settings -> Slack

{
    "team_tokens": {
        "Team 1": "team-1-token-goes-here",
        "Team 2": "team-2-token-goes-here",
    },
    "username": "Sublime",
    "username_subtext": "via Sublime",
    "show_plaform_and_name": true,
    "repeat_file_ext": false,
    "avatar_url": "http://simionbaws.ro/icons/sublime-48.png"
}
  • "team_tokens" (required)
    • A list of tokens you have, keyed by the team name that the token corresponds to.
    • You can get the token(s) from https://api.slack.com/web#auth (make sure you are authenticated on slack.com with your account)
  • "username" (required)
    • defaults to "Sublime"
    • The "sender" username that will be attributed to each message
  • "username_subtext"(optional)
    • The parenthetical subtext to show next to your username. Defaults to "via Sublime".
    • *Note that if set, this setting will override the "show_platform_and_name" setting
    • *Slack enforces that external plugins have parenthetical subtext next to the sender's username for each message. So if this option is omitted AND the "show_platform_and_name" setting is false, Slack adds the default subtext "bot", e.g., "myUser (bot)"
  • "show_platform_and_name" (optional)
    • defaults to true
    • if this is true and no setting is given for username_subtext, will use your name and your platform as the subtext to the username, e.g. "myUser (simion, linux)"
  • "repeat_file_ext" (optional)
    • defaults to false
    • If this is true, the name of the file being uploaded with have the extension repeated., e.g. script.py is uploaded as script.py.py.
    • *This is meant to account for the fact that Slack, by default, chops off the file extension when displaying the filename. So uploading a file called script.py shows up in most places in Slack as just having the filename script. With this option set to true, it would show up as script.py in Slack, at the expense of having the actual uploaded filename as script.py.py
    • *See Screenshots below for examples
  • "avatar_url" (required)

Features

  • Send messages to
    • users
    • channels
    • private groups
  • Can send message:
    • from selected code
    • from user input
  • @user, #channel or .group supported (at beggining of message)
  • Autofill last @user, #channel or .group used
  • Multiple teams(tokens) support
  • Upload files
    • current open file
    • contextual (right click) in sidebar
    • enter file path manually

###Changelog

Usage

  • Select a text and Right click (or ctrl+shift+p) -> Slack: Send selection
  • Sending a custom message:
  • press Ctrl+Alt+n (or control + command + n)
  • enter the message
  • choose a channel/group/user from the dropdown If the message begins with @username #channel or .group the message is sent directly to the specified receiver. When using new message input box, it will have the last receiver name autocompletet automatically
  • Send a file: right click, or using quick panel

Shortcuts

  • ctrl+alt+u -> Send Selection (osx: control + option + u)
  • ctrl+alt+n -> Send Custom Message (osx: control + option + n)
  • ctrl+alt+j -> Send Current File (osx: control + option + k)

Feedback

If you have any suggestions, please leave a reply here: http://simionbaws.ro/sublime-text-3-slack-integration-plugin/

Bug report / feature request

Please use github issues system: https://github.com/simion/sublime-slack-integration/issues

Development

This plugin is constantly being upgraded as the slack.com API team releases new features or fixes existing bugs. If you want to contribute, feel free to fork and make a pull request. The code must pe PEP8 compliant to be accepted (or at least close to that)

Support

I like beer. So if you'd like to support the continuous development of this plugin, you could buy me a beer: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=NNPZNQULPETD4

Screenshots

  • Grab message from user input

  • Receiver selection

  • Direct message sending, skips channel/user/group selection

  • Send message directly to user

  • Send message to channel

  • Example of received message

  • Example of uploaded file - WITHOUT "repeat_file_ext" setting

  • Example of uploaded file - WITH "repeat_file_ext" setting (notice the .py)

  • Sidebar right-click

  • Quick menu