26 lines
No EOL
2.1 KiB
Markdown
26 lines
No EOL
2.1 KiB
Markdown
В **Helix** пока нет встроенной полноценной поддержки сниппетов в том виде, как это сделано в VS Code (где нажал Tab и развернулся шаблон кода), но есть очень мощная альтернатива через **LSP (Language Server Protocol)**.
|
||
|
||
То, что ты описываешь ("заполнить match по всем вариантам enum"), — это фича **rust-analyzer**, и она работает в Helix через **Code Actions**.
|
||
|
||
### Как сделать "Fill match arms" в Helix:
|
||
|
||
1. Напиши `match s.split_once(',') {}`.
|
||
2. Поставь курсор **внутри** фигурных скобок `{}` или на ключевое слово `match`.
|
||
3. Нажми **`Space` + `a`** (команда `code_action`).
|
||
4. В появившемся меню выбери **"Fill match arms"**.
|
||
|
||
Rust-analyzer автоматически сгенерирует код:
|
||
```rust
|
||
match s.split_once(',') {
|
||
Some(_) => todo!(),
|
||
None => todo!(),
|
||
}
|
||
```
|
||
|
||
### Насчет классических сниппетов
|
||
В Helix нативная поддержка сниппетов (как в VSCode: набрал `for` -> Tab -> развернулся цикл) находится в разработке/планах.
|
||
Сейчас сообщество использует:
|
||
1. **Внешние решения:** Например, через автодополнение LSP, если сервер их поддерживает (rust-analyzer кое-что умеет, например `tmod` разворачивает тестовый модуль).
|
||
2. **Скрипты/Пайпы:** Можно настроить хоткеи на вставку текста через `pipe` из внешних файлов, но это костыльно.
|
||
|
||
Так что для Rust твой лучший друг — это `Space` + `a` (Code Actions). Это даже круче сниппетов, потому что оно контекстно-зависимое. |