61 lines
3.6 KiB
Markdown
61 lines
3.6 KiB
Markdown
# 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
|
||
```
|