ftplugin | ||
lua/custom | ||
.gitignore | ||
DESCRIPTION.md | ||
init.lua | ||
README.md |
Config refactor (v2.0)
Useful links
Основные прицнипы формирования конфига
Plugins
Разберем на примере oil.nvim
: Сначала базовые настройки, такие как инструкция откуда качать и всякие зависимости и атрибуты по типу приоритета кладутся в директорию custom/plugins
в виде названия плагина:
lua/custom/plugins/oil.lua
return {
"stevearc/oil.nvim",
dependencies = { { "echasnovski/mini.icons", opts = {} } },
config = function()
require "custom/oil"
end,
}
Затем, как можно видеть, сама функция настроек расположена отдельно в файле с идентичным названием, но в директории "повыше":
lua/custom/oil.lua
require("oil").setup{
opts = {
keymaps = {
["g?"] = "actions.show_help",
...
}
FAQ
Зачем так мучаться? Не проще все кидать в один файл?
Проще, но такое распараллеливание позволяет легче дебажить файлы настроек. Т.е. исправляя настройки мы можем просто source
'ить файл настроек, не трогая конфигурации скачивания файлов, чтобы лишний раз не триггерить Lazy.
Разница между ftplugin и after/ftplugin
Суть одна и та-же: загрузка конфигураций для конкретных типов файлов, однако:
ftplugin
Тут храняться настройки, которые будут применены до загразуки плагинов. Т.е. настройки, что определны где-то в настройках плагинов будут переписывать если что те, которые установлены для типов файлов тут
after/ftplugin
Настройки для типов файлов тут будут применены уже после того, как загрузится все содержимое neovim => эти настройки будут перегружать все то, что было настроено в плагинах