Настройка линзы кода для 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. Проверьте это!

Удобно запускать тестовые примеры по отдельности, когда мне нужно отладить или устранить проблему.

Пример конфигурации, который я использовал, доступен здесь.