39 lines
2.7 KiB
Markdown
39 lines
2.7 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)
|
||
## Основные прицнипы формирования конфига
|
||
### 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",
|
||
...
|
||
}
|
||
```
|
||
#### FAQ
|
||
> Зачем так мучаться? Не проще все кидать в один файл?
|
||
|
||
Проще, но такое распараллеливание позволяет легче дебажить файлы настроек. Т.е. исправляя настройки мы можем просто `source`'ить файл настроек, не трогая конфигурации скачивания файлов, чтобы лишний раз не триггерить Lazy.
|
||
|
||
## Разница между ftplugin и after/ftplugin
|
||
Суть одна и та-же: загрузка конфигураций для конкретных типов файлов, однако:
|
||
### ftplugin
|
||
Тут храняться настройки, которые будут применены **до** загразуки плагинов. Т.е. настройки, что определны где-то в настройках плагинов будут переписывать если что те, которые установлены для типов файлов тут
|
||
### after/ftplugin
|
||
Настройки для типов файлов тут будут применены уже после того, как загрузится все содержимое neovim => эти настройки будут перегружать все то, что было настроено в плагинах
|