|
| 1 | +--- |
| 2 | +title: Вбудовані плагіни |
| 3 | +author: Franco Colussi |
| 4 | +contributors: Steven Spencer |
| 5 | +tested_with: 8.6, 9.0 |
| 6 | +tags: |
| 7 | + - nvchad |
| 8 | + - coding |
| 9 | + - плагіни |
| 10 | +--- |
| 11 | + |
| 12 | +# Плагіни базової конфігурації |
| 13 | + |
| 14 | +!!! примітка "Угода про іменування плагінів" |
| 15 | + |
| 16 | + У цій главі формат `user_github/plugin_name` використовуватиметься для ідентифікації плагіна. Це зроблено для того, щоб уникнути можливих помилок із плагінами з подібними назвами та запровадити формат, який використовується для введення плагінів як NvChad, так і `спеціальною` конфігурацією. |
| 17 | + |
| 18 | +Версія 2.0 містить багато нових функцій. Нова версія приймає `lazy.nvim` як менеджер плагінів замість `packer.nvim`, це передбачає внесення деяких змін для користувачів попередньої версії з власною конфігурацією (_custom_ папка). |
| 19 | + |
| 20 | +`lazy.nvim` забезпечує зручне керування плагінами через уніфікований інтерфейс та об’єднує механізм для синхронізації плагінів між установками (_lazy-lock.json_). |
| 21 | + |
| 22 | +NvChad зберігає конфігурацію плагінів за замовчуванням у файлі _lua/plugins/init.lua_. А додаткові конфігурації різних плагінів містяться в папці _/nvim/lua/plugins/configs_. |
| 23 | + |
| 24 | +Ми можемо побачити уривок файлу _init.lua_ нижче: |
| 25 | + |
| 26 | +```lua |
| 27 | +local default_plugins = { |
| 28 | + |
| 29 | + "nvim-lua/plenary.nvim", |
| 30 | + |
| 31 | + -- nvchad plugins |
| 32 | + { "NvChad/extensions", branch = "v2.0" }, |
| 33 | + |
| 34 | + { |
| 35 | + "NvChad/base46", |
| 36 | + branch = "v2.0", |
| 37 | + build = function() |
| 38 | + require("base46").load_all_highlights() |
| 39 | + end, |
| 40 | + }, |
| 41 | + |
| 42 | + { |
| 43 | + "NvChad/ui", |
| 44 | + branch = "v2.0", |
| 45 | + lazy = false, |
| 46 | + config = function() |
| 47 | + require "nvchad_ui" |
| 48 | + end, |
| 49 | + }, |
| 50 | +... |
| 51 | +... |
| 52 | +-- lazy_nvim startup opts |
| 53 | +local lazy_config = vim.tbl_deep_extend("force", require "plugins.configs.lazy_nvim", config.lazy_nvim) |
| 54 | + |
| 55 | +require("lazy").setup(default_plugins, lazy_config) |
| 56 | +``` |
| 57 | + |
| 58 | +Розробники NvChad провели величезну роботу, яку слід відзначити. Вони створили інтегроване середовище серед усіх плагінів, що робить інтерфейс користувача чистим і професійним. Крім того, плагіни, які працюють *під капотом*, дозволяють розширене редагування та інші функції. |
| 59 | + |
| 60 | +Усе це означає, що звичайні користувачі можуть миттєво отримати базову IDE, з якою можна почати роботу, і розширювану конфігурацію, яку можна адаптувати до їхніх потреб. |
| 61 | + |
| 62 | +## Основні плагіни |
| 63 | + |
| 64 | +Нижче наведено короткий аналіз основних плагінів: |
| 65 | + |
| 66 | +- [nvim-lua/plenary.nvim](https://github.com/nvim-lua/plenary.nvim) – надає бібліотеку поширених функцій lua, які використовуються іншими плагінами, наприклад *telescope* і *gitsigns*. |
| 67 | + |
| 68 | +- [NvChad/extensions](https://github.com/NvChad/extensions) – основні утиліти NvChad. Тут ми знаходимо: *change_theme*, *reload_config*, *reload_theme*, *update_nvchad* і папку *telescope/extension*, у якій можна вибрати тему безпосередньо з Telescope. |
| 69 | + |
| 70 | +- [NvChad/base46](https://github.com/NvChad/base46) – надає теми для інтерфейсу. |
| 71 | + |
| 72 | +- [NvChad/ui](https://github.com/NvChad/ui) – надає фактичний інтерфейс. Завдяки цьому плагіну ми можемо мати *рядок стану*, який надає нам інформацію під час редагування, і *рядок вкладок*, який дозволяє керувати відкритими буферами. |
| 73 | + |
| 74 | +- [NvChad/nvterm](https://github.com/NvChad/nvterm) – надає термінал для нашої IDE, де ми можемо видавати команди. Термінал можна відкрити в буфері різними способами: |
| 75 | + |
| 76 | + - `<ALT-h>` відкриває термінал, розділяючи буфер горизонтально |
| 77 | + - `<ALT-v>` відкриває термінал, розділяючи буфер по вертикалі |
| 78 | + - `<ALT-i>` відкриває термінал у плаваючій вкладці |
| 79 | + |
| 80 | +- [NvChad/nvim-colorizer.lua](https://github.com/NvChad/nvim-colorizer.lua) – ще один плагін, написаний розробниками NvChad. Це особливо високоефективний хайлайтер. |
| 81 | + |
| 82 | +- [kyazdani42/nvim-web-devicons](https://github.com/kyazdani42/nvim-web-devicons) – додає піктограми (потрібен один із Nerd Fonts) до типів файлів і папок до нашої IDE. Це дозволяє нам візуально ідентифікувати типи файлів у нашому Провіднику файлів, щоб пришвидшити операції. |
| 83 | + |
| 84 | +- [lukas-reineke/indent-blankline.nvim](https://github.com/lukas-reineke/indent-blankline.nvim) – надає вказівки для кращого визначення відступів у документі, дозволяючи суб - підпрограми та вкладені команди, які легко розпізнаються. |
| 85 | + |
| 86 | +- [nvim-treesitter/nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) – дозволяє використовувати інтерфейс Treesitter у Neovim і надає деякі основні функціональність, наприклад підсвічування. |
| 87 | + |
| 88 | +- [lewis6991/gitsigns.nvim](https://github.com/lewis6991/gitsigns.nvim) – прикрашає *git* зі звітами для доданих, видалених і змінених рядків-звітів, які також інтегровані в *рядок стану*. |
| 89 | + |
| 90 | +## Функціональність LSP |
| 91 | + |
| 92 | +Тепер давайте перейдемо до плагінів, які забезпечують функціональність для інтеграції LSP (Language Server Protocols) у наші проекти. Це, безумовно, одна з найкращих функцій NvChad. Завдяки LSP ми можемо контролювати те, що пишемо, у режимі реального часу. |
| 93 | + |
| 94 | +- [williamboman/mason.nvim](https://github.com/williamboman/mason.nvim) – дозволяє спрощувати керування встановленням LSP (Language Server) через зручний графічний інтерфейс. Надаються такі команди: |
| 95 | + |
| 96 | + - `:Mason` |
| 97 | + - `:MasonInstall` |
| 98 | + - `:MasonUninstall` |
| 99 | + - `:MasonUnistallAll` |
| 100 | + - `:MasonLog` |
| 101 | + |
| 102 | +- [neovim/nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) – надає відповідні конфігурації майже для кожного доступного мовного сервера. Це колекція спільноти з уже встановленими найбільш релевантними параметрами. Плагін піклується про отримання наших конфігурацій і розміщення їх у середовищі редактора. |
| 103 | + |
| 104 | +Він надає такі команди: |
| 105 | + |
| 106 | + - `:LspInfo` |
| 107 | + - `:LspStart` |
| 108 | + - `:LspStop` |
| 109 | + - `:LspRestart` |
| 110 | + |
| 111 | +## Код Lua |
| 112 | + |
| 113 | +Після LSP з’являються всі плагіни, які забезпечують функціональність у написанні та виконанні коду Lua, наприклад фрагменти, команди lsp, буфери тощо. Ми не будемо вдаватися в подробиці, але їх можна переглянути у відповідних проектах на GitHub. |
| 114 | + |
| 115 | +Плагіни: |
| 116 | + |
| 117 | +- [hrsh7th/nvim-cmp](https://github.com/hrsh7th/nvim-cmp) |
| 118 | +- [L3MON4D3/LuaSnip](https://github.com/L3MON4D3/LuaSnip) |
| 119 | +- [rafamadriz/friendly-snippets](https://github.com/rafamadriz/friendly-snippets) |
| 120 | +- [saadparwaiz1/cmp_luasnip](https://github.com/saadparwaiz1/cmp_luasnip) |
| 121 | +- [hrsh7th/cmp-nvim-lua](https://github.com/hrsh7th/cmp-nvim-lua) |
| 122 | +- [hrsh7th/cmp-nvim-lsp](https://github.com/hrsh7th/cmp-nvim-lsp) |
| 123 | +- [hrsh7th/cmp-buffer](https://github.com/hrsh7th/cmp-buffer) |
| 124 | +- [hrsh7th/cmp-path](https://github.com/hrsh7th/cmp-path) |
| 125 | + |
| 126 | +## Змішані плагіни |
| 127 | + |
| 128 | +- [windwp/nvim-autopairs](https://github.com/windwp/nvim-autopairs) – завдяки цьому плагіну ми маємо функцію автоматичного закриття дужок та інших символів. Наприклад, вставивши початкову дужку `(` завершення автоматично вставить закриваючу дужку `)`, розмістивши курсор посередині. |
| 129 | + |
| 130 | +- [numToStr/Comment.nvim](https://github.com/numToStr/Comment.nvim) – надає розширені функції для коментування коду. |
| 131 | + |
| 132 | +## Керування файлами |
| 133 | + |
| 134 | +- [kyazdani42/nvim-tree.lua](https://github.com/kyazdani42/nvim-tree.lua) – Провідник файлів для Neovim, який дозволяє виконувати найпоширеніші операції з файлами (копіювати, вставити тощо), має інтеграцію з Git, ідентифікує файли з різними значками та іншими функціями. Найважливіше те, що він оновлюється автоматично (це дуже корисно, коли ви працюєте зі сховищами Git). |
| 135 | + |
| 136 | +  |
| 137 | + |
| 138 | +- [nvim-telescope/telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) – надає розширені можливості пошуку файлів, має широкі можливості налаштування та також може бути (для прикладу), який використовується для вибору тем NvChad (команда `:Telescope themes`). |
| 139 | + |
| 140 | +  |
| 141 | + |
| 142 | +- [folke/which-key.nvim](https://github.com/folke/which-key.nvim) – відображає всі можливі автозаповнення, доступні для введеної часткової команди. |
| 143 | + |
| 144 | +  |
| 145 | + |
| 146 | +Ознайомившись із плагінами, які складають базову конфігурацію NvChad, ми можемо перейти до того, як ними керувати. |
0 commit comments