Настройка линзы кода для Rust.
Обзор
CodeLens — очень полезная функция для разработчиков, позволяющая легко идентифицировать действия или ссылки в конкретном файле. В этой статье рассматривается использование линзы кода Neovim LSP и функций действия при наведении курсора для запуска или отладки приложений Rust.
Настраивать
Я использую Neovim 0.6 и настраиваю rust-analyzer в качестве языкового сервера. Поскольку я уже проходил настройку в предыдущих статьях, подробности здесь опущены.
Инструкции можно найти в следующих статьях.
Объектив кода поддерживается не всеми языковыми серверами. Обычно мы должны проверить, поддерживается ли эта возможность, прежде чем настраивать какую-либо пользовательскую конфигурацию.
Например. Я проверил, поддерживается ли функция кодовой линзы, прежде чем настраивать какие-либо сопоставления клавиш.
Проблема
- Теперь откройте проект Rust и введите
:lua vim.lsp.codelens.refresh()
- Вы должны увидеть варианты запуска или отладки методов и тестов.
- Введите
:lua vim.lsp.codelens.run()
- Вам будет предложено выбрать действие кодовой линзы.
- И отображается следующее сообщение об ошибке.
Обходной путь
Чтобы решить эту проблему, давайте установим rust-tools.nvim.
Я установил его с помощью packer.nvim.
use {'simrat39/rust-tools.nvim'}
И вот конфигурация, которую я использовал.
Действия при наведении
Теперь, если я запускаю :lua vim.lsp.buf.hover()
или :RustHoverActions
для методов или тестовых случаев. Я вижу доступные действия.
И я могу успешно запустить код.
Отладка
Плагин интегрирован с nvim-dap и позволяет легко отлаживать приложения на Rust.
Ознакомьтесь с этой статьей, если вы еще не настроили nvim-dap.
Установите точку останова и запустите сеанс отладки.
Существуют и другие функции, предоставляемые rust-tools.nvim для расширения возможностей LSP. Проверьте это!
Удобно запускать тестовые примеры по отдельности, когда мне нужно отладить или устранить проблему.
Пример конфигурации, который я использовал, доступен здесь.