# Config refactor (v2.0) ## Useful links - [Переписывание конфига с автором telescope](https://www.youtube.com/watch?v=kJVqxFnhIuw&t=510s) - [Документация по Lua в Nvim](https://neovim.io/doc/user/lua-guide.html) - [Конфиг TJ](https://github.com/tjdevries/config.nvim/tree/master) ## Основные прицнипы формирования конфига ### Root plugin папка Скрипты в этой папке загружаются автоматически после инициализации `neovim`, но до загрузки файлов типа `ftplugin/` или `after/`. ### Plugins Разберем на примере `oil.nvim`: Сначала базовые настройки, такие как инструкция откуда качать и всякие зависимости и атрибуты по типу приоритета кладутся в директорию `custom/plugins` в виде названия плагина: *lua/custom/plugins/oil.lua* ```lua return { "stevearc/oil.nvim", dependencies = { { "echasnovski/mini.icons", opts = {} } }, config = function() require "custom/oil" end, } ``` Затем, как можно видеть, сама функция настроек расположена отдельно в файле с идентичным названием, но в директории "повыше": *lua/custom/oil.lua* ```lua require("oil").setup{ opts = { keymaps = { ["g?"] = "actions.show_help", }, }, } ``` ## Разница между ftplugin и after/ftplugin Суть одна и та-же: загрузка конфигураций для конкретных типов файлов, однако: ### ftplugin Тут храняться настройки, которые будут применены **до** загразуки плагинов. Т.е. настройки, что определны где-то в настройках плагинов будут переписывать если что те, которые установлены для типов файлов тут ### after/ftplugin Настройки для типов файлов тут будут применены уже после того, как загрузится все содержимое neovim => эти настройки будут перегружать все то, что было настроено в плагинах # FAQ > Зачем так мучаться? Не проще все кидать в один файл? Проще, но такое распараллеливание позволяет легче дебажить файлы настроек. Т.е. исправляя настройки мы можем просто `source`ить файл настроек, не трогая конфигурации скачивания файлов, чтобы лишний раз не триггерить Lazy. > Что делать, если в `checkhealth` выдается ошибка `luarocks not found`? Необходимо его установить по инструкции с [сайта](https://luarocks.org/) > Что делать, если при установке `luarocks` выдает ошибку что не найдены `.h` файлы? Надо установить хэдеры lua командой: ```bash sudo apt install liblua5.3-dev ``` > checkhealth не может найти tree-sitter cli Надо установить соответствующий `npm` пакет: ```js npm install -g tree-sitter-cli ```