hyperion/10-linux/00-utils/helix/fill match arms.md

26 lines
No EOL
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

В **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). Это даже круче сниппетов, потому что оно контекстно-зависимое.