Extension for Zed that adds support for Discord Rich Presence using LSP
Find a file
2024-08-27 15:38:55 +02:00
.gimi build: add gimi 2024-07-23 21:10:03 +02:00
.github ci: run only if not in pull request 2024-08-27 15:38:55 +02:00
assets fix: add regex's unicode-case feature flag 2024-08-04 23:30:13 +02:00
lsp build: bump lsp to 0.5.0 2024-08-18 20:27:33 +02:00
scripts feat: add more languages 2024-08-16 14:02:04 +02:00
src docs: add license header files 2024-07-23 21:08:39 +02:00
.gitignore feat: initialization 2024-07-19 00:05:53 +02:00
Cargo.lock build: bump lsp to 0.5.0 2024-08-18 20:27:33 +02:00
Cargo.toml docs: change default repo 2024-08-07 15:57:14 +02:00
extension.toml refactor: use - in extension id 2024-08-24 12:29:52 +02:00
LICENSE feat: initialization 2024-07-19 00:05:53 +02:00
README.md docs: can be downloaded directly in zed 2024-08-27 15:35:32 +02:00

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