Плагины Neovim для улучшения рабочего процесса разработки.

Обзор

В предыдущей статье я рассказал о новых фреймворках завершения Neovim, которые стоит попробовать. Давайте рассмотрим новые плагины Neovim, которые могут улучшить наш рабочий процесс в этой статье!



SnipRun

В Emacs есть org-mode и org-babel, которые позволяют нам запускать код в интерактивном режиме. Я ищу простое решение для Neovim и считаю, что SnipRun пригодится.

SnipRun - это плагин для запуска кода для Neovim, написанный на Lua и Rust. Он нацелен на глупо быстрое тестирование частичного кода для интерпретируемых и скомпилированных языков. Он стирает грань между стандартным рабочим процессом сохранения и запуска, записной книжкой, подобной Jupyter, и REPL / интерпретаторами.

Чтобы установить его с помощью packer.nvim,

use {
      "michaelb/sniprun",
      run = "bash install.sh",
      config = function()
        require("config.sniprun").setup()
      end,
}

Я настраиваю его для отображения результатов в области командной строки в виде виртуального текста и в плавающем окне.

local M = {}
function M.setup()
  require("sniprun").setup {
    display = {
      "Classic",
      "VirtualTextOk",
      "TempFloatingWindow",
    },
  }
end
return M

Подобные плагины,

  • Magma-nvim для интерактивного запуска кода с Jupyter.
  • Codi.vim - интерактивный блокнот для хакеров.
  • Vim-slime, который захватывает текст и отправляет его целевому объекту, например GNU Screen, tmux или Vim Terminal.

null-ls.nvim

Null-ls.nvim позволяет нам использовать Neovim в качестве языкового сервера для внедрения диагностики LSP, действий кода и многого другого через Lua.

В моем случае я использую его для дополнения функций, отсутствующих на некоторых языковых серверах, например для поддержки форматирования кода на некоторых языках, таких как Lua и Python.

Чтобы установить его с помощью packer.nvim,

use {
      "jose-elias-alvarez/null-ls.nvim",
      requires = { "nvim-lua/plenary.nvim",    
                   "neovim/nvim-lspconfig"},
}

Для форматирования кода настраиваю

  • prettierдля файлов HTML, CSS и Javascript
  • stylua для файлов Lua
  • black и isort для файлов Python

Для диагностики настраиваю

  • write_good для Markdown и текстовых файлов
  • flake8 для файлов Python

Для кодовых действий настраиваю gitsigns

Я также настраиваю theauto command для автоматического форматирования буфера.

В строке состояния я настраиваю его для отображения подключенных языковых серверов. Например. на приведенном ниже экране вы можете видеть, что к текущему буферу прикреплены pyright и null-ls.

Подобные плагины,

Неорг

Neorg - это новый плагин для создания заметок, который я использую. Он легко интегрируется с treesitter и nvim-cmp и имеет измененный формат org.

Установка требует нескольких шагов. Например. установить с помощьюpacker.nvim,

use {
      "vhyrro/neorg",
      config = function()
        require("config.neorg").setup()
      end,
      requires = "nvim-lua/plenary.nvim",
}

А ниже - конфигурация Lua,

Затем мне нужно настроить парсер treeitter.

Затем выполните :TSInstall norg.

Для завершения добавляю исходник в nvim-cmp конфигурации.

sources = {
	...
	{ name = "neorg" }
}

После завершения установки мы готовы использовать Neorg.

Подобные плагины,

Прочтите эту статью, чтобы узнать о других плагинах, которые вы можете использовать.

Авто-сессия + сессия-линза

Раньше я использовал довольно много плагинов для управления сессиями. Сейчас я использую комбинацию автосессия и сессия-линза. Он легко интегрируется с telescope.nvim, что упрощает переключение сеансов.

use {
      "rmagatti/session-lens",
      requires = { "rmagatti/auto-session", "nvim-telescope/telescope.nvim" },
      config = function()
        require("config.auto-session").setup {}
        require("session-lens").setup {}
      end,
}

nvim-lsp-ts-utils

Nvim-lsp-ts-utils улучшает возможности разработки TypeScript для встроенного клиента LSP Neovim.

После настройки вы можете использовать его для

  • организовать импорт (:TSLspOrganize)
  • переименовать файл и обновить импорт (:TSLspRenameFile)
  • импортировать все отсутствующие импорты (:TSLspImportAll)
  • импорт по завершении

Этот плагин также интегрируется с null-ls.nvim для обеспечения действий кода ESLint, диагностики и форматирования.

Для установки вам необходимо настроить его в рамках настройки языкового сервера.

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

Ознакомьтесь со всеми статьями Vim / Neovim в разделе Практический способ изучения Neovim.

Вы также можете прочитать эти статьи!







Если вы еще не являетесь участником Medium и хотите им стать, нажмите здесь. (Часть вашей абонентской платы будет использована для поддержки alpha2phi.)