Советы и рекомендации для лучшего опыта кодирования.

Обзор

Мы рассмотрели с вами советы и рекомендации по использованию tree-sitter в моей предыдущей статье. В этой статье мы продолжаем исследовать, как мы можем улучшить наш опыт кодирования с помощью Neovim.

Эту статью можно читать независимо от других связанных статей.

Лучше выбрать

nvim-ts-hint-textobject — это плагин, использующий tree-sitter, который обеспечивает выбор региона с помощью подсказок на абстрактном синтаксическом дереве документа. Это предназначено для использования для ожидающих сопоставлений операторов.

С помощью packer.nvim устанавливаю и настраиваю плагин.

use {
      "mfussenegger/nvim-ts-hint-textobject",
      config = function()
        vim.cmd [[omap     <silent> m :<C-U>lua require('tsht').nodes()<CR>]]
        vim.cmd [[vnoremap <silent> m :lua require('tsht').nodes()<CR>]]
      end,
}

Запустите luafile % и :PackerInstall, чтобы установить их.

Теперь я могу легко выбрать правильный блок кода в визуальном режиме или использовать операторы Vim.

Например, используя визуальный режим или оператор Vim, введите «m», и вы сможете выбрать либо класс, либо функцию.

Лучше TODO

todo-комментарий. nvim — это плагин Lua для выделения и поиска комментариев к задачам, таких как TODO, HACK, BUG, или ключевых слов, которые вы определили в своей кодовой базе.

Вы можете перечислить TODO в списке быстрых исправлений или с помощью Trouble или Telescope.

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

Запустите luafile % и :PackerInstall, чтобы установить их.

Лучшее совместное использование кода

gitlinker.nvim — это плагин Lua для создания постоянных ссылок на общие файлы с диапазонами строк.

use {
     'ruifm/gitlinker.nvim',
      config = function() require("gitlinker").setup() end
}

По умолчанию, когда вы вводите <leader>gy в обычном или визуальном режиме, создается постоянная ссылка.

Например. https://github.com/alpha2phi/dotfiles/blob/1511bcdd7b1a0fa3a0d63da66247111c1a0d002c/config/nvim/lua/plugins.lua#L50

Улучшенные и умные текстовые объекты

В части 1 я показал вам nvim-treesitter-textobjects.

nvim-treesitter-textsubjects — это еще один плагин Lua, который предоставляет вам текстовые объекты с учетом местоположения и синтаксиса.

use {'RRethy/nvim-treesitter-textsubjects'}

В вашей конфигурации Treesitter

require'nvim-treesitter.configs'.setup {
    textsubjects = {
        enable = true,
        keymaps = {
            ['.'] = 'textsubjects-smart',
            [';'] = 'textsubjects-container-outer',
        }
    },
}

  • Я выбираю строку в функции.
  • Нажмите ., и функция будет выбрана.
  • Нажмите . еще раз, и класс будет выбран.

Лучшее сотрудничество

instant.nvim — это плагин для совместного редактирования для Neovim, написанный на Lua без каких-либо зависимостей.

use {'jbyuki/instant.nvim'}

Кроме того, установите глобальное имя пользователя.

let g:instant_username = "alpha2phi"

Чтобы протестировать его локально,

  • На первом экземпляре Neovim запустите :InstantStartServer. Сервер должен начать слушать порт 8080.
  • Теперь запустите сеанс, запустив :InstantStartSession 127.0.0.1 8080.
  • Измените instance_username на другое имя.
  • Запустите второй экземпляр Neovim. Запустите :InstantJoinSession 127.0.0.1 8080, а затем :InstantFollow alpha2phi
  • Теперь мы можем начать сотрудничать!

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





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