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