2024-08-15 16:26:13 +00:00
|
|
|
# Slash Commands Example Extension
|
|
|
|
|
|
|
|
This is an example extension showcasing how to write slash commands.
|
2024-09-01 18:02:14 +00:00
|
|
|
|
|
|
|
See: [Extensions: Slash Commands](https://zed.dev/docs/extensions/slash-commands) in the Zed Docs.
|
|
|
|
|
|
|
|
## Pre-requisites
|
|
|
|
|
|
|
|
[Install Rust Toolchain](https://www.rust-lang.org/tools/install):
|
|
|
|
|
|
|
|
```sh
|
|
|
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
|
|
|
```
|
|
|
|
|
|
|
|
## Setup
|
|
|
|
|
|
|
|
```sh
|
|
|
|
git clone https://github.com/zed-industries/zed.git
|
|
|
|
cp -RL zed/extensions/slash-commands-example .
|
|
|
|
|
|
|
|
cd slash-commands-example/
|
|
|
|
|
|
|
|
sed -i '' '/\[lints]/,/^$/s/^workspace/#&/' Cargo.toml
|
|
|
|
curl -O https://raw.githubusercontent.com/rust-lang/rust/master/LICENSE-APACHE
|
|
|
|
echo "# Zed Slash Commands Example Extension" > README.md
|
|
|
|
echo "Cargo.lock" > .gitignore
|
|
|
|
echo "target/" >> .gitignore
|
|
|
|
echo "*.wasm" >> .gitignore
|
|
|
|
|
|
|
|
git init
|
|
|
|
git add .
|
|
|
|
git commit -m "Initial commit"
|
|
|
|
|
|
|
|
cd ..
|
|
|
|
mv slash-commands-example MY-SUPER-COOL-ZED-EXTENSION
|
|
|
|
zed $_
|
|
|
|
```
|
|
|
|
|
|
|
|
## Installation
|
|
|
|
|
|
|
|
1. Open the command palette (`cmd-shift-p` or `ctrl-shift-p`).
|
|
|
|
2. Launch `zed: install dev extension`
|
|
|
|
3. Select the `slash-commands-example` folder created above
|
|
|
|
|
|
|
|
## Test
|
|
|
|
|
|
|
|
Open the assistant and type `/echo` and `/pick-one` at the beginning of a line.
|
|
|
|
|
|
|
|
## Customization
|
|
|
|
|
|
|
|
Open the `extensions.toml` file and set the `id`, `name`, `description`, `authors` and `repository` fields.
|
|
|
|
|
|
|
|
Rename `slash-commands-example.rs` you'll also have to update `Cargo.toml
|
|
|
|
|
|
|
|
## Rebuild
|
|
|
|
|
|
|
|
Rebuild to see these changes reflected:
|
|
|
|
|
|
|
|
1. Open Zed Extensions (`cmd-shift-x` or `ctrl-shift-x`).
|
|
|
|
3. Click `Rebuild` next to your Dev Extension (formerly "Slash Command Example")
|
|
|
|
|
|
|
|
## Troubleshooting / Logs
|
|
|
|
|
|
|
|
- MacOS: `tail -f ~/Library/Logs/Zed/Zed.log`
|
|
|
|
- Linux: `tail -f ~/.local/share/zed/logs/Zed.log`
|
|
|
|
|
|
|
|
## Documentation
|
|
|
|
|
|
|
|
- [zed.dev docs: Extensions: Developing Extensions](https://zed.dev/docs/extensions/developing-extensions)
|
|
|
|
- [zed.dev docs: Extensions: Slash Commands](https://zed.dev/docs/extensions/slash-commands)
|