From 2b94b5f5359f66acb020cba87efbcf31e46605a1 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Fri, 16 Feb 2024 15:59:41 -0700 Subject: [PATCH] New Crowdin updates (#1775) * New translations template_chadrc.md (Ukrainian) * New translations 04-advanced-commands.md (Italian) * New translations install_nvchad.md (Italian) * New translations template_chadrc.md (Ukrainian) --- .../admin_guide/04-advanced-commands.it.md | 82 ++++++- docs/books/nvchad/install_nvchad.it.md | 6 +- docs/books/nvchad/template_chadrc.uk.md | 212 +++++++++++------- 3 files changed, 212 insertions(+), 88 deletions(-) diff --git a/docs/books/admin_guide/04-advanced-commands.it.md b/docs/books/admin_guide/04-advanced-commands.it.md index 9057d699bd..8d83326be7 100644 --- a/docs/books/admin_guide/04-advanced-commands.it.md +++ b/docs/books/admin_guide/04-advanced-commands.it.md @@ -370,7 +370,7 @@ Contrariamente a quanto potrebbe suggerire il nome, il comando `install` non vie Questo comando combina la copia dei file (`cp`) e la creazione di cartelle (`mkdir`), con la gestione dei diritti (`chmod`, `chown`) e altre utili funzionalità (come i backup). ```bash -install source dest +install source dest install -t directory source [...] install -d directory ``` @@ -438,3 +438,83 @@ Il suffisso può essere specificato grazie all'opzione `-S`: $ install -v -b -S ".bak" -D -t ~/samples/ src/sample.txt 'src/sample.txt' -> '~/samples/sample.txt' (archive: '~/samples/sample.txt.bak') ``` + +## Comando `tree` + +Espande i file o le cartelle della directory in una struttura ad albero. + +| opzioni | descrizione | +|:------- |:------------------------------------------------------------- | +| `-a` | Vengono elencati tutti i file | +| `-h` | Stampa le dimensioni in un modo più leggibile per l'utente | +| `-u` | Visualizza il proprietario del file o il numero UID | +| `-g` | Visualizza il proprietario del gruppo di file o il numero GID | +| `-p` | Stampa le protezioni per ciascun file | + +Per esempio: + +```bash +$ tree -hugp /etc/yum.repos.d/ +/etc/yum.repos.d/ +├── [-rw-r--r-- root root 1.6K] epel-modular.repo +├── [-rw-r--r-- root root 1.3K] epel.repo +├── [-rw-r--r-- root root 1.7K] epel-testing-modular.repo +├── [-rw-r--r-- root root 1.4K] epel-testing.repo +├── [-rw-r--r-- root root 710] Rocky-AppStream.repo +├── [-rw-r--r-- root root 695] Rocky-BaseOS.repo +├── [-rw-r--r-- root root 1.7K] Rocky-Debuginfo.repo +├── [-rw-r--r-- root root 360] Rocky-Devel.repo +├── [-rw-r--r-- root root 695] Rocky-Extras.repo +├── [-rw-r--r-- root root 731] Rocky-HighAvailability.repo +├── [-rw-r--r-- root root 680] Rocky-Media.repo +├── [-rw-r--r-- root root 680] Rocky-NFV.repo +├── [-rw-r--r-- root root 690] Rocky-Plus.repo +├── [-rw-r--r-- root root 715] Rocky-PowerTools.repo +├── [-rw-r--r-- root root 746] Rocky-ResilientStorage.repo +├── [-rw-r--r-- root root 681] Rocky-RT.repo +└── [-rw-r--r-- root root 2.3K] Rocky-Sources.repo + +0 directories, 17 files +``` + +## Comando `stat` + +Il comando `stat` visualizza lo stato di un file o di un file system. + +```bash +$ stat /root/anaconda-ks.cfg + File: /root/anaconda-ks.cfg + Size: 1352 Blocks: 8 IO Block: 4096 regular file +Device: 10302h/66306d Inode: 2757097 Links: 1 +Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) +Access: 2024-01-20 13:04:57.012033583 +0800 +Modify: 2023-09-25 14:04:48.524760784 +0800 +Change: 2024-01-24 16:37:34.315995221 +0800 + Birth: 2 +``` + +* `File`: Visualizza il percorso del file. +* `Size`: Visualizza le dimensioni del file in byte. Se si tratta di una directory, visualizza i 4096 byte fissi occupati dal nome della directory. +* `Blocks`: Visualizza il numero di blocchi allocati. Attenzione, prego! Le dimensioni di ogni blocco in questo comando sono di 512 byte. La dimensione predefinita di ciascun blocco in `ls -ls` è di 1024 byte. +* `Device` - Numero del dispositivo in notazione decimale o esadecimale. +* `Inode`: L'inode è un numero ID univoco che il kernel Linux assegna a un file o a una directory. +* `Links`: Numero di collegamenti diretti. I collegamenti diretti sono talvolta detti collegamenti fisici. +* `Access`: L'ora dell'ultimo accesso ai file e alle directory, ovvero `atime` in GNU/Linux. +* `Modify`: La data dell'ultima modifica di file e directory, ovvero `mtime` in GNU/Linux. +* `Change`: La data dell'ultima modifica della proprietà, ad esempio `ctime` in GNU/Linux. +* `Birth`: Data di origine (data della creazione). In alcuni documenti è abbreviato come `btime` o `crtime`. Per visualizzare la data di creazione è necessario che la versione del file system e del kernel sia superiore a una determinata versione. + +Per i file: + +**atime**: Dopo aver effettuato l'accesso al contenuto del file con comandi quali `cat`, `less`, `more` e `head`, l'`atime` del file può risultare aggiornato. Prestare attenzione! L'`atime` del file non viene aggiornato in tempo reale e, per motivi di prestazioni, deve attendere un certo periodo di tempo prima di poter essere visualizzato. **mtime**: La modifica del contenuto del file può aggiornare il `mtime` del file (come l'aggiunta o la sovrascrittura del contenuto del file tramite reindirizzamento); poiché la dimensione del file è una proprietà del file, anche il `ctime` del file verrà aggiornato simultaneamente. **ctime**: La modifica del proprietario, del gruppo, dei permessi, della dimensione del file e dei collegamenti (soft e hard link) del file aggiornerà ctime. + +Per le cartelle: + +**atime**: Dopo aver usato il comando `cd` per entrare in una nuova directory in cui non si è mai acceduto prima, è possibile aggiornare e correggere l'`atime` di quella directory. **mtime**: L'esecuzione di operazioni quali la creazione, l'eliminazione e la ridenominazione di file in questa directory aggiornerà l'`mtime` e il `ctime` della directory. **ctime**: Quando i permessi, il proprietario, il gruppo e così via di una directory cambiano, il `ctime` della directory viene aggiornato. + +!!! tip "Suggerimento" + + * Se si crea un nuovo file o una nuova directory, i suoi `atime`, `mtime` e `ctime` sono esattamente gli stessi + * Se il contenuto del file viene modificato, l'`mtime` e il `ctime` del file verranno inevitabilmente aggiornati. + * Se viene creato un nuovo file nella directory, `atime`, `ctime` e `mtime` della directory verranno aggiornati simultaneamente. + * Se viene aggiornato l'`mtime` di una directory, deve essere aggiornato anche il `ctime` di quella directory. diff --git a/docs/books/nvchad/install_nvchad.it.md b/docs/books/nvchad/install_nvchad.it.md index 77de1ef3c4..eef515faf5 100644 --- a/docs/books/nvchad/install_nvchad.it.md +++ b/docs/books/nvchad/install_nvchad.it.md @@ -73,7 +73,7 @@ Una volta terminato il processo di clonazione nella seconda parte del comando, v ### :material-timer-cog-outline: Bootstrap -Prima di avviare il bootstrap, l'installazione propone l'installazione di una struttura di base (*template chadrc*) per le nostre ulteriori personalizzazioni: +Prima di avviare il bootstrap, l'installazione ci proporrà l'installazione di una struttura di base (*template chadrc*) per la nostra ulteriore personalizzazione: > Do you want to install chadrc template? (y/N): @@ -130,7 +130,7 @@ La parte riservata all'editor è la seguente: ### Struttura del template -Mentre la parte relativa alle personalizzazioni è costituita dalla seguente struttura: +Mentre la parte relativa alla personalizzazione è costituita dalla seguente struttura: ```text .config/nvim/lua/custom/ @@ -212,4 +212,4 @@ Queste sono alcune delle chiavi impostate. Si consiglia di consultare il file so `` per aprire nvimtree ++ctrl++ + ++"n"++ `` per aprire un terminale in una scheda flottante ++alt++ + ++"i"++ -Ci sono molte combinazioni preimpostate che coprono tutti gli usi di NvChad. Vale la pena soffermarsi ad analizzare le mappature delle chiavi prima di iniziare a usare l'istanza di Neovim configurata con NvChad. +Le combinazioni preimpostate sono numerose e coprono tutti gli usi di NvChad. Vale la pena soffermarsi ad analizzare le mappature delle chiavi prima di iniziare a usare l'istanza di Neovim configurata con NvChad. diff --git a/docs/books/nvchad/template_chadrc.uk.md b/docs/books/nvchad/template_chadrc.uk.md index cf33667b44..6946f8f640 100644 --- a/docs/books/nvchad/template_chadrc.uk.md +++ b/docs/books/nvchad/template_chadrc.uk.md @@ -1,5 +1,5 @@ --- -title: Шаблон Chadrc +title: Приклад Config author: Franco Colussi contributors: Steven Spencer, Ganna Zhyrnova tested_with: 8.7, 9.1 @@ -9,70 +9,113 @@ tags: - плагіни --- -# Шаблон Chadrc +# Приклад конфігурації -У версії 2.0 NvChad розробники представили можливість створювати на етапі інсталяції папку `custom`, де ви можете робити власні налаштування. Запровадження цієї функції дає змогу мати редактор із основними функціями IDE із самого початку. +## :material-message-outline: Вступ -Найважливішим аспектом створення папки _custom_ є запис файлів, які містять конфігурації для налаштування деяких додаткових функцій, таких як мовні сервери, лінтери та засоби форматування. Ці файли дозволяють нам інтегрувати, лише з кількома змінами, потрібну нам функціональність. +У версії 2.0 NvChad з’явилася можливість створювати папку ==custom== на етапі встановлення. Його створення є відправною точкою для налаштування редактора шляхом зміни його файлів. Встановлений під час завантаження, він дозволяє використовувати редактор із основними функціями IDE під час першого запуску, але також може бути включений після встановлення NvChad. -Папка також містить файли для підсвічування коду та відображення настроюваних команд. +Найважливішим аспектом його встановлення є створення базових структур для включення деяких розширених функцій, таких як мовні сервери, лінтери та засоби форматування. Ці структури дозволяють інтегрувати необхідну функціональність з невеликими змінами. -Папку створено на основі прикладу в репозиторії GitHub NvChad: ([example-config](https://github.com/NvChad/example_config)). Щоб створити його під час встановлення, просто дайте відповідь «у» на запитання, яке нам задають на початку встановлення: +Папку створено на основі прикладу в репозиторії GitHub NvChad: ([example-config](https://github.com/NvChad/example_config)). -> Do you want to install chadrc template? (Бажаєте встановити шаблон chadrc?) (y/N) : +## :material-monitor-arrow-down-variant: Встановлення -Позитивна відповідь розпочне процес, який клонуватиме вміст папки _example-config_ із GitHub у **~/.config/ nvim/lua/custom/** і після завершення видалить з нього папку **.git**. Це дозволяє нам поставити конфігурацію під наш власний контроль версій. +=== "Встановлення за допомогою початкового завантаження" -Після завершення ми матимемо наступну структуру: + Щоб створити його під час встановлення, дайте відповідь «у» на запитання, яке нам задають на початку встановлення: + + > Do you want to install example custom config? (y/N): + + Ствердна відповідь розпочне процес, який клонує вміст папки *example-config* із GitHub у **~/.config/nvim/lua/custom/** і після завершення видалить з нього папку **.git**. + Його видалення дозволяє помістити папку під персональний контроль версій. + + Папка готова та використовуватиметься під час наступного запуску NvChad для введення власних конфігурацій у редактор. + +=== "Встановлення із репозиторію" + + Встановлення конфігурації, надане за допомогою ==example-config==, також можна виконати після встановлення NvChad, у цьому випадку сховище все ще використовується, але отримується вручну. + + Стандартна інсталяція без ==example-config== усе одно створює папку *custom*, де потрібно зберегти файл ==chadrc.lua== для налаштувань користувача, який слід видалити або зберегти в ==резервній копії==, щоб забезпечити запуск клону. Потім збережіть наявну конфігурацію за допомогою: + + ```bash + mv ~/.config/nvim/lua/custom/ ~/.config/nvim/lua/custom.bak + ``` + + + І клонуйте репозиторій GitHub до вашої конфігурації: + + ```bash + git clone https://github.com/NvChad/example_config.git ~/.config/nvim/lua/custom + ``` + + + Ця команда копіює весь вміст репозиторію, знайдений в Інтернеті, до папки `~/.config/nvim/lua/custom/`, копіюючи приховану папку `.git`, яку потрібно видалити вручну, щоб дозволити перейти до особистого контролю версій. Для видалення виконайте команду: + + ```bash + rm rf ~/.config/nvim/lua/custom/.git/ + ``` + + + Папка готова та використовуватиметься під час наступного запуску NvChad для введення власних конфігурацій у редактор. + +## :material-file-outline: Структура + +Структура папки ==custom== складається з кількох конфігураційних файлів і папки `configs`, яка містить файли опцій плагіна, встановлені в *plugins.lua*. + +Використання окремих файлів для налаштувань плагіна дає змогу мати набагато оптимізованіший файл *plugins.lua* та працювати лише над кодом плагіна під час його налаштування. Це також рекомендований метод для розробки плагінів, які ви додасте пізніше. + +Створена структура виглядає наступним чином: ```text custom/ ├── chadrc.lua -├── init.lua -├── plugins.lua -├── mappings.lua -├── highlights.lua ├── configs +│   ├── conform.lua │   ├── lspconfig.lua -│   ├── null-ls.lua │   └── overrides.lua +├── highlights.lua +├── init.lua +├── mappings.lua +├── plugins.lua └── README.md + ``` -Як ми бачимо, папка містить кілька файлів з такою ж назвою, які також зустрічаються в базовій структурі NvChad. Ці файли дозволяють інтегрувати конфігурацію та замінювати основні параметри редактора. +Як ми бачимо, папка містить кілька однойменних файлів, які також зустрічаються в базовій структурі NvChad. Ці файли дозволяють інтегрувати конфігурацію та замінювати основні параметри редактора. -## Аналіз структури +## :octicons-file-code-16: Аналіз структури Тепер перейдемо до його змісту: -### Основні файли +### :material-file-multiple-outline: Основні файли -#### chadrc.lua +#### :material-language-lua: chadrc.lua ```lua ---@type ChadrcConfig local M = {} -- Path to overriding theme and highlights files -local highlights = require("custom.highlights") +local highlights = require "custom.highlights" M.ui = { - theme = "onedark", - theme_toggle = { "onedark", "one_light" }, + theme = "onedark", + theme_toggle = { "onedark", "one_light" }, - hl_override = highlights.override, - hl_add = highlights.add, + hl_override = highlights.override, + hl_add = highlights.add, } M.plugins = "custom.plugins" -- check core.mappings for table structure -M.mappings = require("custom.mappings") +M.mappings = require "custom.mappings" return M ``` -Файл вставляється в конфігурацію Neovim за допомогою функції `load_config`, встановленої у файлі **~/.config/nvim/lua/core/utils.lua**, функція, яка піклується про завантаження параметрів за замовчуванням і, якщо є, також параметрів нашого _chadrc.lua_: +Файл вставляється в конфігурацію Neovim за допомогою функції `load_config`, встановленої у файлі **~/.config/nvim/lua/core/utils.lua**. Функція завантажує параметри за замовчуванням і, якщо є, налаштування файлу *chadrc.lua* в папці *custom*: ```lua M.load_config = function() @@ -81,29 +124,29 @@ M.load_config = function() ... ``` -Його функція полягає в тому, щоб вставити файли з нашої папки _custom_ у конфігурацію NvChad, щоб потім використовувати їх разом із файлами за замовчуванням для запуску _ Neovim_екземпляра. Файли вставляються в дерево конфігурації за допомогою функцій `require`, таких як: +Його функція полягає в тому, щоб вставляти файли з папки *custom* у конфігурацію NvChad, а потім використовувати їх разом із файлами за замовчуванням для запуску екземпляра *Neovim*. Файли вставляються в дерево конфігурації за допомогою функцій `require', таких як: ```lua require("custom.mappings") ``` -Рядок **custom.mappings** вказує відносний шлях до файлу без розширення на відміну від шляху за замовчуванням, який у цьому випадку становить **~/.config/nvim/lua/**. Крапка замінює косу риску, оскільки це конвенція в коді, написаному мовою Lua (у _мові lua_ немає поняття _каталогу _). +Рядок **custom.mappings** вказує відносний шлях до файлу без розширення на відміну від шляху за замовчуванням, який у цьому випадку є **~/.config/nvim/lua/**. Крапка замінює скісну риску, оскільки це домовленість у коді, написаному мовою Lua (у *мові lua* немає поняття *каталог*). -Підсумовуючи, ми можемо сказати, що описаний вище виклик вставляє конфігурації, записані у файлі **custom/mappings.lua**, у відображення NvChad, таким чином вставляючи наші ярлики для виклику команд наших плагінів. +Підсумовуючи, ми можемо сказати, що виклик, описаний вище, вставляє конфігурації, записані у файлі `custom/mappings.lua`, у відображення NvChad, таким чином вставляючи ярлики для виклику команд для плагінів, встановлених у ` custom/plugins.lua`. -Потім у нас є розділ, який замінює деякі параметри конфігурації інтерфейсу користувача NvChad, що містяться в **~/.config/nvim/lua/core/default_config.lua**, точніше в M.ui, який дозволяє нам, наприклад, вибрати світлу або темну тему. +Розділ у файлі також замінює деякі параметри конфігурації інтерфейсу користувача NvChad, що містяться в `core/default_config.lua`, зокрема розділ **M.ui**, який дозволяє, наприклад, виберіть світлу або темну тему. -Ми також маємо включення наших плагінів, визначених у **custom/plugins.lua** відповідно до рядка: +У кінці файлу встановлюється виклик ==require== до файлу `custom/plugins.lua`, який відповідає рядку: ```lua M.plugins = "custom.plugins" ``` -Таким чином наші плагіни разом із тими, що складають конфігурацію NvChad, будуть передані до _lazy.nvim_ для встановлення та керування. У цьому випадку включення відбувається не в дереві Neovim, а в конфігурації _lazy.nvim_, оскільки цей плагін повністю вимикає відносну функціональність редактора за допомогою виклику `vim.go.loadplugins = false`. +Таким чином плагіни, встановлені в `custom/plugins.lua`, разом із тими, що складають конфігурацію NvChad, будуть передані до *lazy.nvim* для встановлення та керування ними. У цьому випадку включення не в дерево Neovim. Натомість у конфігурації *lazy.nvim*, оскільки цей плагін повністю вимикає відповідні функції редактора за допомогою виклику `vim.go.loadplugins = false`. Натомість він міститься в конфігурації *lazy.nvim*, оскільки цей плагін повністю вимикає відповідні функції редактора за допомогою виклику `vim.go.loadplugins = false`. -#### init.lua +#### :material-language-lua: init.lua -Цей файл використовується для перезапису на диск налаштувань, визначених у **~/.config/nvim/lua/core/init.lua**, як-от відступ або інтервал запису своп. Він також використовується для створення автоматичних команд, як описано в коментованих рядках у файлі. Прикладом може бути наступне, до якого включено деякі налаштування для написання документів у Markdown: +Цей файл використовується для перезапису налаштувань, визначених у `core/init.lua`, таких як відступ або інтервал запису на диск. Він також використовується для створення автоматичних команд, як описано в коментованих рядках у файлі. Прикладом може бути наступне, до якого включено деякі налаштування для написання документів у Markdown: ```lua --local autocmd = vim.api.nvim_create_autocmd @@ -126,15 +169,15 @@ opt.smartindent = true -- }) ``` -Таким чином, наші налаштування замінять налаштування за замовчуванням. +Це, серед іншого, замінює 2-пробілну табуляцію на 4-пробілну табуляцію, яка більше підходить для коду Markdown. -#### plugins.lua +#### :material-language-lua: plugins.lua -Цей файл, як ви можете здогадатися з назви, використовується для додавання наших плагінів до плагінів у базовій конфігурації NvChad. Вставлення плагінів детально описано на сторінці, присвяченій [Менеджеру плагінів](nvchad_ui/plugins_manager.md). +Цей файл встановлює плагіни, які потрібно додати до базової конфігурації NvChad. Додавання плагінів детально описано на сторінці, присвяченій [Менеджеру плагінів](nvchad_ui/plugins_manager.md). -Файл _plugins.lua_, створений за допомогою _шаблону chadrc_, у першій частині має низку налаштувань, які замінюють параметри визначення плагіна та конфігурації плагіна за замовчуванням. Цю частину файлу ми не потребуємо змінювати, оскільки для цього розробники підготували спеціальні файли, які знаходяться в папці _config_. +Файл *plugins.lua*, створений за допомогою *example-config*, містить у першій частині кілька налаштувань, які замінюють параметри визначення плагіна та конфігурації плагіна за замовчуванням. Цю частину файлу нам не потрібно змінювати, оскільки для цього розробники підготували спеціальні файли, які знаходяться в папці *config*. -Потім виконайте встановлення плагіна. Це налаштовано як приклад, щоб ви могли почати знайомитися з форматом, який використовує _lazy.nvim_, який дещо відрізняється від формату, який використовує _packer.nvim_, обробник, який використовувався у версії 1.0. +Далі встановлюється плагін. Це було створено як приклад, щоб ознайомити вас із використовуваним форматом *lazy.nvim*. ```lua -- Install a plugin @@ -147,13 +190,13 @@ opt.smartindent = true }, ``` -Після цього плагіна та перед останньою дужкою ми можемо вставити всі наші плагіни. Існує ціла екосистема плагінів, які підходять для будь-яких цілей. Щоб отримати початкові знання, відвідайте [Neovimcraft](https://neovimcraft.com/). +Ви можете вставити всі додаткові плагіни після цього плагіна та перед останньою дужкою. Існує ціла екосистема плагінів, які підходять для будь-яких цілей. Ви можете відвідати [Neovimcraft](https://neovimcraft.com/) для першого огляду. -#### mappings.lua +#### :material-language-lua: mappings.lua -Цей файл вставляє в дерево конфігурації відображення (комбінації клавіш), які будуть потрібні для виклику команд плагінів, які ми збираємося додати. +Цей файл призначений для включення в дерево конфігурації відповідностей (комбінацій клавіш), необхідних для виклику додаткових команд плагіна. -Тут також представлено приклад налаштування для вивчення його формату: +Тут також представлено приклад налаштування, щоб можна було вивчити його формат: ```lua M.general = { @@ -163,36 +206,36 @@ M.general = { } ``` -Це відображення вводиться для стану NORMAL `n =` символ ++";"++, який при натисканні на клавіатурі відтворює символ ++":"++. Цей символ використовується для входу в режим COMMAND. Параметр `nowait = true` також встановлено для негайного входу в цей режим. Таким чином, на клавіатурі з американською розкладкою QWERTY нам не потрібно буде використовувати ++shift++ для входу в режим COMMAND. +Це відображення вводиться для стану NORMAL `n =` символ ++";"++, який, якщо натиснути на клавіатурі, відтворює символ ++двокрапка++. Цей символ використовується для входу в КОМАНДНИЙ режим. Параметр `nowait = true` також встановлено для негайного входу в цей режим. Таким чином, на клавіатурі з американською розкладкою QWERTY нам не потрібно буде використовувати ++shift++ для входу в режим COMMAND. !!! tip "Порада" Користувачам європейських клавіатур (наприклад, італійської) рекомендується замінити символ ++";"++ на ++","++. -#### highlights.lua +#### :material-language-lua: highlights.lua -Файл використовується для налаштування стилю редактора. Наведені тут налаштування використовуються для зміни таких аспектів, як стиль шрифту (**жирний**,_курсив_), колір фону елементу, колір переднього плану тощо. +Файл використовується для налаштування стилю редактора. Наведені тут параметри використовуються для зміни таких аспектів, як стиль шрифту (**жирний**,*курсив*), колір фону елемента, колір переднього плану тощо. -### Папка configs +### :material-folder-cog-outline: Папка configs -Файли в цій папці – це файли конфігурації, які використовуються у файлі **custom/plugins.lua** для зміни параметрів плагінів за замовчуванням, які працюють із мовними серверами (_lspconfig_), linter/formatters (_null-ls_), а також для заміни основних налаштувань **treesitter**, **mason** і **nvim-tree** (_override_). +Ця папка містить усі конфігураційні файли, які використовуються у файлі **custom/plugins.lua** для зміни параметрів за замовчуванням плагінів, які працюють із мовними серверами (*lspconfig*), linter/formatters ( *conform*), а також для заміни базових налаштувань **treesitter**, **mason** і **nvim-tree** (*override*). ```text configs/ +├── conform.lua ├── lspconfig.lua -├── null-ls.lua └── overrides.lua ``` -#### lspconfig.lua +#### :material-language-lua: lspconfig.lua -Файл _lspconfig.lua_ встановлює локальні мовні сервери, які може використовувати редактор. Це дозволить використовувати додаткові функції для підтримуваних файлів, наприклад автозаповнення або фрагменти, для швидкого створення фрагментів коду. Щоб додати наш _lsp_ до конфігурації, ми просто редагуємо таблицю (у _lua_ те, що представлено нижче фігурним у дужках — таблиця), яка підготовлена спеціально розробниками NvChad: +Файл *lspconfig.lua* встановлює локальні мовні сервери, які може використовувати редактор. Це дозволить розширеним функціям для підтримуваних файлів, таким як автозаповнення або фрагменти, швидко створювати частини коду. Щоб додати наш *lsp* до конфігурації, ми просто редагуємо таблицю (в *lua* те, що представлено нижче у фігурних дужках, є таблицею), підготовлену спеціально розробниками NvChad: ```lua local servers = { "html", "cssls", "tsserver", "clangd" } ``` -Як ми бачимо, деякі сервери вже налаштовані за замовчуванням. Щоб додати новий, просто введіть його в кінці таблиці. Доступні сервери можна знайти на [mason packages](https://github.com/williamboman/mason.nvim/blob/main/PACKAGES.md), а для їх конфігурацій можна звернутися до [конфігурації сервера lsp](https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md). +Як ми бачимо, деякі сервери вже налаштовані за замовчуванням. Щоб додати новий, введіть його в кінці таблиці. Доступні сервери можна знайти на [mason packages](https://github.com/williamboman/mason.nvim/blob/main/PACKAGES.md), а для їх конфігурацій ви можете звернутися до [lsp server configurations](https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md). Наприклад, якщо ми також хочемо підтримувати мову `yaml`, ми можемо додати її, як показано в наступному прикладі: @@ -200,36 +243,36 @@ local servers = { "html", "cssls", "tsserver", "clangd" } local servers = { "html", "cssls", "tsserver", "clangd", "yamlls" } ``` -Однак зміна файлу не передбачає встановлення відповідного мовного сервера. Це потрібно буде встановити окремо за допомогою _Mason_. Мовний сервер, який підтримує _yaml_, це [yaml-language -server](https://github.com/redhat-developer/yaml-language-server), який нам потрібно встановити за допомогою команди `:MasonInstall yaml-language-server`. На цьому етапі ми матимемо, наприклад, контроль над кодом, написаним у заголовках (_frontmatter_) сторінок документації Rocky Linux. +Однак зміна файлу не передбачає встановлення відповідного мовного сервера. Це потрібно встановити окремо за допомогою *Mason*. Мовний сервер, який підтримує *yaml*, це [yaml-language-server](https://github.com/redhat-developer/yaml-language-server), який нам потрібно встановити за допомогою команди `:MasonInstall yaml-language-server. На цьому етапі ми матимемо, наприклад, контроль над кодом, написаним у заголовках (frontmatter) сторінок документації Rocky Linux.

-#### null-ls.lua +

:material-language-lua: conform.lua

-Цей файл піклується про налаштування деяких функцій, спрямованих на керування та форматування написаного коду. Редагування цього файлу вимагає трохи більше досліджень для налаштування, ніж попередній файл. Огляд доступних компонентів можна знайти на [сторінці вбудованих компонентів](https://github.com/jose-elias-alvarez/null-ls.nvim/blob/main/doc/BUILTINS.md). +

Цей файл налаштовує деякі функції, спрямовані на керування та форматування написаного коду. Редагування цього файлу вимагає більше досліджень для конфігурації, ніж попередній. Огляд доступних компонентів можна знайти на сторінці вбудованих компонентів.

-Знову ж таки, було створено таблицю, таблицю `локальних джерел`, куди ми можемо вводити свої налаштування, які ми можемо побачити нижче: +

Знову було створено таблицю ==formatters_by_ft==, у яку потрібно вводити налаштування:

-```lua -local sources = { +
--type conform.options
+local options = {
+  lsp_fallback = true,
 
-    -- webdev stuff
-    b.formatting.deno_fmt,
-    b.formatting.prettier.with({ filetypes = { "html", "markdown", "css" } }),
-    -- Lua
-    b.formatting.stylua,
+  formatters_by_ft = {
+    lua = { "stylua" },
 
-    -- cpp
-    b.formatting.clang_format,
+    javascript = { "prettier" },
+    css = { "prettier" },
+    html = { "prettier" },
+    sh = { "shfmt" },
+  },
 }
-```
+`
-Як ми бачимо, у початковій конфігурації були включені лише засоби форматування, але нам, наприклад, може знадобитися діагностика для мови Markdown, і в такому випадку ми можемо додати [Markdownlint](https://github.com/DavidAnson/markdownlint) так: +Як бачите, у початкову конфігурацію входили лише стандартні форматери. Наприклад, вам може знадобитися форматувальник для мови Markdown, і в цьому випадку ви можете додати, наприклад, [Markdownlint](https://github.com/DavidAnson/markdownlint): ```lua - -- diagnostic markdown - b.diagnostics.markdownlint, + markdown = { "markdownlint" }, ``` -Знову ж таки, конфігурація потребує встановлення відповідного пакета, який ми завжди встановлюємо за допомогою _Mason_: +Знову ж таки, конфігурація вимагає встановлення відповідного пакета, який можна встановити за допомогою *Mason*: ```text :MasonInstall markdownlint @@ -237,17 +280,17 @@ local sources = { !!! note "Примітка" - Конфігурація цього інструменту діагностики також вимагає створення файлу конфігурації у вашій домашній папці, про що в цьому документі не йдеться. + Конфігурація цього форматера також вимагає створення файлу конфігурації у вашій домашній папці, про що в цьому документі не йдеться. -#### overrides.lua +#### :material-language-lua: overrides.lua -Файл _overrides.lua_ містить зміни, які потрібно внести в налаштування плагіна за замовчуванням. Плагіни, до яких мають бути застосовані зміни, указано в розділі `-- override plugin configs` у файлі **custom/plugins.lua** через використання опції `opts` (наприклад, `opts = overrides.mason`). +Файл *overrides.lua* містить зміни, які потрібно внести в налаштування плагіна за замовчуванням. Плагіни, до яких буде застосовано зміни, указано в розділі ==-- Перевизначити параметри визначення плагіна== у файлі `custom/plugins.lua` за допомогою **opts** (наприклад, `opts = overrides.mason`). -У початковій конфігурації є три плагіни, позначені як такі, що потребують перевизначення, і це _treesitter_, _mason_ і _nvim-tree_. Наразі не згадуючи _nvim-tree_, ми зосередимося на перших двох, які дозволяють нам суттєво змінити досвід редагування. +У початковій конфігурації є три плагіни, позначені як такі, що потребують перевизначення, і це *treesitter*, *mason* і *nvim-tree*. Залишаючи наразі *nvim-tree*, ми зосередимося на перших двох, які дозволяють нам суттєво змінити досвід редагування. -_treesitter_ — це аналізатор коду, який інтерактивно піклується про його форматування. Кожного разу, коли ми зберігаємо файл, розпізнаний _treesitter_, він передається синтаксичному аналізатору, який повертає оптимально виділене дерево коду з відступами, тому його буде легше читати, інтерпретувати та редагувати код у редакторі. +*treesitter* — це синтаксичний аналізатор коду, який піклується про його форматування в інтерактивний спосіб. Щоразу, коли ми зберігаємо файл, розпізнаний *treesitter*, він передається синтаксичному аналізатору, який повертає оптимально виділене дерево коду з відступом, що полегшує читання, інтерпретацію та редагування коду в редакторі. -Частина коду, яка це стосується, наступна: +Частина коду, яка це робить, така: ```lua M.treesitter = { @@ -272,7 +315,7 @@ M.treesitter = { } ``` -Тепер, дотримуючись прикладу, наведеного раніше, якщо ми хочемо, щоб _frontmatter_ наших сторінок документації про Rocky Linux було правильно виділено, ми можемо додати підтримку для *yaml* у таблиці `ensure_installed` після останнього набору аналізатора: +Тепер, дотримуючись прикладу, наведеного раніше, якщо ми хочемо, щоб *frontmatter* наших сторінок документації на Rocky Linux було правильно виділено, ми можемо додати підтримку для *yaml* у ` secure_installed` після останнього набору аналізатора: ```text ... @@ -284,7 +327,7 @@ M.treesitter = { ... ``` -Тепер, коли ми наступного разу відкриємо NvChad, аналізатор, який ми щойно додали, також буде автоматично встановлено. +Наступного разу, коли ми відкриємо NvChad, аналізатор, який ми щойно додали, також буде автоматично встановлено. Щоб мати доступ до аналізатора безпосередньо у запущеному екземплярі NvChad, ми завжди можемо встановити його, навіть не редагуючи файл, за допомогою команди: @@ -292,7 +335,7 @@ M.treesitter = { :TSInstall yaml ``` -Далі у файлі є частина, яка стосується встановлення серверів _Mason_. Усі сервери, указані в цій таблиці, встановлюються за одну операцію за допомогою команди `:MasonInstallAll` (ця команда також викликається під час створення папки _custom_). Частина має наступний вигляд: +Далі у файлі є частина, яка стосується встановлення серверів *Mason*. Усі сервери, указані в цій таблиці, встановлюються однією операцією за допомогою команди `:MasonInstallAll` (ця команда також викликається під час створення *користувацької* папки). Частина має наступний вигляд: ```lua M.mason = { @@ -311,7 +354,7 @@ M.mason = { } ``` -Знову ж таки, слідуючи початковому прикладу, де ми ввімкнули підтримку для _yaml_, встановивши сервер вручну, ми можемо переконатися, що він у нас завжди встановлений, додавши його до таблиці: +Знову ж таки, слідуючи початковому прикладу, де ми ввімкнули підтримку для *yaml*, встановивши сервер вручну, ми можемо переконатися, що він завжди встановлений, додавши його до таблиці: ```text ... @@ -324,11 +367,12 @@ M.mason = { ... ``` -Хоча цей аспект може бути незначним для запущеного екземпляра NvChad, оскільки ми завжди можемо вручну встановити відсутні сервери, він виявляється дуже корисним під час перенесення нашої конфігурації з однієї машини на іншу. +Хоча цей аспект може бути незначним на запущеному екземплярі NvChad, оскільки ми завжди можемо вручну встановити відсутні сервери, він виявляється дуже корисним під час перенесення нашої конфігурації з однієї машини на іншу. Наприклад, припустімо, що ми налаштували папку `custom` із усіма потрібними функціями та хочемо перенести її до іншої інсталяції NvChad. Якщо ми налаштували цей файл, після копіювання або клонування нашої папки `custom` `:MasonInstallAll` буде достатньо, щоб мати всі сервери, готові до використання в іншій установці. -Остання частина налаштування, розділ `M.nvimtree`, піклується про налаштування _nvim-tree_, увімкнувши функцію відображення стану в дерево файлів щодо репозиторію git: + +Остання частина конфігурації, розділ `M.nvimtree`, піклується про налаштування *nvim-tree*, увімкнувши функцію відображення стану в дереві файлів, що стосуються репозиторію git: ```lua git = { @@ -349,8 +393,8 @@ M.mason = { }, ``` -## Висновок +## :material-contain-end: Висновок -Введення в NvChad 2.0 можливості створювати папку `custom` під час першого встановлення, безперечно, є великою підмогою для всіх тих користувачів, які вперше використовують цей редактор. Це також значна економія часу для тих, хто вже мав справу з NvChad. +Поява в NvChad 2.0 можливості створювати `спеціальну` папку під час першого встановлення, безсумнівно, є великою підмогою для всіх тих користувачів, які вперше користуються цим редактором. Це також значна економія часу для тих, хто вже мав справу з NvChad. -Завдяки його представленню та використанню _Mason_ дуже легко та швидко інтегрувати власні функції. Потрібно лише внести кілька змін, і ви одразу готові використовувати IDE для написання коду. +Завдяки представленню та використанню *Mason* інтеграція ваших функцій є простою та швидкою. Потрібно лише внести кілька змін, і ви одразу готові використовувати IDE для написання коду.