Skip to content

extension for zed that adds support for discord rich presence using lsp

License

Notifications You must be signed in to change notification settings

xhyrom/zed-discord-presence

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Zed discord presence is an extension for Zed that adds support for Discord Rich Presence using LSP

Using LSP is a workaround for now (yeah, it's a bit hacky) but once Zed has proper extension support, I'll rewrite it.

Requirements

rust is required for installing this extension.
The easiest way to get rust is by using rustup

How to install?

Since zed-industries/extensions#1217 has been merged, you can simply download the extension in zed: extensions. Don't forget to give at least a ⭐ if you like this project :D

Dev installation
  1. Clone this repository
  2. CTRL + SHIFT + P and select zed: install dev extension
  3. Choose the directory where you cloned this repository
  4. Enjoy :)

How to configure?

You can configure state, details and git integration by changing Discord Presence LSP settings. This can be done in zed: open settings with following configuration:

{
  "lsp": {
    "discord_presence": {
      "initialization_options": {
        // Base url for all language icons
        "base_icons_url": "https://raw.githubusercontent.com/xhyrom/zed-discord-presence/main/assets/icons/",

        "state": "Working on {filename}",
        "details": "In {workspace}",
        // URL for large image
        "large_image": "{base_icons_url}/{language}.png",
        "large_text": "{language:u}", // :u makes first letter upper-case
        // URL for small image
        "small_image": "{base_icons_url}/zed.png",
        "small_text": "Zed",

        // Rules - disable presence in some workspaces
        "rules": {
          "mode": "blacklist", // or whitelist
          "paths": [
            "absolute path"
          ]
        },

        "git_integration": true
      }
    }
  }
}

You can also use null to unset the option. Possible for everything except base_icons_url, rules and git_integration