t0vim/README.md
2025-01-31 20:47:04 +03:00

39 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 => эти настройки будут перегружать все то, что было настроено в плагинах