From c2fb3e1ea80e34dafbde09018ee26cf7b8cad9b8 Mon Sep 17 00:00:00 2001 From: Nalitnyk Date: Sat, 2 Dec 2023 17:35:24 +0200 Subject: [PATCH 1/8] i18n: Init Ukrainian Language --- docusaurus.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus.config.js b/docusaurus.config.js index f671f9bc..0d44b34d 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -28,7 +28,7 @@ const config = { // to replace "en" with "zh-Hans". i18n: { defaultLocale: 'en', - locales: ['en', 'de', 'es', 'zh-Hans'], + locales: ['en', 'de', 'es', 'ua', 'zh-Hans'], }, presets: [ From f3bea2958df6233b10c05ac067b735a7567ce293 Mon Sep 17 00:00:00 2001 From: Nalitnyk Date: Sat, 2 Dec 2023 17:52:24 +0200 Subject: [PATCH 2/8] docs: init Ukrainian translation --- i18n/ua/code.json | 287 ++++++++++++++++++ .../options.json | 14 + .../current.json | 46 +++ .../current/_category_.json | 3 + .../current/beginners-guide/_category_.json | 3 + .../beginners-guide/beginners-guide.md | 24 ++ .../beginners-guide/keybinds-overview.md | 97 ++++++ .../beginners-guide/plugins-overview.md | 55 ++++ .../current/beginners-guide/terminology.md | 25 ++ .../current/community/README.md | 11 + .../current/community/_category_.json | 4 + .../current/community/meet-the-team.md | 17 ++ .../current/configuration/README.md | 30 ++ .../current/configuration/_category_.json | 3 + .../configuration/appearance/_category_.json | 4 + .../configuration/appearance/colorschemes.md | 81 +++++ .../configuration/appearance/statusline.md | 148 +++++++++ .../current/configuration/autocommands.md | 49 +++ .../current/configuration/ftplugin.md | 19 ++ .../current/configuration/keybindings.md | 171 +++++++++++ .../language-features/_category_.json | 3 + .../language-features/custom-snippets.md | 72 +++++ .../language-features/language-features.md | 33 ++ .../language-features/language-servers.md | 132 ++++++++ .../linting-and-formatting.md | 115 +++++++ .../current/configuration/options.md | 56 ++++ .../configuration/plugins/_category_.json | 3 + .../current/configuration/plugins/plugins.md | 98 ++++++ .../current/dev/README.md | 84 +++++ .../current/dev/_category_.json | 4 + .../current/dev/lunarvim_initialization.png | Bin 0 -> 311321 bytes .../current/dev/under-the-hood.md | 78 +++++ .../current/faq.md | 38 +++ .../current/features/_category_.json | 4 + .../current/features/core-plugins-list.md | 50 +++ .../supported-frameworks/_category_.json | 4 + .../features/supported-frameworks/angular.md | 36 +++ .../features/supported-frameworks/vue.md | 33 ++ .../supported-languages/_category_.json | 4 + .../features/supported-languages/ansible.md | 16 + .../features/supported-languages/c_cpp.md | 29 ++ .../features/supported-languages/csharp.md | 25 ++ .../features/supported-languages/go.md | 27 ++ .../features/supported-languages/hcl.md | 16 + .../features/supported-languages/java.md | 147 +++++++++ .../supported-languages/javascript.md | 50 +++ .../features/supported-languages/json.md | 29 ++ .../features/supported-languages/julia.md | 53 ++++ .../features/supported-languages/lua.md | 21 ++ .../supported-languages/powershell.md | 33 ++ .../features/supported-languages/python.md | 36 +++ .../features/supported-languages/qml.md | 31 ++ .../features/supported-languages/ruby.md | 31 ++ .../features/supported-languages/rust.md | 16 + .../features/supported-languages/scala.md | 104 +++++++ .../features/supported-languages/swift.md | 40 +++ .../features/supported-languages/terraform.md | 18 ++ .../supported-languages/typescript.md | 53 ++++ .../current/installation/_category_.json | 4 + .../current/installation/installation.md | 125 ++++++++ .../current/installation/post-install.md | 37 +++ .../current/troubleshooting/README.md | 148 +++++++++ .../current/troubleshooting/_category_.json | 4 + .../version-1.2.json | 30 ++ .../version-1.3.json | 50 +++ i18n/ua/docusaurus-theme-classic/navbar.json | 18 ++ 66 files changed, 3129 insertions(+) create mode 100644 i18n/ua/code.json create mode 100644 i18n/ua/docusaurus-plugin-content-blog/options.json create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current.json create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/_category_.json create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/_category_.json create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/beginners-guide.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/keybinds-overview.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/plugins-overview.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/terminology.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/community/README.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/community/_category_.json create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/community/meet-the-team.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/configuration/README.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/configuration/_category_.json create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/configuration/appearance/_category_.json create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/configuration/appearance/colorschemes.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/configuration/appearance/statusline.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/configuration/autocommands.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/configuration/ftplugin.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/configuration/keybindings.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/configuration/language-features/_category_.json create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/configuration/language-features/custom-snippets.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/configuration/language-features/language-features.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/configuration/language-features/language-servers.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/configuration/language-features/linting-and-formatting.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/configuration/options.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/configuration/plugins/_category_.json create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/configuration/plugins/plugins.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/dev/README.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/dev/_category_.json create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/dev/lunarvim_initialization.png create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/dev/under-the-hood.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/faq.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/features/_category_.json create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/features/core-plugins-list.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/features/supported-frameworks/_category_.json create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/features/supported-frameworks/angular.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/features/supported-frameworks/vue.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/_category_.json create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/ansible.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/c_cpp.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/csharp.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/go.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/hcl.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/java.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/javascript.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/json.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/julia.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/lua.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/powershell.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/python.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/qml.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/ruby.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/rust.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/scala.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/swift.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/terraform.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/typescript.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/installation/_category_.json create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/installation/installation.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/installation/post-install.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/troubleshooting/README.md create mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/troubleshooting/_category_.json create mode 100644 i18n/ua/docusaurus-plugin-content-docs/version-1.2.json create mode 100644 i18n/ua/docusaurus-plugin-content-docs/version-1.3.json create mode 100644 i18n/ua/docusaurus-theme-classic/navbar.json diff --git a/i18n/ua/code.json b/i18n/ua/code.json new file mode 100644 index 00000000..e1762a31 --- /dev/null +++ b/i18n/ua/code.json @@ -0,0 +1,287 @@ +{ + "Loading a terminal...": { + "message": "Завантаження терміналу..", + "description": "AsciinemaPlayer loading text" + }, + "theme.ErrorPageContent.title": { + "message": "Помилка сторінки.", + "description": "The title of the fallback page when the page crashed" + }, + "theme.ErrorPageContent.tryAgain": { + "message": "Спробуйте знову.", + "description": "The label of the button to try again when the page crashed" + }, + "theme.NotFound.title": { + "message": "Сторінку не знайдено.", + "description": "The title of the 404 page" + }, + "theme.NotFound.p1": { + "message": "Ми не змогли знайти те, що ви шукаєте.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.p2": { + "message": "Будь ласка, зв’яжіться з власником сайту, який посилає вас на оригінальну URL-адресу, і повідомте їм, що їхнє посилання не працює.", + "description": "The 2nd paragraph of the 404 page" + }, + "theme.admonition.note": { + "message": "примітка", + "description": "The default label used for the Note admonition (:::note)" + }, + "theme.admonition.tip": { + "message": "підказка", + "description": "The default label used for the Tip admonition (:::tip)" + }, + "theme.admonition.danger": { + "message": "небезпека", + "description": "The default label used for the Danger admonition (:::danger)" + }, + "theme.admonition.info": { + "message": "інфо", + "description": "The default label used for the Info admonition (:::info)" + }, + "theme.admonition.caution": { + "message": "попередження", + "description": "The default label used for the Caution admonition (:::caution)" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Прокрутіть до початку", + "description": "The ARIA label for the back to top button" + }, + "theme.blog.archive.title": { + "message": "Архів", + "description": "The page & hero title of the blog archive page" + }, + "theme.blog.archive.description": { + "message": "Архів", + "description": "The page & hero description of the blog archive page" + }, + "theme.blog.paginator.navAriaLabel": { + "message": "Навігація сторінками списку блогів", + "description": "The ARIA label for the blog pagination" + }, + "theme.blog.paginator.newerEntries": { + "message": "До новіших записи", + "description": "The label used to navigate to the newer blog posts page (previous page)" + }, + "theme.blog.paginator.olderEntries": { + "message": "До старіших записів", + "description": "The label used to navigate to the older blog posts page (next page)" + }, + "theme.blog.post.paginator.navAriaLabel": { + "message": "Навігація сторінками публікацій блогу", + "description": "The ARIA label for the blog posts pagination" + }, + "theme.blog.post.paginator.newerPost": { + "message": "Новішня публікація", + "description": "The blog post button label to navigate to the newer/previous post" + }, + "theme.blog.post.paginator.olderPost": { + "message": "Старіша публікація", + "description": "The blog post button label to navigate to the older/next post" + }, + "theme.blog.post.plurals": { + "message": "Одна публікація|{count} публікації|{count} публікацій", + "description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.blog.tagTitle": { + "message": "{nPosts} tagged with \"{tagName}\"", + "description": "The title of the page for a blog tag" + }, + "theme.tags.tagsPageLink": { + "message": "Переглянути всі Tags", + "description": "The label of the link targeting the tag list page" + }, + "theme.colorToggle.ariaLabel": { + "message": "Перемкнутися між світлим та темним режимом (наразі це {mode})", + "description": "The ARIA label for the navbar color mode toggle" + }, + "theme.colorToggle.ariaLabel.mode.dark": { + "message": "темний режим", + "description": "The name for the dark color mode" + }, + "theme.colorToggle.ariaLabel.mode.light": { + "message": "світлий режим", + "description": "The name for the light color mode" + }, + "theme.docs.breadcrumbs.home": { + "message": "Головна стоінка", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Навігаційна стежка", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.DocCard.categoryDescription": { + "message": "{count} предметів", + "description": "The default description for a category card in the generated index about how many items this category includes" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Навігація сторінками документації", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.previous": { + "message": "Попередня сторінка", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.paginator.next": { + "message": "Наступна сторінка", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.tagDocListPageTitle.nDocsTagged": { + "message": "One doc tagged|{count} docs tagged", + "description": "Pluralized label for \"{count} docs tagged\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.docs.tagDocListPageTitle": { + "message": "{nDocsTagged} з \"{tagName}\"", + "description": "The title of the page for a docs tag" + }, + "theme.docs.versionBadge.label": { + "message": "Версія: {versionLabel}" + }, + "theme.docs.versions.unreleasedVersionLabel": { + "message": "Це неопублікована документація {siteTitle} версії {versionLabel}.", + "description": "The label used to tell the user that he's browsing an unreleased doc version" + }, + "theme.docs.versions.unmaintainedVersionLabel": { + "message": "Це документація для {siteTitle} {versionLabel}, яка більше активно не підтримується.", + "description": "The label used to tell the user that he's browsing an unmaintained doc version" + }, + "theme.docs.versions.latestVersionSuggestionLabel": { + "message": "Для отримання актуальної документації дивіться {latestVersionLink} ({versionLabel}).", + "description": "The label used to tell the user to check the latest version" + }, + "theme.docs.versions.latestVersionLinkLabel": { + "message": "остання версія", + "description": "The label used for the latest version suggestion link label" + }, + "theme.common.editThisPage": { + "message": "Редагувати цю сторінку", + "description": "The link label to edit the current page" + }, + "theme.common.headingLinkTitle": { + "message": "Пряме посилання на заголовок", + "description": "Title for link to heading" + }, + "theme.lastUpdated.atDate": { + "message": " {date}", + "description": "The words used to describe on which date a page has been last updated" + }, + "theme.lastUpdated.byUser": { + "message": " від {user}", + "description": "The words used to describe by who the page has been last updated" + }, + "theme.lastUpdated.lastUpdatedAtBy": { + "message": "Останнє оновлення було {atDate}{byUser}", + "description": "The sentence used to display when a page has been last updated, and by who" + }, + "theme.navbar.mobileVersionsDropdown.label": { + "message": "Версії", + "description": "The label for the navbar versions dropdown on mobile view" + }, + "theme.common.skipToMainContent": { + "message": "Пропустити до основного змісту", + "description": "The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation" + }, + "theme.tags.tagsListLabel": { + "message": "Tags:", + "description": "The label alongside a tag list" + }, + "theme.AnnouncementBar.closeButtonAriaLabel": { + "message": "Закрити", + "description": "The ARIA label for close button of announcement bar" + }, + "theme.blog.sidebar.navAriaLabel": { + "message": "Навігація останніми публікаціями в блозі", + "description": "The ARIA label for recent posts in the blog sidebar" + }, + "theme.CodeBlock.copied": { + "message": "Скопіювано", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Копіювати код до клавіатури", + "description": "The ARIA label for copy code blocks button" + }, + "theme.CodeBlock.copy": { + "message": "Копіювати", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.wordWrapToggle": { + "message": "Перемкнути перенос слів", + "description": "The title attribute for toggle word wrapping button of code block lines" + }, + "theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel": { + "message": "Toggle the collapsible sidebar category '{label}'", + "description": "The ARIA label to toggle the collapsible sidebar category" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Мови", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "На цій сторінці", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.blog.post.readMore": { + "message": "Читати далі", + "description": "The label used in blog post item excerpts to link to full blog posts" + }, + "theme.blog.post.readMoreLabel": { + "message": "Читати більше про {title}", + "description": "The ARIA label for the link to full blog posts from excerpts" + }, + "theme.blog.post.readingTime.plurals": { + "message": "1 хв. читання|{readingTime} хв. читання", + "description": "Pluralized label for \"{readingTime} min read\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Згорнути бічну панель", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.collapseButtonAriaLabel": { + "message": "Згорнути бічну панель", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": { + "message": "← Назад до головного меню", + "description": "The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Розгорнути бічну панель", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonAriaLabel": { + "message": "Розгорнути бічну панель", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.SearchBar.noResultsText": { + "message": "Результатів немає" + }, + "theme.SearchBar.seeAll": { + "message": "Шукати" + }, + "theme.SearchBar.label": { + "message": "Пошук", + "description": "The ARIA label and placeholder for search button" + }, + "theme.SearchPage.existingResultsTitle": { + "message": "Пошукові результати для \"{query}\"", + "description": "The search page title for non-empty query" + }, + "theme.SearchPage.emptyResultsTitle": { + "message": "Пошук в документації", + "description": "The search page title for empty query" + }, + "theme.SearchPage.documentsFound.plurals": { + "message": "1 документ знайдено|{count} документи знайдено|{count} документів знайдено", + "description": "Pluralized label for \"{count} documents found\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.SearchPage.noResultsText": { + "message": "", + "description": "The paragraph for empty search result" + }, + "theme.tags.tagsPageTitle": { + "message": "Tags", + "description": "The title of the tag list page" + } +} diff --git a/i18n/ua/docusaurus-plugin-content-blog/options.json b/i18n/ua/docusaurus-plugin-content-blog/options.json new file mode 100644 index 00000000..9d1e130a --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-blog/options.json @@ -0,0 +1,14 @@ +{ + "title": { + "message": "Блог", + "description": "The title for the blog used in SEO" + }, + "description": { + "message": "Блог", + "description": "The description for the blog used in SEO" + }, + "sidebar.title": { + "message": "Нещодавні дописи", + "description": "The label for the left sidebar" + } +} diff --git a/i18n/ua/docusaurus-plugin-content-docs/current.json b/i18n/ua/docusaurus-plugin-content-docs/current.json new file mode 100644 index 00000000..031d9971 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,46 @@ +{ + "version.label": { + "message": "master", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Installation": { + "message": "Installation", + "description": "The label for category Installation in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Beginner's guide": { + "message": "Beginner's guide", + "description": "The label for category Beginner's guide in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Configuration": { + "message": "Configuration", + "description": "The label for category Configuration in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Appearance": { + "message": "Appearance", + "description": "The label for category Appearance in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Language features": { + "message": "Language features", + "description": "The label for category Language features in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Features": { + "message": "Features", + "description": "The label for category Features in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Supported frameworks": { + "message": "Supported frameworks", + "description": "The label for category Supported frameworks in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Supported languages": { + "message": "Supported languages", + "description": "The label for category Supported languages in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Community": { + "message": "Community", + "description": "The label for category Community in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.For Developers": { + "message": "For Developers", + "description": "The label for category For Developers in sidebar tutorialSidebar" + } +} diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/_category_.json b/i18n/ua/docusaurus-plugin-content-docs/current/_category_.json new file mode 100644 index 00000000..1f79ec67 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/_category_.json @@ -0,0 +1,3 @@ +{ + "position": 6 +} diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/_category_.json b/i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/_category_.json new file mode 100644 index 00000000..046edaa3 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/_category_.json @@ -0,0 +1,3 @@ +{ + "position": 2 +} diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/beginners-guide.md b/i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/beginners-guide.md new file mode 100644 index 00000000..b198088f --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/beginners-guide.md @@ -0,0 +1,24 @@ +# Посібник для початківців + +## Vim-рухи + +Якщо ви ще не знаєте їх, це чудовий час, щоби вивчити рухи vim, +Ось кілька ресурсів, які допоможуть вам: + +- [Серія відео від ThePrimeagen під назвою "Vim As Your Editor" (англійською)](https://www.youtube.com/playlist?list=PLm323Lc7iSW_wuxqmKx_xxNtJC_hJbQ7R) +- Інтерактивний посібник, який активується командою `:Tutor` в NeoVim + + +## Lua + +Вам необхідно володіти базовиви знаннями з Lua, щоби налаштувати LunarVim. + +- [`:help lua-guide`](https://neovim.io/doc/user/lua-guide.html) + +## Наступні кроки + +- [Дізнайтеся про типові сполучення клавіш](./keybinds-overview.md) +- Дізнайтеся про [найбільш важливі типові плагіни](./plugins-overview.md) +- Дізнайтеся як [налаштувати LunarVim](/configuration/README.md) +- Перевірте [starter.lvim](https://github.com/LunarVim/starter.lvim) (колекція конфігурацій lunarvim для мов програмування) + diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/keybinds-overview.md b/i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/keybinds-overview.md new file mode 100644 index 00000000..bdd4da27 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/keybinds-overview.md @@ -0,0 +1,97 @@ +--- +sidebar_position: 3 +--- + +# Keybinds overview + +Here's an overview of the most commonly used mappings. +It is not a complete list, you can find more by pressing `sk` to search through them, +or `` to show whichkey (keybinds popup) + +Also see: +[vim mappings](https://devhints.io/vim) + +**TIP:** `` is space by default, read [`:help keycodes`](https://neovim.io/doc/user/intro.html#keycodes) for more key names + +**TIP:** `` is `alt` on Windows/Linux and `option` on macOS + +**TIP:** For macOS users: For the `option` key (`⌥`) to work as `` you may need to adjust some settings: +- For iTerm2: Select `Esc+` as the Option key setting in [ Preferences - Profiles - Keys ](https://github.com/LunarVim/lunarvim.org/pull/377#discussion_r1140747022) +- For Alacritty: Make sure you're on Alacritty version >= 0.12.0. In your `alacritty.yml` config file, set `window.option_as_alt` to `Both` or `OnlyLeft` \ `OnlyRight` per your preference (https://github.com/alacritty/alacritty/issues/62). + +**TIP:** Non-leader keybindings (for e.g. ``, mentioned below and others) can be viewed +by pressing `` in the which-key main menu (first popup after pressing ``) + +## Plugins + +| key | description | mode | +| ----------------------------- | ----------------------------------------------------------------------------------------------- | ------ | +| `` | [whichkey](https://github.com/folke/which-key.nvim) (keybinds popup (shows up after 1s)) | normal | +| `e` | [nvimtree](https://github.com/nvim-tree/nvim-tree.lua) (side file explorer) | normal | +| `f` `s`(menu) | [telescope](https://github.com/nvim-telescope/telescope.nvim) (find files, grep text, and more) | normal | +| `;` | [alpha](https://github.com/goolord/alpha-nvim) (dashboard) | normal | +| `` `` | [toggleterm](https://github.com/akinsho/toggleterm.nvim) (terminal) | normal | + +## LSP + +| key | description | mode | +| ------ | -------------------------------------------- | ------ | +| `K` | hover information (double tap to get inside) | normal | +| `KK` | move cursor inside `K` window | normal | +| `gd` | go to definition | normal | +| `gD` | go to declaration | normal | +| `gr` | go to references | normal | +| `gI` | go to implementation | normal | +| `gs` | show signature help | normal | +| `gl` | show line diagnostics | normal | +| `glgl` | move cursor inside `gl` diagnostics window | normal | + +## Editing + +| key | description | mode | +| ----------- | ----------------- | -------------- | +| `/` | comment | normal, visual | +| `gb` | block comment | visual | +| `` | move line(s) up | normal, visual | +| `` | move line(s) down | normal, visual | + +## Completion + +| key | description | mode | +| -------------------------- | -------------------------------------- | ------ | +| `` | show completion menu | insert | +| `` `` | confirm | insert | +| `` | abort | insert | +| `` `` `` | select previous item | insert | +| `` `` `` | select next item | insert | +| `` | scroll docs up | insert | +| `` | scroll docs down | insert | +| `` `` | jump to next jumpable in a snippet | insert | +| `` | jump to previous jumpable in a snippet | insert | + +## Windows + +| key | description | mode | +| ----------- | ---------------------- | ------ | +| `` | go to left window | normal | +| `` | go to lower window | normal | +| `` | go to upper window | normal | +| `` | go to right window | normal | +| `` | decrease window height | normal | +| `` | increase window height | normal | +| `` | decrease window width | normal | +| `` | increase window width | normal | + +## Miscellaneous + +| key | description | mode | +| ------------ | ------------------------- | ------ | +| `Lc` | edit config.lua | normal | +| `h` | clear search highlighting | normal | +| `sh` | search through `:help` | normal | +| `sr` | open recent files | normal | +| `pS` | list of installed plugins | normal | + +## [nvimtree](https://github.com/nvim-tree/nvim-tree.lua) (side file explorer) + +`g?` show keybindings diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/plugins-overview.md b/i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/plugins-overview.md new file mode 100644 index 00000000..82f7a306 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/plugins-overview.md @@ -0,0 +1,55 @@ +--- +sidebar_position: 2 +--- + +# Plugins overview + +LunarVim supports a wide range of plugins to enhance the functionality of the Neovim text editor. This guide will introduce you to the basic core plugins that are part of LunarVim. + +## Core plugins + +LunarVim also includes a set of [core plugins](../../features/core-plugins-list) that are pre-configured and provided out of the box. These plugins offer essential features and functionality. + +These plugins are just a starting point, and there are many more available to explore. Remember to read the documentation and experiment with different plugins to find the ones that suit your workflow and preferences. + +## Core plugin details + +### Neovim LSP Configuration + +The `nvim-lspconfig` plugin provides easy configuration for the built-in Language Server Protocol (LSP) client in Neovim. It simplifies the setup process for various language servers, enabling features like code completion, linting, and more. + +### nvim-treesitter + +`nvim-treesitter` brings advanced syntax highlighting and parsing capabilities to Neovim. It improves code highlighting accuracy, enables better indentation, and allows for various language-specific features. + +### Telescope + +`Telescope` is a highly extensible fuzzy finder plugin. It provides a powerful interface for searching files, buffers, and other resources within your Neovim environment. With its intuitive navigation and customizable options, it simplifies the process of finding and opening files. + +### NvimTree + +`NvimTree`, a widely embraced Neovim plugin, enriches the coding experience by seamlessly integrating a file explorer sidebar within the interface. This feature optimizes workflow efficiency and seamless file management. NvimTree offers an array of customization options, ensuring alignment with users' preferences. Employing common shortcuts like `o` to open files and `d` to toggle folders, NvimTree significantly streamlines the programming journey. + +### Auto Pairs + +`Auto Pairs` automatically inserts matching pairs of brackets, quotes, and other characters as you type. It saves time and reduces the chances of mismatched pairs. This plugin greatly enhances the editing experience and helps prevent syntax errors. + +### Comment.nvim + +`Comment.nvim` simplifies the process of commenting and uncommenting code blocks. It supports various programming languages and provides keybindings for quickly toggling comments. This plugin makes it easy to annotate your code and improve readability. + +### Gitsigns + +If you're using Git for version control, `Gitsigns` is a valuable plugin. It displays Git diff markers and signs within the gutter, indicating added, modified, or deleted lines. This helps you visualize changes and track the status of your files directly in Neovim. + +### Lualine + +`Lualine` is a customizable statusline plugin for Neovim. It allows you to display various information, such as the current mode, file path, and Git branch, in your statusline. With its simple configuration, you can personalize the appearance and contents of your statusline. + +### Which-key + +`Which-key` provides a popup that shows keybindings and their associated commands. It helps you discover and remember available keybindings within Neovim. This plugin is particularly useful for beginners who want to explore and learn the various functionalities offered by Neovim and its plugins. + +## Installing and configuring plugins + +Plugins in LunarVim are managed using [folke/lazy.nvim](https://github.com/folke/lazy.nvim). To install plugins, you need to add entries to the `lvim.plugins` table in your `config.lua`. About configuring your plugins you can read a lot more at [this page](../../configuration/plugins). diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/terminology.md b/i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/terminology.md new file mode 100644 index 00000000..26ae553e --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/terminology.md @@ -0,0 +1,25 @@ +--- +sidebar_position: 1 +--- + +# Terminology + +## Language features + +### [LSP (Language Server Protocol)](https://microsoft.github.io/language-server-protocol/) + +- **LSP** - protocol for use between source code editors and LSP servers. The goal of the protocol is to allow + programming language support to be implemented and distributed independently of any given editor + or IDE. + +- **LSP server** - provides programming language-specific features like code completion, syntax + highlighting and marking of warnings and errors, as well as refactoring routines. + +### [DAP (Debug Adapter Protocol)](https://microsoft.github.io/debug-adapter-protocol/) + +Protocol used for debugging support + +### [Treesitter](https://tree-sitter.github.io/tree-sitter/) + +Tree-sitter can build a syntax tree for a source file and update the syntax tree as the source file +is edited. In neovim it's used for syntax highlighting and indentation. diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/community/README.md b/i18n/ua/docusaurus-plugin-content-docs/current/community/README.md new file mode 100644 index 00000000..0a3b3e1b --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/community/README.md @@ -0,0 +1,11 @@ +# Посилання + +- 🔌 Ставте питання та отримуйте підтримку в [Discord](https://discord.gg/Xb9B4Ny) +- 📹 Підпишіться на мене [YouTube](https://www.youtube.com/channel/UCS97tchJDq17Qms3cux8wcA) +- 📺 Долучіться до мене на [Odysee](https://odysee.com/@chrisatmachine:f) +- 🐦 Слідкуйте за мною у [X (колишній Twitter)](https://twitter.com/chrisatmachine) +- 🎙️ Ви також можете мене знайти на [Matrix](https://matrix.to/#/+atmachine:matrix.org) +- 💳 Підтримайте мене [Patreon](https://www.patreon.com/chrisatmachine) +- 🪙 Поставте DEV токен з LunarVim на [stakes.social](https://stakes.social/0xe014A52354136B678ff5030397224179bD0F9657) +- ❤️ Проспонсоруйте мене на [сторінці спонсорів у GitHub](https://github.com/sponsors/ChristianChiarulli) +- 🌑 Поділіться своїм LunarVim конфігом [тут](https://github.com/LunarVim/LunarVimCommunity) diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/community/_category_.json b/i18n/ua/docusaurus-plugin-content-docs/current/community/_category_.json new file mode 100644 index 00000000..275782d3 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/community/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Спільнота", + "position": 7 +} diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/community/meet-the-team.md b/i18n/ua/docusaurus-plugin-content-docs/current/community/meet-the-team.md new file mode 100644 index 00000000..f4db739a --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/community/meet-the-team.md @@ -0,0 +1,17 @@ +--- +sidebar_position: 1 +--- + +# Зустрічай нашу команду + +Christian Chiarulli + +[Abouzar Parvan](https://github.com/abzcoding/) + +[Nelson Jovel](https://github.com/rebuilt) + +[Sngmin Chae](https://github.com/chaeing) + +[Luc Sinet](https://github.com/Tastyep) + +(інші розробники зробіть, будь ласка, Pull Request та додайте сюди своє ім'я та будь-яке посилання, яке вважаєте за потрібне) diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/configuration/README.md b/i18n/ua/docusaurus-plugin-content-docs/current/configuration/README.md new file mode 100644 index 00000000..1340868c --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/configuration/README.md @@ -0,0 +1,30 @@ +# Configuration + +You can configure LunarVim by using the configuration file located in `~/.config/lvim/config.lua`. + +To get started quickly, copy the sample configuration file + +```bash +cp ~/.local/share/lunarvim/lvim/utils/installer/config.example.lua ~/.config/lvim/config.lua +``` + +Many LunarVim internal settings are exposed through the `lvim` global object. +To see a list of all available settings, run this command from either `~/.config/lvim/` or `~/.local/share/lunarvim/lvim` to generate an `lv-settings.lua` file. + +```bash +lvim --headless +'lua require("lvim.utils").generate_settings()' +qa && sort -o lv-settings.lua{,} +``` + +Here is a sample of the output. + +```lua +lvim.builtin.telescope.defaults.initial_mode = "insert" +lvim.builtin.telescope.defaults.layout_config.horizontal.mirror = false +lvim.builtin.telescope.defaults.layout_config.preview_cutoff = 120 +lvim.builtin.telescope.defaults.layout_config.prompt_position = "bottom" +lvim.builtin.telescope.defaults.layout_config.vertical.mirror = false +lvim.builtin.telescope.defaults.layout_config.width = 0.75 +lvim.builtin.telescope.defaults.layout_strategy = "horizontal" +``` + +If you want to keep launching LunarVim with the `nvim` command, add an alias entry to your shell's config file: `alias nvim=lvim`. To temporarily revert to the default nvim prefix it with a backslash `\nvim`. If you create this alias, you may also want to explicitly set your editor as well `export EDITOR='lvim'`. This will tell command line tools like git to use LunarVim as your editor. diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/configuration/_category_.json b/i18n/ua/docusaurus-plugin-content-docs/current/configuration/_category_.json new file mode 100644 index 00000000..0c949e0f --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/configuration/_category_.json @@ -0,0 +1,3 @@ +{ + "position": 3 +} diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/configuration/appearance/_category_.json b/i18n/ua/docusaurus-plugin-content-docs/current/configuration/appearance/_category_.json new file mode 100644 index 00000000..dd881223 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/configuration/appearance/_category_.json @@ -0,0 +1,4 @@ +{ + "position": 4, + "label": "Appearance" +} diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/configuration/appearance/colorschemes.md b/i18n/ua/docusaurus-plugin-content-docs/current/configuration/appearance/colorschemes.md new file mode 100644 index 00000000..8778f0c8 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/configuration/appearance/colorschemes.md @@ -0,0 +1,81 @@ +--- +sidebar_position: 1 +--- + +# Colorscheme + +## Switching colors + +To switch color schemes on the fly, use `sc` (`:Telescope colorscheme`) + +You can also press `sp` to cycle through colorschemes with a preview. + +To change the color scheme permanently, modify `config.lua` + +```lua +lvim.colorscheme = "desert" +``` + +## Installing colorschemes + +You can add any colorscheme you like. Just add a plugin with the colorscheme of your choice. For more information on installing plugins [look here.](../plugins/plugins.md) + +[This is a list](https://github.com/rockerBOO/awesome-neovim#colorscheme) of colorschemes with tree-sitter support + +## Customizing some colors + +You can customize the highlight groups by overriding them in an autocommand. +To find the group you want to change use `leader s H` (`:Telescope highlights`), +`:TSHighlightCapturesUnderCursor` or `:Inspect` + +```lua +lvim.autocommands = { + { + { "ColorScheme" }, + { + pattern = "*", + callback = function() + -- change `Normal` to the group you want to change + -- and `#ffffff` to the color you want + -- see `:h nvim_set_hl` for more options + vim.api.nvim_set_hl(0, "Normal", { bg = "#ffffff", underline = false, bold = true }) + end, + }, + }, +} +``` + +You can also override parameters in builtin colorscheme; e.g., to have winseparator colored in orange in tokyonight scheme: + +```lua +lvim.colorscheme = "tokyonight" +lvim.builtin.theme.name = "tokyonight" +lvim.builtin.theme.tokyonight.options.on_highlights = function(hl, c) + hl.WinSeparator = { + fg = c.orange, + bold = true, + } +end +``` + +## Transparent Windows + +If you're using transparent windows enable this setting + +```lua +lvim.transparent_window = true +``` + +That enables the following settings + +```lua +cmd "au ColorScheme * hi Normal ctermbg=none guibg=none" +cmd "au ColorScheme * hi SignColumn ctermbg=none guibg=none" +cmd "au ColorScheme * hi NormalNC ctermbg=none guibg=none" +cmd "au ColorScheme * hi MsgArea ctermbg=none guibg=none" +cmd "au ColorScheme * hi TelescopeBorder ctermbg=none guibg=none" +cmd "au ColorScheme * hi NvimTreeNormal ctermbg=none guibg=none" +cmd "let &fcs='eob: '" +``` + + diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/configuration/appearance/statusline.md b/i18n/ua/docusaurus-plugin-content-docs/current/configuration/appearance/statusline.md new file mode 100644 index 00000000..feeac963 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/configuration/appearance/statusline.md @@ -0,0 +1,148 @@ +--- +sidebar_position: 2 +--- + +# Statusline + +LunarVim uses `lualine` as a default statusline. + +Configuration is same as that of lualine with full support. See [Lualine README.md](https://github.com/nvim-lualine/lualine.nvim/blob/master/README.md) + +In addition, LunarVim provides predefined styles(layout) and components. + +## Style + +There are three style options LunarVim accepts, + +- lvim + > LunarVim's default layout +- default + > Lualine's default layout +- none + > Empty layout + +To set style other than `"lvim" style`, + +```lua +lvim.builtin.lualine.style = "default" -- or "none" +``` + +
+ +## Component + +You can use any component that `lualine` provides and `LunarVim` provides. + +**LunarVim's components** + +`mode`, `branch`, `filename`, `diff`, `python_env`, `diagnostics`, `treesitter`, `lsp`, `location`, `progress`, `spaces`, `encoding`, `filetype`, `scrollbar` + +To set `lualine's "diff"` component to section c of `"default" style`, + +```lua +lvim.builtin.lualine.style = "default" +lvim.builtin.lualine.sections.lualine_c = { "diff" } +``` + +To set `LunarVim's "spaces" and "location"` components to section y and `lualine's "mode"` component to section a of `"lvim" style`, + +```lua +-- no need to set style = "lvim" +local components = require("lvim.core.lualine.components") + +lvim.builtin.lualine.sections.lualine_a = { "mode" } +lvim.builtin.lualine.sections.lualine_y = { + components.spaces, + components.location +} +``` + +
+ +## Theme + +LunarVim automatically detects current colorscheme and set it as theme. + +To change your colorscheme, see [Colorscheme](./colorschemes.md) + +If there is no matching theme, it will fallback to `"auto"` theme provided by lualine. + +In case you want to use different theme, set it manually, + +```lua +lvim.builtin.lualine.options.theme = "gruvbox" +``` + +To customize existing theme, + +```lua +local custom_gruvbox = require "lualine.themes.gruvbox_dark" +custom_gruvbox.insert.b = { fg = custom_gruvbox.insert.a.bg, gui = "bold" } +custom_gruvbox.visual.b = { fg = custom_gruvbox.visual.a.bg, gui = "bold" } +custom_gruvbox.replace.b = { fg = custom_gruvbox.replace.a.bg, gui = "bold" } +custom_gruvbox.command.b = { fg = custom_gruvbox.command.a.bg, gui = "bold" } + +lvim.builtin.lualine.options.theme = custom_gruvbox +``` + +To create your own theme, + +```lua +local colors = { + color2 = "#0f1419", + color3 = "#ffee99", + color4 = "#e6e1cf", + color5 = "#14191f", + color13 = "#b8cc52", + color10 = "#36a3d9", + color8 = "#f07178", + color9 = "#3e4b59", +} + +lvim.builtin.lualine.options.theme = { + normal = { + c = { fg = colors.color9, bg = colors.color2 }, + a = { fg = colors.color2, bg = colors.color10, gui = "bold" }, + b = { fg = colors.color4, bg = colors.color5 }, + }, + insert = { + a = { fg = colors.color2, bg = colors.color13, gui = "bold" }, + b = { fg = colors.color4, bg = colors.color5 }, + }, + visual = { + a = { fg = colors.color2, bg = colors.color3, gui = "bold" }, + b = { fg = colors.color4, bg = colors.color5 }, + }, + replace = { + a = { fg = colors.color2, bg = colors.color8, gui = "bold" }, + b = { fg = colors.color4, bg = colors.color5 }, + }, + inactive = { + c = { fg = colors.color4, bg = colors.color2 }, + a = { fg = colors.color4, bg = colors.color5, gui = "bold" }, + b = { fg = colors.color4, bg = colors.color5 }, + }, +} +``` + +
+ +## Callback + +Callback function is available for more flexibility. + +It will run when configuration is done, + +```lua +lvim.builtin.lualine.on_config_done = function(lualine) + local config = lualine.get_config() + local components = require "core.lualine.components" + + config.sections.lualine_x[3].color.bg = "#2c2c2c" + table.remove(config.sections.lualine_x, 2) -- remove treesitter icon + table.insert(config.sections.lualine_x, components.location) + lualine.setup(config) +end +``` + +If you want to go way beyond with configuration, check [jimcornmell's setup](https://github.com/jimcornmell/lvim/blob/main/lua/user/lualine.lua) as a reference. diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/configuration/autocommands.md b/i18n/ua/docusaurus-plugin-content-docs/current/configuration/autocommands.md new file mode 100644 index 00000000..323d5272 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/configuration/autocommands.md @@ -0,0 +1,49 @@ +--- +sidebar_position: 6 +--- + +# Autocommands + +To set up autocommands use the native nvim api `vim.api.nvim_create_autocmd`, or use the helper Lunarvim table `lvim.autocommands` which will be passed to [define_autocmds()](https://github.com/LunarVim/lunarvim/blob/3475f7675d8928b49c85878dfc2912407de57342/lua/lvim/core/autocmds.lua#L177) automatically. + +```lua +lvim.autocommands = { + { + "BufEnter", -- see `:h autocmd-events` + { -- this table is passed verbatim as `opts` to `nvim_create_autocmd` + pattern = { "*.json", "*.jsonc" }, -- see `:h autocmd-events` + command = "setlocal wrap", + } + }, +} +``` + +This will run a command at a given event for the given filetype. + +An example using the nvim api could look like this: + +```lua +vim.api.nvim_create_autocmd("BufEnter", { + pattern = { "*.json", "*.jsonc" }, + -- enable wrap mode for json files only + command = "setlocal wrap", +}) +``` + +You can also add lua callbacks + +```lua +lvim.autocommands = { + { + "BufWinEnter", { + pattern = { "*.cpp", "*.hpp" }, + callback = function() + -- DYI editorconfig + if vim.loop.cwd() == "path/to/my/project" then + vim.cmd [[setlocal tabstop=8 shiftwidth=8]] + end + end + }, + } +} +``` diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/configuration/ftplugin.md b/i18n/ua/docusaurus-plugin-content-docs/current/configuration/ftplugin.md new file mode 100644 index 00000000..b4ff0cc7 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/configuration/ftplugin.md @@ -0,0 +1,19 @@ +--- +sidebar_position: 7 +--- + +# FTPlugin (filetype plugin) + +## Description + +From `:h ftplugin` + +> A filetype plugin is like a global plugin, except that it sets options and +> defines mappings for the current buffer only. + +Example for setting specific `shiftwidth` and `tabstop` that only apply for `C` file-types. + +```lua +-- create a file at $LUNARVIM_CONFIG_DIR/after/ftplugin/c.lua +vim.cmd("setlocal tabstop=4 shiftwidth=4") +``` diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/configuration/keybindings.md b/i18n/ua/docusaurus-plugin-content-docs/current/configuration/keybindings.md new file mode 100644 index 00000000..d89572a1 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/configuration/keybindings.md @@ -0,0 +1,171 @@ +--- +sidebar_position: 2 +--- + +# Keybindings + +See the [keybinds overview](../beginners-guide/keybinds-overview.md) for most commonly used keybinds. + +If you want to (re)map a keybinding that starts with ``, use [Whichkey Bindings](#whichkey-bindings). +If the bindings are LSP (intellisense) related, use [LSP Bindings](#lsp-bindings). +In all other cases, use [NeoVim mappings](#neovim-mappings) + +## Leader Key + +The default leader key is `Space`. This can be changed with the following + +```lua +lvim.leader = "space" +``` + +## Listing what is mapped + +Use `sk` to view different keybinding currently set. + +To see if a particular key has already been bound: + +```lua +:verbose map +``` + +- :nmap for normal mode mappings +- :vmap for visual mode mappings +- :imap for insert mode mappings + +Or just list every mapping + +```lua +:map +``` + +## NeoVim mappings + +### (Re)mapping keys + +To modify or add a keymapping: + +```lua + -- X closes a buffer + lvim.keys.normal_mode[""] = ":BufferKill" + + -- Centers cursor when moving 1/2 page down + lvim.keys.normal_mode[""] = "zz" +``` + +### Removing default mappings + +To remove keymappings set by LunarVim: + +```lua + lvim.keys.normal_mode[""] = false + lvim.keys.normal_mode[""] = false + lvim.keys.normal_mode[""] = false + lvim.keys.normal_mode[""] = false +``` + +## LSP Bindings + +To modify your LSP keybindings use `lvim.lsp.buffer_mappings.[normal|visual|insert]_mode`. + +### (Re)map a key + +Map your own functionality + +```lua +lvim.lsp.buffer_mappings.normal_mode['H'] = { vim.lsp.buf.hover, "Show documentation" } +``` + +Or map default functionality to a different key + +```lua +lvim.lsp.buffer_mappings.normal_mode['gk'] = lvim.lsp.buffer_mappings.normal_mode['K'] +``` + +### Remove a binding + +LSP bindings take precedence over regular keybindings. +So in order to use a key for a regular binding, we have to remove it first + +```lua +lvim.lsp.buffer_mappings.normal_mode['K'] = nil +lvim.keys.normal_mode['K'] = "echo Okay!" +``` + +## Whichkey Bindings + +To add or remap keybindings for whichkey use `lvim.builtin.which_key.mappings`. +The leader key is already included. + +### Single mapping + +Map a single key. + +```lua +lvim.builtin.which_key.mappings["P"] = { + "lua require'telescope'.extensions.project.project{}", "Projects" +} +``` + +As stated above, the leader key is included. So for the above example, the keybinding becomes `P` + +### Removing a single mapping + +Remove a single Whichkey keybind + +```lua +lvim.builtin.which_key.mappings['w'] = {} +``` + +Adding a key to an existing menu/submenu. + +```lua +lvim.builtin.which_key.mappings["tP"] = { + "lua require'telescope'.extensions.project.project{}", "Projects" +} +``` + +### Submenu mapping + +Map a group of keys. `Definitions` would be triggered by pressing `td`. The name for this menu would appear as `Trouble`. + +```lua +lvim.builtin.which_key.mappings["t"] = { + name = "Trouble", + r = { "Trouble lsp_references", "References" }, + f = { "Trouble lsp_definitions", "Definitions" }, + d = { "Trouble lsp_document_diagnostics", "Diagnostics" }, + q = { "Trouble quickfix", "QuickFix" }, + l = { "Trouble loclist", "LocationList" }, + w = { "Trouble lsp_workspace_diagnostics", "Diagnostics" }, +} +``` + +### Replace all whichkey mappings + +To clear all whichkey bindings and replace all mappings with your own, use this form. + +```lua +lvim.builtin.which_key.mappings = { + ["c"] = { "BufferClose!", "Close Buffer" }, + ["e"] = { "NvimTreeToggle", "Explorer" }, + ["h"] = { 'let @/=""', "No Highlight" }, + + p = { + name = "Plugins", + i = { "Lazy install", "Install" }, + s = { "Lazy sync", "Sync" }, + S = { "Lazy clear", "Status" }, + u = { "Lazy update", "Update" }, + }, +} +``` + + + +## [toggleterm](https://github.com/akinsho/toggleterm.nvim) (terminal) mappings + +To change the terminal mapping: + +```lua +lvim.builtin.terminal.open_mapping = "" +``` diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/configuration/language-features/_category_.json b/i18n/ua/docusaurus-plugin-content-docs/current/configuration/language-features/_category_.json new file mode 100644 index 00000000..03b11f77 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/configuration/language-features/_category_.json @@ -0,0 +1,3 @@ +{ + "position": 5 +} diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/configuration/language-features/custom-snippets.md b/i18n/ua/docusaurus-plugin-content-docs/current/configuration/language-features/custom-snippets.md new file mode 100644 index 00000000..0e094779 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/configuration/language-features/custom-snippets.md @@ -0,0 +1,72 @@ +--- +sidebar_position: 3 +--- + +# Custom snippets + +## Description + +You can add your own snippets to LunarVim. + +Custom snippets can be defined as json or lua. + +### json version + +First create a folder : `~/.config/lvim/snippets/` next to your `config.lua` + +Then in there you need at least 2 files. + +The first file describes where your snippets are : + +`package.json` : + +```json +{ + "name": "nvim-snippets", + "author": "authorname", + "engines": { + "vscode": "^1.11.0" + }, + "contributes": { + "snippets": [ + { + "language": "python", + "path": "./python.json" + } + ] + } +} +``` + +For each language, create a file like this : + +`python.json` : + +```json +{ + "hello": { + "prefix": "hello", + "body": ["print('Hello, World!')"], + "description": "print Hello, World!" + } +} +``` + +You should be able to expand `hello` into `print("Hello, World!")` + +### lua version + +First create a folder named `luasnippets` next to your `config.lua`. For example `~/.config/lvim/luasnippets/` + +Then, inside that folder, create a lua file named with the filetype you want to create snippets for. For example, for creating snippets for lua, create a (redundant, but correct) file named `lua.lua`. Then you put your files there like this: + +```lua +return { + s("foo", { t("Expands to bar") }), +} +``` + +LuaSnip is able to hot-reload snippets defined in lua when you save them, but you may need to restart LunarVim the first time you create the snippet files. +Please note that LuaSnip injects a bunch of utility globals when it loads your snippets (in this example the `s` and `t` functions), so you don't need to care about requiring or defining them. To get more detailed information and examples please read the [LuaSnip docs about this topic](https://github.com/L3MON4D3/LuaSnip/blob/master/DOC.md#lua) + +### TODO: snipmate version diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/configuration/language-features/language-features.md b/i18n/ua/docusaurus-plugin-content-docs/current/configuration/language-features/language-features.md new file mode 100644 index 00000000..27d2b4b4 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/configuration/language-features/language-features.md @@ -0,0 +1,33 @@ +# Language features + +LunarVim strives to have support for all major languages. This is made possible by utilizing some of the great plugins +in Neovim's ecosystem. Such plugins are [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) for LSP support, and +[Null-ls](https://github.com/jose-elias-alvarez/null-ls.nvim) to provide support for handling external formatters, such +as [prettier](https://github.com/prettier/prettier) and [eslint](https://github.com/eslint/eslint). Furthermore, +LunarVim integrates with [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) to provide rich syntax +highlighting and other language parsing magic. + +If your language is not supported please check the following links and file a ticket. + +- Check if LSP support is available in the lspconfig [repo](https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md) +- Check if your linter or formatter is available in the null-ls [repo](https://github.com/jose-elias-alvarez/null-ls.nvim/blob/main/doc/BUILTINS.md) +- Check if your syntax is supported in the treesitter [repo](https://github.com/nvim-treesitter/nvim-treesitter) + +## At a glance + +You can use the following commands to check some information about any language servers that you have configured. + +- `:LvimInfo` + + - Contains information about all the servers attached to the buffer you are editing and their current capabilities, such as formatting and go-to definition support. It also includes information related to any linters and formatters that are, or can be, configured. + - keybind: `Li` + +- `:LspInfo` + + - Contains basic information about all the servers that are running. + - keybind: `li` + +- `:Mason` + + - Contains information about all the servers that you can manage with [mason](https://github.com/williamboman/mason.nvim). + - keybind: `lI` diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/configuration/language-features/language-servers.md b/i18n/ua/docusaurus-plugin-content-docs/current/configuration/language-features/language-servers.md new file mode 100644 index 00000000..b4399cad --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/configuration/language-features/language-servers.md @@ -0,0 +1,132 @@ +--- +sidebar_position: 1 +--- + +# Language servers + +LunarVim uses [filetype plugins](/configuration/ftplugin.md) to enable lazy-loading the setup of a +language server. A template generator is used to create `ftplugin` files and populate them with the +setup call. + +`lvim.lsp.automatic_configuration.skipped_servers` contains a list of servers that will **not** be +automatically configured by default, for example only `tsserver` is allowed for JS-family languages, +and when a language has more than one server available, then the most popular one is usually chosen. + +:::info + +Any changes to `lvim.lsp.automatic_configuration.skipped_servers` **must** be followed by `:LvimCacheReset` to take effect. + +::: + +## Installing and updating a server + +### Automatic installation + +By default, most supported language servers will get automatically installed once you open the +supported file-type, e.g, opening a Python file for the first time will install `pyright` and +configure it automatically for you. + +### Manual installation + +```lua +lvim.lsp.automatic_servers_installation = false +``` + +Please refer to [mason](https://github.com/williamboman/mason.nvim) to see the updated full list of +currently available servers. + +To install a supported language server: + +```vim +:LspInstall `` +``` + +You can also open `:Mason` and interactively choose which servers to install (press `g?` for keybindings). + +### Updating a server + +Open `:Mason`, select a server and update it with `u`. +You can update all mason packages with ``. + +## Changing the default server + +To use a different server than the default one add the default server to the `skipped_servers` list +and remove the one you want to use. + +:::info + +Any changes to `lvim.lsp.automatic_configuration.skipped_servers` **must** be followed by `:LvimCacheReset` to take effect. + +::: + +Example: + +- Use `jedi_language_server` instead of `pyright` + + ```lua + -- add `pyright` to `skipped_servers` list + vim.list_extend(lvim.lsp.automatic_configuration.skipped_servers, { "pyright" }) + -- remove `jedi_language_server` from `skipped_servers` list + lvim.lsp.automatic_configuration.skipped_servers = vim.tbl_filter(function(server) + return server ~= "jedi_language_server" + end, lvim.lsp.automatic_configuration.skipped_servers) + ``` + +## Overriding settings + +### Using :LspSettings + +To set settings for your language server: + +```vim +:LspSettings +``` + +Example: + +1. `:LspSettings sumneko_lua` + +2. ```json + { + "Lua.hint.enable": false + } + ``` + +This will create a file in `/lsp-settings` to enable persistent changes. +Refer to the documentation of [nlsp-settings](https://github.com/tamago324/nlsp-settings.nvim/blob/main/schemas/README.md) +for a full updated list of supported language servers. + +:::tip + +Install `jsonls` LSP server for autocompletion. + +::: + +### By overriding the setup + +Add the server you wish to configure manually to `lvim.lsp.automatic_configuration.skipped_servers`. + +```lua +vim.list_extend(lvim.lsp.automatic_configuration.skipped_servers, { "sumneko_lua" }) +``` + +:::info + +Any changes to `lvim.lsp.automatic_configuration.skipped_servers` **must** be followed by `:LvimCacheReset` to take effect. + +::: + +Now you can set it up manually using the builtin [lsp manager](https://github.com/LunarVim/LunarVim/blob/master/lua/lvim/lsp/manager.lua) +in `$LUNARVIM_CONFIG_DIR/ftplugin/.lua` + +Example: + +```lua +-- $LUNARVIM_CONFIG_DIR/ftplugin/lua.lua +local opts = { + settings = { + Lua = { hint = { enable = false } }, + }, +} +require("lvim.lsp.manager").setup("sumneko_lua", opts) +``` diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/configuration/language-features/linting-and-formatting.md b/i18n/ua/docusaurus-plugin-content-docs/current/configuration/language-features/linting-and-formatting.md new file mode 100644 index 00000000..ef4338d6 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/configuration/language-features/linting-and-formatting.md @@ -0,0 +1,115 @@ +--- +sidebar_position: 2 +--- + +# Linting and formatting + +Setting a formatter will override the language server formatting capabilities. + +The easiest way is to reference the linter/formatter/code_actions by their names. See the [null-ls +docs](https://github.com/jose-elias-alvarez/null-ls.nvim/blob/main/doc/BUILTINS.md) for a full list +of builtins with their names. + +Example: + +```lua +local formatters = require "lvim.lsp.null-ls.formatters" +formatters.setup { + { name = "black" }, + { + name = "prettier", + ---@usage arguments to pass to the formatter + -- these cannot contain whitespace + -- options such as `--line-width 80` become either `{"--line-width", "80"}` or `{"--line-width=80"}` + args = { "--print-width", "100" }, + ---@usage only start in these filetypes, by default it will attach to all filetypes it supports + filetypes = { "typescript", "typescriptreact" }, + }, +} + +local linters = require "lvim.lsp.null-ls.linters" +linters.setup { + { name = "flake8" }, + { + name = "shellcheck", + args = { "--severity", "warning" }, + }, +} + +local code_actions = require "lvim.lsp.null-ls.code_actions" +code_actions.setup { + { + name = "proselint", + }, +} +``` + +## Installing linters/formatters + +You can use `:Mason` to install most of the supported linters and formatters, if you can't find what +you're looking for refer to the each tool's respective manual for installation steps + +## Lazy-loading the linter/formatter/code_actions setup + +By default, all null-ls providers are checked on startup. If you want to avoid that or want to only set up the provider when you opening the associated file-type, +then you can use [filetype plugins](configuration/ftplugin.md) for this purpose. + +Let's take `python` as an example: + +1. create a file called `python.lua` in the `$LUNARVIM_CONFIG_DIR/after/ftplugin` folder + +2. add the following snippet + ```lua + local linters = require "lvim.lsp.null-ls.linters" + linters.setup { { command = "flake8", filetypes = { "python" } } } + ``` + +## Formatting on save + +- To enable formatting on save: + + ```lua + lvim.format_on_save.enabled = true + ``` + +- Only enable it for certain filetypes + + ```lua + lvim.format_on_save.enabled = true + lvim.format_on_save.pattern = { "*.lua", "*.py" } + ``` + +## Registering custom linters/formatters + +LunarVim supports all linters and formatters defined as builtins to null-ls, however there may be occasions where you want to run a linter/formatter that null-ls does not support. + +Refer to various docs in the null-ls repo for details on [configuring built-in sources](https://github.com/jose-elias-alvarez/null-ls.nvim/blob/main/doc/BUILTIN_CONFIG.md) and [helpers for making builtins](https://github.com/jose-elias-alvarez/null-ls.nvim/blob/main/doc/HELPERS.md#make_builtin). + +:::tip +Do not load registered, custom linters/formatters in your [LunarVim config](https://www.lunarvim.org/docs/languages#lintingformatting) (i.e. in the `formatters.setup` block). Doing so will raise an error that a `builtin source could not be found`. +::: + +Below is an example registering the [htmlbeautifier](https://github.com/threedaymonk/htmlbeautifier) formatter: + +```lua +local helpers = require("null-ls.helpers") +local FORMATTING = require("null-ls.methods").internal.FORMATTING +require("null-ls").register({ + --your custom sources go here + helpers.make_builtin({ + name = "htmlbeautifier", + meta = { + url = "https://github.com/threedaymonk/htmlbeautifier", + description = "A normaliser/beautifier for HTML that also understands embedded Ruby. Ideal for tidying up Rails templates." + }, + method = FORMATTING, + filetypes = { "eruby" }, + generator_opts = { + command = "htmlbeautifier", + args = {}, -- put any required arguments in this table + to_stdin = true, -- instructs the command to ingest the file from STDIN (i.e. run the currently open buffer through the linter/formatter) + }, + factory = helpers.formatter_factory, + }) +}) +``` diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/configuration/options.md b/i18n/ua/docusaurus-plugin-content-docs/current/configuration/options.md new file mode 100644 index 00000000..b24d52dd --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/configuration/options.md @@ -0,0 +1,56 @@ +--- +sidebar_position: 1 +--- + +# Options + +[Options](#neovim-options) are used to configure the editor, +[variables](#neovim-variables) to configure vimscript plugins. + +## Neovim options + +See [`:help lua-guide-options`](https://neovim.io/doc/user/lua-guide.html#lua-guide-options) to learn more. + +- To set options: + + ```lua + vim.opt.{option} = {value} + ``` + +- To get options: + + ```lua + vim.opt.{option}:get() + ``` + +### Example options + +```lua +vim.opt.cmdheight = 2 -- more space in the neovim command line for displaying messages +vim.opt.guifont = "monospace:h17" -- the font used in graphical neovim applications +vim.opt.shiftwidth = 2 -- the number of spaces inserted for each indentation +vim.opt.tabstop = 2 -- insert 2 spaces for a tab +vim.opt.relativenumber = true -- relative line numbers +vim.opt.wrap = true -- wrap lines + +-- use treesitter folding +vim.opt.foldmethod = "expr" +vim.opt.foldexpr = "nvim_treesitter#foldexpr()" +``` + + + +## Neovim variables + +See [`:help lua-guide-variables`](https://neovim.io/doc/user/lua-guide.html#lua-guide-variables) to learn more. + +- To get and set variables use: + + ```lua + vim.g.{name} -- global variables (g:) + vim.b.{name} -- variables for the current buffer (b:) + vim.w.{name} -- variables for the current window (w:) + vim.t.{name} -- variables for the current tabpage (t:) + vim.v.{name} -- predefined Vim variables (v:) + vim.env.{name} -- environment variables defined in the editor session + ``` diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/configuration/plugins/_category_.json b/i18n/ua/docusaurus-plugin-content-docs/current/configuration/plugins/_category_.json new file mode 100644 index 00000000..0c949e0f --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/configuration/plugins/_category_.json @@ -0,0 +1,3 @@ +{ + "position": 3 +} diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/configuration/plugins/plugins.md b/i18n/ua/docusaurus-plugin-content-docs/current/configuration/plugins/plugins.md new file mode 100644 index 00000000..2348e7d9 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/configuration/plugins/plugins.md @@ -0,0 +1,98 @@ +# Plugins + +Plugins are managed by [folke/lazy.nvim](https://github.com/folke/lazy.nvim). + +:::tip + +use `:Lazy` to see a list of all installed plugins! + +::: + +# Installing plugins + +User plugins can be installed by adding entries to the `lvim.plugins` table in +your `config.lua` file, saving or manually invoking `LvimReload` will trigger +lazy to sync all the plugins in that table. + +Example: + +```lua +lvim.plugins = { + { "lunarvim/colorschemes" }, + { + "stevearc/dressing.nvim", + config = function() + require("dressing").setup({ + input = { enabled = false }, + }) + end, + }, + { + "nvim-neorg/neorg", + ft = "norg", -- lazy-load on filetype + config = true, -- run require("neorg").setup() + }, +} +``` + +:::tip + +You can find all available options [here](https://github.com/folke/lazy.nvim#-plugin-spec) +or in lunarvim: `:help lazy.nvim-plugin-spec` +You can find more examples [here](https://github.com/folke/lazy.nvim#examples) + +::: + +:::info + +Removing a plugin from the `lvim.plugins` table removes it from your configuration but not your system. To remove them completely, run `:Lazy clean` + +::: + +## Core plugins + +The configurations for core plugins are accessible through the `lvim.builtin` table. + +### Disabling core plugins + +Most should contain an `active` attribute that can be set to `false` to disable +the plugin + +```lua +lvim.builtin.alpha.active = false +lvim.builtin.dap.active = false +``` + +:::caution + +Disabling a plugin will not take effect until you restart lvim. + +::: + +### Configuring core plugins + +To configure a builtin plugin, edit options in `lvim.builtin.`. +You can press `` to get autocomplete suggestions to explore these settings. + +```lua +lvim.builtin.cmp.completion.keyword_length = 2 +lvim.builtin.telescope.defaults.layout_config.width = 0.95 +lvim.builtin.telescope.defaults.layout_config.preview_cutoff = 75 +``` + +:::tip + +A plugin's README (and `docs/` folder if it exists) typically contain excellent documentation, so it may be worthwhile to create an alias if you use them often. + +::: + +### Pinning + +Versions of core plugins are pinned for better stability, +you can disable pinning by setting an environment variable `$LVIM_DEV_MODE`, e.g. can be defined in `~/.local/bin/lvim` or in your shell's rc file: + +```bash +export LVIM_DEV_MODE=1 +# or +alias lvim="LVIM_DEV_MODE=1 lvim" +``` diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/dev/README.md b/i18n/ua/docusaurus-plugin-content-docs/current/dev/README.md new file mode 100644 index 00000000..e357d73a --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/dev/README.md @@ -0,0 +1,84 @@ +# Development of Lunarvim + +## Getting started + +We recommend setting up a symlink to your fork: + +```bash +cd ~/.local/share/lunarvim/ +ln -s ~/dev/Lunarvim ~/.local/share/lunarvim/lvim_dev +``` + +Your output should be something like: + +```bash +$ ls -a +lrwxrwxrwx 1 user user 37 sep 23 14:35 lvim_dev -> /home/user/dev/LunarVim +``` + +--- + +Now switch your lvim to the development setup: + +```bash +cd ~/.local/share/lunarvim/ +mv lvim lvim_back +mv lvim_dev lvim +``` + +--- + +Going back to lvim + +```bash +cd ~/.local/share/lunarvim/ +mv lvim lvim_dev +mv lvim_back lvim +``` + +To test that you can get some output from `lvim` add the following to your `init.lua` file in your fork. + +```lua +print ("it works") +``` + +```bash +lvim +``` + +Now type `:messages`. Happy contributing! + +## Lua + Neovim = :heart: + +To get started, [this guide](https://github.com/nanotee/nvim-lua-guide) covers many points that will get you going with Lua and how Neovim works. + +## Official Documentation + +The [reference manual](https://www.lua.org/manual/5.4/) is the official definition of the Lua language. + +If you don't know about it, [DevDocs](https://devdocs.io/lua~5.4/) combines multiple API documentations in a fast, organized, and searchable interface. + +## Neovim Documentation + +Neovim provides a [standard library](https://neovim.io/doc/user/lua.html) which you should know about. + +It provides many functions that you wish were implemented in Lua's stdlib, for instance `strings.split`. + +It also comes with a [LSP framework](https://neovim.io/doc/user/lsp.html) and [much more](https://neovim.io/doc/user/). + +## Style Guide + +LuaRock [style guide](https://github.com/luarocks/lua-style-guide) is a complete work that deserves a look if you want learn how to write consistent and robust code. + +It is based on many pre-existing guides, provides rationals for all their decisions, and worked successfully in a long-running project. + +## Code Quality + +To ensure code quality and a consistent style, our [CI](https://github.com/Lunarvim/LunarVim/actions) uses the following tools: + +- Lua: + - [Stylua](https://github.com/JohnnyMorganz/StyLua). An opinionated Lua code formatter. + - [Luacheck](https://github.com/mpeterv/luacheck). A tool for linting and static analysis of Lua code. +- Shell + - [Shfmt](https://github.com/mvdan/sh). A shell parser, formatter, and interpreter with bash support. + - [Shellcheck](https://github.com/koalaman/shellcheck). A static analysis tool for shell scripts. diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/dev/_category_.json b/i18n/ua/docusaurus-plugin-content-docs/current/dev/_category_.json new file mode 100644 index 00000000..27a8f3e7 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/dev/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "For Developers", + "position": 8 +} diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/dev/lunarvim_initialization.png b/i18n/ua/docusaurus-plugin-content-docs/current/dev/lunarvim_initialization.png new file mode 100644 index 0000000000000000000000000000000000000000..8e6dd357db88b31a6fb1e56124b0f3e249352050 GIT binary patch literal 311321 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 V8@hw16maCiB%;Fil=8P+B<9Q~%dUo(`b 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�)LS6@eS~iz*rk16B9zE4+q&lYnn;|Zag&=8I)q>c?a0TKY zqb9(?$M@4nlsRsG!Fa|}=++Fj^}E`pGj+0?NWvsHToB+!!pJHsUvDZRx8H>$ywJ7QAu;6Z5e4R$A!17*P?V-`n?Gvbd?~y^6nV=z1SK`{E72Y6SKi9KQj9 zCS0&evYvU;Vc9H z8%Zotfn;r+KB48gZQt(Yo%LrXM}&V8(iX?bv-;K1l9e@*6C5Y3DEDyL!pZN-%gEc; z%J%6eOOU|v=Xbp#ReheF8r&pVcz9Ca&wJ>k$pw9bXy!f~b=3QtgUid4C@5wDde39Z zpVQBvSI6E+pw!5#1|WO#Z-T8`SoQG6g3E>!66Y{U7YQVZ$y<-IvIffQWDgT+3p6#j zK|-XDfTzu|Z#z0V5?eKz-1_HD1L7k}a%ePh?XQC8_%u>S;f%!uCzWScN9OWTMI(Bn zAf0|XOr8-P%|b|QATYBUX{3=JKHUjGm_$rWj1c4kBqcg9tj zj5FgyW@ZBDlZ23#=XMSu4Z>=c1B?vTH7k?`ddUZ^M;djBZ1S|#W>ZtsYtI(u=Z|0? zply$)O6EPT1>H#mcJOcw*p$;D6JQWB+zq`H2{KgyyJ;N&OqU*Q-2=wgX@G(WNUlhL zB!Yicgx=BwT?{Gb$u>VMooPtvA~Jp=$!Wb_ES0$C)b{cv+6g4PxB*JLq|>L&%F2_j z^<@LFa_pVrfeV*3kfvRsq-8!2i%j{M!O8`?`UL+tDSy&8-dz|j}CT~Ltm!_(xysH+m6`rDc^g%J&W@5~o9v*E3- zjq!q(49M*&JweYLRd;1^Zidtd5~l`&6o{D@emq8}A`MIZ?<$xB1^w~z+%;z}pWSwZ zYTaV!r$qX41l7jB*|zc8a0ISTh$@9%J8uM&U022><+W=e)$~0K_$bm zf}Ho3_53I&Y6%sI*9yrvlP5vHOq?iT#y!cuo_EHH#d_$_mtT9thz2d&xBDr^DNvq= zx6?GDIlk6UTXaDBC5~@&w=dXm7DB%+T_T!ZZaji%=%4M^9v=-+{q|Vu^W{};V10$7hk1#a+(&8ftGyF3=EQ9bE zh27%T))!zg29U_yGB2-S!IEb8P1U2Lc507y1AT5hTkrzvWe}cZU#G=+IP@ee=f1RnbKM6=B z5NkTT)B525$d!)L+X109Gm?oOZ1dn%>|I`9sfIXD$%|yse5%I|g{PGZjlsgzCpkH1 z3gL4Q0D-pPZF*O8 zhYuYhr4MyK?IYs}I8+`hf>`M&4CoDRc133d9or}rV6RUR`N`nH4K_3&mn_~p_V(@3 zYe|bSW>!{xsP^l1{Em(%>Q1-$c+w{|QK-T<%TVejboa2$`=gz4TJKZAQ$zcW&~2zC z=()9m2anJkt-Tb$JHVa`7wanCz+jyE^#W1Bt&+!pb-9J!#Cf^$n3O!{gV}FxGBS5F zt18_W31)W|q#UDDwNU#1@~rYi$g&2=yQK{czIgq5e`G97lTu@1+(w!XvrKCAgZ+IJ zr)mA1g57@Fm9NL-RTq}McX<)<_f5^Y!#q48$O`yCM~*j{Q#5p<-Eau-i8vXhGAC)Wd<{h^x%8n?T$?;UlNl*vma;x|*M# zjn~!JGWUx|@jl{z_&Okt39m+r1cs-VVpPI5px{QfQAeKoIU*d+9-u%M#*c)s(9|agQC3?^58FC<6^cB4(WGGwj%FcyOlXydCw`lVHUxm-bx-)7?SiC zjc|Oxk(Le+mQiTgWqw?&I)2%|cX6cpDSwz~X|s*MyzzUPZEtk89Fl4LXtSsPCR>`W z51mk)+0~sYbh=60DqLzi&!y>T>T%O+H?FMoR;#DCI}BF4GjyVxyF^&HLyh=?<>!f& zsEMVh0iFaEJk2_~z9~R(%xM_S0B=7J82qN&PSK;Xch=qgj~3rP=ru2TN6|Agk6WB> zN>zh|MLd|Rg@@gH<7?U7?2e%Vq&)4MR@ti2s418y2`K^qDDwNl&r}`F^vvc;At?y8nT>(Cxu_iG^!zlIxEgJf7WZJVt z@1O77KCB#b={C^V;@`zCqRHo1kF$HY|CyXD_HUyKnwg*XQ`>v9UYx~XNe;Q*8`!8D zb*=`DGw>+b+1c?!-g=>M+vd%$&bX0*oFrH~(Mxsb__g?_%E7?KD#*%~M1_8PG1~*q z+I&PV>`bag{!uX6(*_}Rd4^_Sp5Oue1e*y#4?z?GwfiLWHPUkq5B~h}J|OylD8s?j zS_DM_VwC_odAg6EwIg~MNh49Wcq#4>0?!0Ltij3A^qSTUjcf~DSWSoB0)7siv;>}cMh)m?o zXID|Mh$3{&I^{b+U^ygH*a74@S-72V*_I2J28Gh5CjWsSZRozEAFs$#6D2N6Yyz<|f_xE@J%iCVKN>a& z0E9p1L8-V4)p}S|>^kxgsuC%q_AF2@Lau(gw*}^u(WCPQoCfV#BB&B|6Q=76T_

    0oJik%$9B2-m0F3uFTkD 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 literal 0 HcmV?d00001 diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/dev/under-the-hood.md b/i18n/ua/docusaurus-plugin-content-docs/current/dev/under-the-hood.md new file mode 100644 index 00000000..2e5a49f8 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/dev/under-the-hood.md @@ -0,0 +1,78 @@ +--- +sidebar_position: 2 +--- + +# Under the Hood + +# Logic from start to window load + +![LunarVim initialization flowchart](./lunarvim_initialization.png 'LunarVim initialization flowchart') + +The above chart was made with the following markdown using mermaid markdown +Last updated Wed Aug 4 10:04:27 PM CEST 2021 + +```mermaid +graph TD + rtp[Set runtime path] --> config_check[Ensure user config exists] + config_check -- lv-config.lua --> print_rename_message["Print a message asking user to rename file"] + config_check -- config.lua --> load_defaults[Load default_config] + print_rename_message --> load_defaults + load_defaults --> load_lvim[Load lvim globals: builtin, lsp, diagnostics, misc] + load_lvim --> load_lsp[Load lsp file] + load_lsp --> load_common_on_attach( Load common_on_attach for use in lang configuration ) + load_common_on_attach --> load_common_capabilities( Load common_capabilities for use in lang configuration) + load_common_capabilities --> load_common_on_init( Set common_on_init for use in lang configuration ) + load_common_on_init --> load_json[Load Json schemas] + load_json --> load_lang[Load lvim globals: lang] + load_lang --> load_keymappings[Load Keymappings data but don't set Keymappings] + load_keymappings --> load_builtin_configs[Load configuration for builtin plugins] + load_builtin_configs --> load_autocommands[Load autocommands but don't set them] + load_autocommands --> set_default_options( Set the default options for the neovim editor ) + set_default_options --> load_user_config[Load user configuration file] + load_user_config -- status ok --> set_nvim_settings[Set neovim settings] + load_user_config -- status fail --> print_user_config_error["Print something is wrong with your config"] + print_user_config_error --> set_nvim_settings + set_nvim_settings --> define_autogroups[Define autogroups] + define_autogroups --> setup_plugins[Setup Plugins] + setup_plugins --> plugin_callback_check["Is there a callback set for lvim.builtin.?"] + plugin_callback_check -- Yes --> plugin_callback["Call the callback for the plugin"] + plugin_callback_check -- No --> colorscheme[Set the colorscheme] + plugin_callback --> colorscheme + colorscheme --> autoformat[Is format on save enabled?] + autoformat -- yes --> autoformat_active[Set an autocommand to enable autoformatting] + autoformat -- no --> autoformat_disabled[Look for an autoformat autocommand and remove it if it exists] + autoformat_active --> core_commands[Load core.commands: QuickFixToggle] + autoformat_disabled --> core_commands + core_commands --> lsp_handlers["Set up lsp handlers: publishDiagnostics, hover, signatureHelp"] + lsp_handlers --> null-ls["Add null-ls as a language server in lspconfig"] + null-ls --> nlsp["Set up NlspSettings"] + nlsp --> set_keymappings["Apply default keymappings"] + set_keymappings --> override_keymaps["Append to default keymappings"] + override_keymaps --> setup_common_on_init["Setup common_on_init"] + setup_common_on_init --> common_on_init_callback_check["Does a common on init callback exist?"] + common_on_init_callback_check -- Yes --> common_on_init_callback["Call the callback"] + common_on_init_callback_check -- No --> check_for_formatters["Check if formatters are explicitly set"] + common_on_init_callback --> check_for_formatters + check_for_formatters -- Yes --> turn_off_lsp_formatting["Turn off resolved_capabilities.document_formatting"] + turn_off_lsp_formatting --> setup_common_on_attach["Setup common on attach"] + setup_common_on_attach -- Has an lsp.on_attach_callback --> call_lsp_on_attach_callback["Call lsp on_attach callback"] + check_for_formatters -- No --> setup_common_on_attach + setup_common_on_attach -- No callback defined --> smart_cwd_check["Is lvim.lsp.smart_cwd set to true?"] + smart_cwd_check -- True --> query_lsp_for_cwd["Use root directory from LSP"] + smart_cwd_check -- False --> setup_null_ls["Setup null-ls formatters and linters"] + setup_null_ls --> validate_provider_request["Does a valid provider exist?"] + query_lsp_for_cwd --> setup_null_ls + call_lsp_on_attach_callback --> smart_cwd_check + validate_provider_request -- nil or empty provider --> lsp_setup["Setup LSP"] + validate_provider_request -- Executable exists --> is_provider_eslint["Is provider eslint?"] + is_provider_eslint -- Yes --> replace_with_eslintd["Replace it with eslint_d"] + replace_with_eslintd --> add_provider_to_table["Add it to the provider to a table"] + is_provider_eslint -- No --> add_provider_to_table + validate_provider_request -- Executable does not exist --> print_provider_error["Print error about not being able to find formatting executable"] + add_provider_to_table --> lsp_setup + print_provider_error --> lsp_setup + lsp_setup --> lsp_override_check["Is there an lvim.lsp.automatic_configuration.skipped_servers set?"] + lsp_override_check -- Yes --> lsp_override["Use the override table"] + lsp_override_check -- No --> first_window_load["First window loads"] + lsp_override --> first_window_load +``` diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/faq.md b/i18n/ua/docusaurus-plugin-content-docs/current/faq.md new file mode 100644 index 00000000..1ebbc8b1 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/faq.md @@ -0,0 +1,38 @@ +--- +sidebar: auto +sidebar_position: 4 +--- + +# FAQ + +## How do I [..] ? + +### How do I use LunarVim in Neovide? + +Use this bash script to start neovide + +```bash +#!/usr/bin/env bash + +export LUNARVIM_RUNTIME_DIR="${LUNARVIM_RUNTIME_DIR:-"$HOME/.local/share/lunarvim"}" +export LUNARVIM_CONFIG_DIR="${LUNARVIM_CONFIG_DIR:-"$HOME/.config/lvim"}" +export LUNARVIM_CACHE_DIR="${LUNARVIM_CACHE_DIR:-"$HOME/.cache/lvim"}" +export LUNARVIM_BASE_DIR="${LUNARVIM_BASE_DIR:-"$HOME/.local/share/lunarvim/lvim"}" + +exec neovide -- -u "$LUNARVIM_BASE_DIR/init.lua" "$@" +``` + +## What is `null-ls` and why do you use it? + +For C/C++ we have the `clangd` by `llvm` which can also use its siblings' abilities `clang-tidy` and `clang-format` to support additional linting and formatting. But something like `pyright` doesn't support formatting, so we use `null-ls` to register `black` and `flake8` for example, as a "fake" language server. + +Since it's not using a separate binary it's called `null-ls` or _null language server_. + +## Where can I find some example configs? + +If you want ideas for configuring LunarVim you can look at these repositories. + +- starter.lvim [https://github.com/LunarVim/starter.lvim](https://github.com/LunarVim/starter.lvim) (a collection of language specific lunarvim configurations) +- Chris - [https://github.com/ChristianChiarulli/lvim](https://github.com/ChristianChiarulli/lvim) +- Abouzar - [https://github.com/abzcoding/lvim](https://github.com/abzcoding/lvim) +- Nelson - [https://github.com/rebuilt/lvim](https://github.com/rebuilt/lvim) diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/_category_.json b/i18n/ua/docusaurus-plugin-content-docs/current/features/_category_.json new file mode 100644 index 00000000..e1c1956e --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Features", + "position": 6 +} diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/core-plugins-list.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/core-plugins-list.md new file mode 100644 index 00000000..55b330e7 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/core-plugins-list.md @@ -0,0 +1,50 @@ +--- +sidebar_position: 1 +--- + +# Core Plugins List + +| name | description | optional? | +| ------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------- | --------- | +| folke/lazy.nvim | A modern plugin manager for Neovim | | +| neovim/nvim-lspconfig | Quickstart configurations for the Nvim LSP client | | +| tamago324/nlsp-settings.nvim | A plugin for setting Neovim LSP with JSON or YAML files | | +| jose-elias-alvarez/null-ls.nvim | Use Neovim as a language server to inject LSP diagnostics, code actions, and more via Lua. | | +| williamboman/mason-lspconfig.nvim | Extension to mason.nvim that makes it easier to use lspconfig with mason.nvim | | +| williamboman/mason.nvim | Easily install and manage LSP servers, DAP servers, linters, and formatters | | +| folke/tokyonight.nvim | A clean, dark Neovim theme | | +| lunarvim/lunar.nvim | LunarVim Colorscheme | | +| Tastyep/structlog.nvim | Structured Logging for nvim, using Lua | | +| nvim-lua/popup.nvim | [WIP] An implementation of the Popup API from vim in Neovim. Hope to upstream when complete | | +| nvim-lua/plenary.nvim | plenary: full; complete; entire; absolute; unqualified. All the lua functions I don't want to write twice. | | +| nvim-telescope/telescope.nvim | Find, Filter, Preview, Pick. All lua, all the time. | optional | +| nvim-telescope/telescope-fzf-native.nvim | FZF sorter for telescope written in c | | +| hrsh7th/nvim-cmp | A completion plugin for neovim coded in Lua. | | +| rafamadriz/friendly-snippets | Set of preconfigured snippets for different languages. | optional | +| L3MON4D3/LuaSnip | Snippet Engine for Neovim written in Lua. | | +| hrsh7th/cmp-nvim-lsp | nvim-cmp source for neovim builtin LSP client | | +| saadparwaiz1/cmp_luasnip | luasnip completion source for nvim-cmp | | +| hrsh7th/cmp-buffer | nvim-cmp source for buffer words | | +| hrsh7th/cmp-path | nvim-cmp source for paths | | +| folke/neodev.nvim | 💻 Dev setup for init.lua and plugin development with full signature help, docs and completion for the nvim lua API. | | +| windwp/nvim-autopairs | autopairs for neovim written by lua | optional | +| nvim-treesitter/nvim-treesitter | Nvim Treesitter configurations and abstraction layer | | +| JoosepAlviste/nvim-ts-context-commentstring | Neovim treesitter plugin for setting the commentstring based on the cursor location in a file. | | +| kyazdani42/nvim-tree.lua | A file explorer tree for neovim written in lua | optional | +| tamago324/lir.nvim | Neovim file explorer | optional | +| lewis6991/gitsigns.nvim | Git integration for buffers | optional | +| folke/which-key.nvim | Displays a popup with possible keybindings of the command you started typing. | optional | +| numToStr/Comment.nvim | Smart and powerful comment plugin for neovim. Supports treesitter, dot repeat, left-right/up-down motions, hooks, and more | optional | +| ahmedkhalf/project.nvim | The superior project management solution for neovim | optional | +| nvim-tree/nvim-web-devicons | lua `fork` of vim-web-devicons for neovim | optional | +| nvim-lualine/lualine.nvim | A blazing fast and easy to configure neovim statusline plugin written in pure lua | optional | +| SmiteshP/nvim-navic | winbar/statusline plugin that shows your current code context | optional | +| akinsho/bufferline.nvim | A snazzy bufferline for Neovim | optional | +| mfussenegger/nvim-dap | Debug Adapter Protocol client implementation for Neovim (>= 0.5) | optional | +| rcarriga/nvim-dap-ui | A UI for nvim-dap which provides a good out of the box configuration | optional | +| goolord/alpha-nvim | a lua powered greeter like vim-startify / dashboard-nvim | optional | +| akinsho/toggleterm.nvim | A neovim lua plugin to help easily manage multiple terminal windows | optional | +| b0o/schemastore.nvim | 🛍 JSON schemas for Neovim | | +| RRethy/vim-illuminate | highlight word under the cursor using either LSP, Tree-sitter, or regex matching | optional | +| lunarvim/onedarker.nvim | Onedark inspired colorscheme written in lua. | optional | +| lukas-reineke/indent-blankline.nvim | Indent guides for Neovim | optional | diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-frameworks/_category_.json b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-frameworks/_category_.json new file mode 100644 index 00000000..b4426253 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-frameworks/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Supported frameworks", + "position": 2 +} diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-frameworks/angular.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-frameworks/angular.md new file mode 100644 index 00000000..c3bd1912 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-frameworks/angular.md @@ -0,0 +1,36 @@ +# Angular + +## Better syntax highlighting + +You may want to add this plugin to your config. It provides treesitter integration with the Angular framework. + +```lua +{ "nvim-treesitter/nvim-treesitter-angular" } +``` + +## Install Language Server + +```vim +:LspInstall angularls +``` + +## Configure LunarVim + +The `angularls` server is overridden by default. So it needs to be +[manually configured](/configuration/language-features/language-servers.md#server-override). + +### Setup + +Add this to your `config.lua` file: + +```lua +require("lvim.lsp.manager").setup("angularls") +``` + +For more info about the LSP such as default values [checkout this](https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#angularls). + +:::note + +For Angular projects with version lesser than 9 (pre Ivy) you should provide the LSP with the `--viewEngine` flag. + +::: diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-frameworks/vue.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-frameworks/vue.md new file mode 100644 index 00000000..c48eab01 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-frameworks/vue.md @@ -0,0 +1,33 @@ +# Vue + +## Syntax highlighting + +```vim +:TSInstall vue +``` + +## Supported language servers + +```lua +{ "eslint", "stylelint_lsp", "tailwindcss", "volar", "vuels" } +``` + +Only `vuels` is enabled by default and the other servers need to be [manually configured](/configuration/language-features/language-servers.md#manually-configured-servers). + +## Supported formatters + +```lua +{ "eslint", "eslint_d", "prettier", "prettier_d_slim", "prettierd", "rustywind" } +``` + +## Supported linters + +```lua +{ "eslint", "eslint_d" } +``` + +## LSP Settings + +```lua +:LspSettings vuels +``` diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/_category_.json b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/_category_.json new file mode 100644 index 00000000..33004c19 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Supported languages", + "position": 3 +} diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/ansible.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/ansible.md new file mode 100644 index 00000000..6c5d9e51 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/ansible.md @@ -0,0 +1,16 @@ +# Ansible + +## Install Syntax Highlighting + +```vim +:TSInstall yaml +``` + +## Supported language servers + +- ansiblels + +## Supported linters + +- ansible-lint +- yamllint diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/c_cpp.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/c_cpp.md new file mode 100644 index 00000000..ed73080b --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/c_cpp.md @@ -0,0 +1,29 @@ +# C/C++ + +## Install Syntax Highlighting + +```vim +:TSInstall c +``` + +```vim +:TSInstall cpp +``` + +## Supported language servers + +- clangd +- ccls + +## Supported formatters + +- astyle +- clang_format +- uncrustify + +## Supported linters + +- clang_format +- cppcheck +- cpplint +- gccdiag diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/csharp.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/csharp.md new file mode 100644 index 00000000..87d110a3 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/csharp.md @@ -0,0 +1,25 @@ +# C# (csharp) + +## Install Syntax Highlighting + +```vim +:TSInstall c_sharp +``` + +## Supported language servers + +- charp_ls +- omnisharp +- omnisharp_mono + +### What is OmniSharp? + +Formatting is automatically enabled. The formatting options can be changed by with the [OmniSharp +configuration options](https://github.com/OmniSharp/omnisharp-roslyn/wiki/Configuration-Options). + +## Supported formatters + +- astyle +- clang_format +- csharpier +- uncrustify diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/go.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/go.md new file mode 100644 index 00000000..70c1b055 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/go.md @@ -0,0 +1,27 @@ +# Go + +## Install Syntax Highlighting + +```vim +:TSInstall go +``` + +## Supported language servers + +- golangci_lint_ls +- gopls + +## Supported formatters + +- gofmt +- gofumpt +- goimports +- goimports_reviser +- golines + +## Supported linters + +- golangci_lint +- revive +- semgrep +- staticcheck diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/hcl.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/hcl.md new file mode 100644 index 00000000..ee9660cc --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/hcl.md @@ -0,0 +1,16 @@ +# HCL + +## Syntax highlighting + +```vim +:TSInstall hcl +``` + +## Supported language servers + +- terraform_lsp +- tflint + +## Supported formatters + +- packer diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/java.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/java.md new file mode 100644 index 00000000..bfab48f0 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/java.md @@ -0,0 +1,147 @@ +# Java + +## Install Syntax Highlighting + +```vim +:TSInstall java +``` + +## Supported language servers + +- jdtls + +## Supported formatters + +- astyle +- clang_format +- google_java_format +- npm_groovy_lint +- uncrustify + +The Java language server (jdtls) also supports formatting, and it is enabled by default. It is possible to fine-tune its formatting rules, but it is also possible to use a different formatter from the above list. When such a formatter is used, jdtls formatting will be disabled to avoid conflict. + +### jdtls + +jdtls is installed automatically once you open a `.java` file. + +:::note + +jdtls requires **jdk-17 or newer** to run. + +::: + +Neovim (by default) passes basic options (such as `vim.opt.shiftwidth` and `vim.opt.tabstop`) to the language server when formatting. + +It is possible to further customize jdtls formatting by supplying an Eclipse formatter file. + +To do so, type `:LspSettings jdtls`. It will create a JSON file at `.config/lvim/lsp-settings/jdtls.json` and can be treated as global settings. + +Add the following content: + +```json +{ + "java.format.settings.profile": "GoogleStyle", + "java.format.settings.url": "https://raw.githubusercontent.com/google/styleguide/gh-pages/eclipse-java-google-style.xml" +} +``` + +To reference a local file in the url attribute, simply set its path: `"java.format.settings.url": ".config/lvim/custom-formatter.xml"` + +It is also possible to specify project-specific configs. To do so, type `:LspSettings local jdtls` which will create `.nlsp-settings/jdtls.json` in the current working directory, and paste the config that we used for the global settings. + +More information about Lsp commands can be found at https://github.com/tamago324/nlsp-settings.nvim + +### Custom formatters + +Custom formatters are CLI tools that are wrapped with null-ls plugin, which is available by default in LunarVim. They should be installed separately from LunarVim and be available on $PATH. + +#### clang-format + +clang-format is traditionally used for formatting C/C++ code but can also be used for Java code formatting. + +Prerequisites: +clang-format should be on the $PATH + +Enable formatter in `~/.config/lvim/config.lua`: + +```lua +local formatters = require "lvim.lsp.null-ls.formatters" +formatters.setup { + { + command = "clang-format", + filetypes = { "java" }, + } +} +``` + +With the above configuration, the default settings will be used. To see the defaults, type `clang-format --dump-config` in the terminal. + +clang-format supports multiple predefined styles. For the list of values see: https://clang.llvm.org/docs/ClangFormatStyleOptions.html#configurable-format-style-options + +To specify such style you need to set extra args in `config.lua`: + +```lua + { + command = "clang-format", + filetypes = { "java" }, + extra_args = { "--style", "Google" }, + } +``` + +It is also possible to use a format file. For that, you will need a valid clang-format file. You can create one from an existing style that can be used as a base: `clang-format --style=Google --dump-config > .clang-format` + +`config.lua`: + +```lua + { + command = "clang-format", + filetypes = { "java" }, + extra_args = { "--style", "file:" }, + } +``` + +#### google-java-format + +google-java-format is a program that reformats Java source code to comply with Google Java Style. + +Prerequisites: +google-java-format should be on the $PATH + +Enable formatter in `~/.config/lvim/config.lua`: + +```lua +formatters = require "lvim.lsp.null-ls.formatters" +formatters.setup { + { + command = "google-java-format", + filetypes = { "java" }, + } +} +``` + +#### uncrustify + +uncrustify works similarly to clang-format. + +Enable formatter in `~/.config/lvim/config.lua`: + +```lua +formatters = require "lvim.lsp.null-ls.formatters" +formatters.setup { + { + command = "uncrustify", + filetypes = { "java" }, + extra_args = { "-c", "path/to/your.cfg" }, + } +} +``` + +## Supported linters + +```lua +{ "checkstyle", "pmd", "semgrep" } +``` + +## Advanced configuration + +It is also possible to fully customize the language server. See https://github.com/LunarVim/starter.lvim to get ideas on how to proceed with that. diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/javascript.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/javascript.md new file mode 100644 index 00000000..bf78ab7b --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/javascript.md @@ -0,0 +1,50 @@ +# JavaScript + +## Syntax highlighting + +```vim +:TSInstall javascript +``` + +## Supported language servers + +- cssmodules_ls +- denols +- ember +- eslint +- glint +- quick_lint_js +- rome +- stylelint_lsp +- tailwindcss +- tsserver + +Only `tsserver` and `tailwindcss` is enabled by default and the other servers need to be [manually configured](/configuration/language-features/language-servers.md#manually-configured-servers). + +## Supported formatters + +- deno_fmt +- dprint +- eslint +- eslint_d +- prettier +- prettier_d_slim +- prettier_standard +- prettierd +- rome +- rustywind +- semistandardjs +- standardjs + +The configured formatter(s) must be installed separately. + +## Supported linters + +- eslint +- eslint_d +- jshint +- semistandardjs +- standardjs +- xo + +The configured linter(s) must be installed separately. diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/json.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/json.md new file mode 100644 index 00000000..e1913d15 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/json.md @@ -0,0 +1,29 @@ +# JSON + +## Install Syntax Highlighting + +```vim +:TSInstall json +``` + +## Supported language servers + +- jsonls +- rome + +## Supported formatters + +- deno_fmt +- dprint +- fixjson +- jq +- json_tool +- prettier +- prettier_d_slim +- prettierd + +## Supported linters + +- cfn_lint +- jsonlint +- spectral diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/julia.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/julia.md new file mode 100644 index 00000000..4ceaba92 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/julia.md @@ -0,0 +1,53 @@ +# Julia + +## Install Syntax Highlighting + +```vim +:TSInstall julia +``` + +## Install Language Server + +The Juila language server, LanguageServer.jl, needs to be manually installed. +To install LanguageServer.jl in the location where [nvim-lspconfig +expects](https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#julials) +run the following terminal command: + +```bash +julia --project=~/.julia/environments/nvim-lspconfig -e 'using Pkg; Pkg.add("LanguageServer")' +``` + +Create the file `~/.config/lvim/ftplugin/julia.lua` with the following line to +start the language server when opening Julia files. + +```lua +local opts = {} +-- re-use common lsp configurations (keybindings, buffer-highlight and cmp integration) +opts = require("lvim.lsp").get_common_opts() +require('lspconfig').julials.setup(opts) +``` + +## Supporting Plugins + +For Latex-to-Unicode substitutions, block-wise movements, and other niceties for +writing Julia, install the [julia-vim +](https://github.com/JuliaEditorSupport/julia-vim) plugin. + +## Pro Tip + +To leverage the +[edit](https://docs.julialang.org/en/v1/stdlib/InteractiveUtils/#InteractiveUtils.edit-Tuple{Any}) +functionality with LunarVim use the +[define_editor](https://docs.julialang.org/en/v1/stdlib/InteractiveUtils/#InteractiveUtils.define_editor) +method in `~/.julia/config/startup.jl` + +```julia +using InteractiveUtils + +ENV["JULIA_EDITOR"] = "lvim" + +InteractiveUtils.define_editor( + r"lvim", wait=true) do cmd, path, line + `$cmd +$line $path` +end +``` diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/lua.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/lua.md new file mode 100644 index 00000000..aefccc11 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/lua.md @@ -0,0 +1,21 @@ +# Lua + +## Install Syntax Highlighting + +```vim +:TSInstall lua +``` + +## Supported language servers + +- lua_ls + +## Supported formatters + +- lua_format +- stylua + +## Supported linters + +- luacheck +- selene diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/powershell.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/powershell.md new file mode 100644 index 00000000..126a53a4 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/powershell.md @@ -0,0 +1,33 @@ +# PowerShell + +## Install Syntax Highlighting + +Currently there is no maintained PowerShell parser available. If needed, configure a unmaintained parser by adding the following code to e.g. `config.lua` + +```lua +local parser_config = require("nvim-treesitter.parsers").get_parser_configs() +parser_config.powershell = { + install_info = { + url = "https://github.com/jrsconfitto/tree-sitter-powershell", + files = {"src/parser.c"} + }, + filetype = "ps1", + used_by = { "psm1", "psd1", "pssc", "psxml", "cdxml" } +} +``` + +Install the configured parser. + +```lua +:TSInstall powershell +``` + +## Supported language servers + +- powershell_es + +For more information about the language server configuration, refer to [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#powershell_es) + +## Formatters + +Formatting is supported by the PowerShell ES language server without additional configuration. diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/python.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/python.md new file mode 100644 index 00000000..ae94f9e4 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/python.md @@ -0,0 +1,36 @@ +# Python + +## Install Syntax Highlighting + +```vim +:TSInstall python +``` + +## Supported language servers + +- jedi_language_server +- pylsp +- pyright +- sourcery + +## Supported formatters + +- autopep8 +- black +- blue +- isort +- reorder_python_imports +- usort +- yapf + +## Supported linters + +- flake8 +- mypy +- pycodestyle +- pydocstyle +- pylama +- pylint +- pyproject_flake8 +- semgrep +- vulture diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/qml.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/qml.md new file mode 100644 index 00000000..229adfbb --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/qml.md @@ -0,0 +1,31 @@ +# QML + +## Install Syntax Highlighting + +There is no official Treesitter support for QML, so instead you could use [the +plugin](https://github.com/peterhoeg/vim-qml): + +```lua +{ + "peterhoeg/vim-qml", + event = "BufRead", + ft = { "qml" }, +}, +``` + +## Supported language servers + +Currently QML does not have an official LSP, but its development is currently +[in progress](https://bugreports.qt.io/browse/QTBUG-68406). + +## Supported formatters + +- qmlformat + +## Supported linters + +- qmllint + +## See also + +- [C/C++ Configuration](c_cpp.md) diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/ruby.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/ruby.md new file mode 100644 index 00000000..e1c5fc07 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/ruby.md @@ -0,0 +1,31 @@ +# Ruby + +### Install Syntax Highlighting + +```vim +:TSInstall ruby +``` + +## Supported language servers + +- ruby_ls +- solargraph +- sorbet + +### Solargraph + +Project root is recognized by having one of the following files/folders in the root directory of the project: `Gemfile`, `.git`. + +Note: `Solargraph` should automatically detect and use `rubocop` for formatting. + +## Supported formatters + +- rubocop +- rufo +- standardrb + +## Supported linters + +- rubocop +- semgrep +- standardrb diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/rust.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/rust.md new file mode 100644 index 00000000..ddcc1a39 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/rust.md @@ -0,0 +1,16 @@ +# Rust + +## Install Syntax Highlighting + +```vim +:TSInstall rust +``` + +## Supported language servers + +- rust_analyzer + +## Supported formatters + +- dprint +- rustfmt diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/scala.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/scala.md new file mode 100644 index 00000000..c620f5c8 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/scala.md @@ -0,0 +1,104 @@ +# Scala + +## Install Syntax Highlighting + +```vim +:TSInstall scala +``` + +The support for Scala 3 like syntax is limited. + +## Install Language Server + +To get scala LSP support working in Lunarvim, first you need to do the prerequisites listed [here](https://github.com/scalameta/nvim-metals#prerequisites) + +Then use coursier to install the metals language server so that it is available on your PATH: + +`coursier install metals` + +Also, you can install the scala formatter + +`coursier install scalafmt` + +## Configure Lunarvim + +Create a file called `~/.config/lvim/lua/user/metals.lua`: + +```lua +local M = {} + +M.config = function() + local lvim_lsp = require("lvim.lsp") + local metals_config = require("metals").bare_config() + metals_config.on_init = lvim_lsp.common_on_init + metals_config.on_exit = lvim_lsp.common_on_exit + metals_config.capabilities = lvim_lsp.common_capabilities() + metals_config.on_attach = function(client, bufnr) + lvim_lsp.common_on_attach(client, bufnr) + require("metals").setup_dap() + end + metals_config.settings = { + superMethodLensesEnabled = true, + showImplicitArguments = true, + showInferredType = true, + showImplicitConversionsAndClasses = true, + excludedPackages = {}, + } + metals_config.init_options.statusBarProvider = false + vim.api.nvim_create_autocmd("FileType", { + pattern = { "scala", "sbt", "java" }, + callback = function() require("metals").initialize_or_attach(metals_config) end, + group = vim.api.nvim_create_augroup("nvim-metals", { clear = true }), + }) +end + +return M +``` + +Add the following to your `config.lua` + +```lua +lvim.plugins = { + { + "scalameta/nvim-metals", + config = function() + require("user.metals").config() + end, + }, +} + +dap.configurations.scala = { + { + type = "scala", + request = "launch", + name = "Run or Test Target", + metals = { + runType = "runOrTestFile", + }, + }, + { + type = "scala", + request = "launch", + name = "Test Target", + metals = { + runType = "testTarget", + }, + }, +} +``` + +When you open the first scala file, you should run `:MetalsInstall` in order to complete the plugin installation. + +To debug scala program, make sure that dap is activated: + +``` +lvim.builtin.dap.active = true +``` + +Any Lunarvim builtin debug commands, which could be displayed by pressing ` d`, is supported. + +## Supported formatters + +In most cases, isn't necessary enable the [scalafmt](https://scalameta.org/scalafmt/) formatter, this is already integrated with metals to format on save creating a `.scalafmt.conf` file in your project root, see more [here](https://scalameta.org/scalafmt/docs/configuration.html) + +- scalafmt diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/swift.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/swift.md new file mode 100644 index 00000000..45fb100c --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/swift.md @@ -0,0 +1,40 @@ +# Swift + +## Install Syntax Highlighting + +```vim +:TSInstall swift +``` + +## Install Language Server + +```vim +:LspInstall sourcekit +``` + +## Configure Lunarvim + +The `sourcekit` language server is disabled (overridden) by default because of the conflict with `clangd` + +### Lsp Configuration + +Create a file called `~/.config/lvim/ftplugin/swift.lua`: + +```lua +local opts = {} +require("lvim.lsp.manager").setup("sourcekit", opts) +``` + +The default settings for the `sourcekit` lsp is: + +```lua +default_config = { + cmd = { "sourcekit-lsp" } + filetypes = { "swift", "c", "cpp", "objective-c", "objective-cpp" } + root_dir = root_pattern("Package.swift", ".git") +} +``` + +## Supported formatters + +- swiftformat diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/terraform.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/terraform.md new file mode 100644 index 00000000..742a2272 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/terraform.md @@ -0,0 +1,18 @@ +# Terraform + +## Syntax highlighting + +First, within LunarVim run the following: + +```vim +:TSInstall hcl +``` + +## Supported language servers + +- terraform +- terraformls + +## Supported formatters + +- terraform diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/typescript.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/typescript.md new file mode 100644 index 00000000..194b2966 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/typescript.md @@ -0,0 +1,53 @@ +# TypeScript + +## Syntax highlighting + +```vim +:TSInstall typescript +:TSInstall tsx +``` + +## Supported language servers + +- angularls +- cssmodules_ls +- denols +- ember +- eslint +- glint +- rome +- stylelint_lsp +- tailwindcss +- tsserver + +Only `tsserver` and `tailwindcss` is enabled by default and the other servers need to be [manually configured](/configuration/language-features/language-servers.md#manually-configured-servers). + +### TypeScript standalone server (tsserver) + +`tsserver` requires one of the following files/folders : `package.json`, [`tsconfig.json`](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html), [`jsconfig.json`](https://code.visualstudio.com/docs/languages/jsconfig) or `.git.` in the root directory of the project + +See [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#tsserver) for more information about the tsserver language server configuration options. + +## Supported formatters + +- deno_fmt +- dprint +- eslint +- eslint_d +- prettier +- prettier_d_slim +- prettierd +- rome +- rustywind + +The configured formatter(s) must be installed separately. + +## Supported linters + +- eslint +- eslint_d +- semgrep +- tsc +- xo + +The configured linter(s) must be installed separately. diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/installation/_category_.json b/i18n/ua/docusaurus-plugin-content-docs/current/installation/_category_.json new file mode 100644 index 00000000..eab47a2f --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/installation/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Installation", + "position": 1 +} diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/installation/installation.md b/i18n/ua/docusaurus-plugin-content-docs/current/installation/installation.md new file mode 100644 index 00000000..6dabebb5 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/installation/installation.md @@ -0,0 +1,125 @@ +--- +sidebar_position: 1 +--- + +# Installation + +## Prerequisites + +- Make sure you have installed the latest version of [`Neovim v0.9.0+`](https://github.com/neovim/neovim/releases/latest). +- Have [`git`](https://cli.github.com/), [`make`](https://www.gnu.org/software/make/), [`pip`](https://pypi.org/project/pip/), [`python`](https://www.python.org/), [`npm`](https://npmjs.com/), [`node`](https://nodejs.org/) and [`cargo`](https://www.rust-lang.org/tools/install) installed on your system. +- [Resolve `EACCES` permissions when installing packages globally](https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally) to avoid error when installing packages with npm. +- [`PowerShell 7+`](https://learn.microsoft.com/en-us/powershell/scripting/whats-new/migrating-from-windows-powershell-51-to-powershell-7?view=powershell-7.2) (for Windows). + +## Optional Feature Prerequisites + +- Install [`lazygit`](https://github.com/jesseduffield/lazygit#installation). This enables `gg` to launch `lazygit` for integrated and enhanced Git experience while in `lvim`. + +## Release + +(Neovim 0.9.0) + +No alarms and No surprises: + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + + + +```bash +LV_BRANCH='release-1.3/neovim-0.9' bash <(curl -s https://raw.githubusercontent.com/LunarVim/LunarVim/release-1.3/neovim-0.9/utils/installer/install.sh) +``` + + + + +```powershell +pwsh -c "`$LV_BRANCH='release-1.3/neovim-0.9'; iwr https://raw.githubusercontent.com/LunarVim/LunarVim/release-1.3/neovim-0.9/utils/installer/install.ps1 -UseBasicParsing | iex" +``` + + + + +_This is intended just to take a look at the base functionalities, so some interactions may be blocked by the environment._ + +```bash +docker run -w /tmp -it --rm alpine:edge sh -uelic 'addgroup -S lunaruser && adduser -S lunaruser -G lunaruser --shell /bin/sh && apk add yarn git python3 cargo neovim ripgrep alpine-sdk bash --update && LV_BRANCH='release-1.3/neovim-0.9' su -c "bash <(curl -s https://raw.githubusercontent.com/lunarvim/lunarvim/release-1.3/neovim-0.9/utils/installer/install.sh) --no-install-dependencies" lunaruser && su -c /home/lunaruser/.local/bin/lvim lunaruser' +``` + + + + +## Nightly + +(Neovim 0.10.0) + +All the new features with all the new bugs: + + + + +```bash +bash <(curl -s https://raw.githubusercontent.com/lunarvim/lunarvim/master/utils/installer/install.sh) +``` + + + + +```powershell +pwsh -c "iwr https://raw.githubusercontent.com/LunarVim/LunarVim/master/utils/installer/install.ps1 -UseBasicParsing | iex" +``` + + + + +_This is intended just to take a look at the base functionalities, so some interactions may be blocked by the environment._ + +```bash +docker run -w /root -it --rm alpine:edge sh -uelic 'apk add git neovim ripgrep alpine-sdk bash --update && bash <(curl -s https://raw.githubusercontent.com/lunarvim/lunarvim/master/utils/installer/install.sh) --no-install-dependencies && /root/.local/bin/lvim' +``` + + + + +Make sure to check the [troubleshooting](../troubleshooting/README.md) section if you encounter any problem. + + + +## Updating LunarVim + +- LunarVim updates to the current LunarVim branch's latest commit. +- `:LvimUpdate` command in command-line mode. +- `Lu` using WhichKey. +- From the command-line `lvim +LvimUpdate +q` + +### Update the plugins + +- Inside LunarVim `:LvimSyncCorePlugins` + +## Uninstall + +You can remove LunarVim (including the configuration files) using the bundled `uninstall` script + + + + +```bash +bash ~/.local/share/lunarvim/lvim/utils/installer/uninstall.sh +``` + +**or** + +```bash +bash <(curl -s https://raw.githubusercontent.com/lunarvim/lunarvim/master/utils/installer/uninstall.sh) +``` + + + + +```powershell +Invoke-WebRequest https://raw.githubusercontent.com/lunarvim/lunarvim/master/utils/installer/uninstall.ps1 -UseBasicParsing | Invoke-Expression +``` + + + diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/installation/post-install.md b/i18n/ua/docusaurus-plugin-content-docs/current/installation/post-install.md new file mode 100644 index 00000000..cfbb5aa1 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/installation/post-install.md @@ -0,0 +1,37 @@ +--- +sidebar_position: 2 +--- + +# Post install + +## Add `lvim` to `$PATH` + +If your terminal can't find the `lvim` command, [add the installation folder to your path](https://gist.github.com/nex3/c395b2f8fd4b02068be37c961301caa7) or move the lvim command to somewhere in your path. The default install folder is `~/.local/bin`. + +## Install a [Nerd Font](https://www.nerdfonts.com/) + +LunarVim uses icons from Nerd Fonts. If you don't want to use them set `lvim.use_icons` to false. + +### Easy Installer + +Visit [ronniedroid/getnf](https://github.com/ronniedroid/getnf) for an easy way to install nerd fonts. + +### Video Explanation + + + +### Manual Install + +1. Go to the [patched fonts directory](https://www.nerdfonts.com/font-downloads) +1. Copy the downloaded files to `~/.local/share/fonts` + +### Curl Download + +```bash +mkdir -p ~/.local/share/fonts +cd ~/.local/share/fonts && curl -fLO https://github.com/ryanoasis/nerd-fonts/raw/HEAD/patched-fonts/DroidSansMono/DroidSansMNerdFont-Regular.otf +``` + +### Terminal settings + +After installing your font, you will have to refresh your font cache by doing `fc-cache -f -v`. Then you will have to change your terminal settings to use the font you just installed. Please refer to your terminal's documentation for changing the terminal font. diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/troubleshooting/README.md b/i18n/ua/docusaurus-plugin-content-docs/current/troubleshooting/README.md new file mode 100644 index 00000000..a5efa19f --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/troubleshooting/README.md @@ -0,0 +1,148 @@ +# Installation + +## General + +1. Make sure to check that you have a recent Neovim version with `luajit` support. The output of version information `nvim -v` should include a line for: `LuaJIT`. +2. Make sure all the dependencies listed in [Manual Install](#manual-install) are actually installed on your system. + +## Unable to run `lvim` + +Make sure that `lvim` is available and executable on your path. You can check the results of these commands to verify that + +```shell +which lvim +stat "$(which lvim)" +cat "$(which lvim)" +``` + +If you get errors with any of the above commands, then you need to either fix that manually or reinstall the binary again. + +```shell +cd # this will be in `~/.local/share/lunarvim/lvim` by default +bash utils/installer/install_bin.sh +``` + +## Getting errors after an update + +### Cache issues + +This might be the result of old cache files that need to be reset. LunarVim makes use of [impatient's](https://github.com/lewis6991/impatient.nvim) to optimize the startup procedure and deliver a snappy experience. + +1. while running LunarVim: `:LvimCacheReset` +2. from the CLI: `lvim +LvimCacheReset` + +### Plugin issue + +This could be due to multiple reasons, but most commonly it's a breaking change in some plugin, +or `git` refusing to pull an update to a plugin because it +[can't safely fast-forward the current branch](https://blog.sffc.xyz/post/185195398930/why-you-should-use-git-pull-ff-only-git-is-a). + +The easiest way to solve this is to manually update (a rebase is likely required) the offending plugin, +which should be located in Lazy's package-root at `$LUNARVIM_RUNTIME_DIR/site/pack/lazy`. + +Let's say it's `nvim-cmp` for example + +```vim +:! git -C "$LUNARVIM_RUNTIME_DIR/site/pack/lazy/opt/nvim-cmp" status +``` + +now check which commit is currently checked out + +```vim +:! git -C "$LUNARVIM_RUNTIME_DIR/site/pack/lazy/opt/nvim-cmp" log -1 +``` + +it should match the one in `$LUNARVIM_RUNTIME_DIR/lvim/snapshots/default.json`, but you can always restore the snapshot with `:LvimSyncCorePlugins` + +```vim +:! git -C "$LUNARVIM_RUNTIME_DIR/site/pack/lazy/opt/nvim-cmp" pull --rebase +``` + +### Lazy.nvim failure + +if you have not done any changes to any of the plugins, then you can remove Lazy's package root completely. + +```shell +LUNARVIM_RUNTIME_DIR="${LUNARVIM_RUNTIME_DIR:-$HOME/.local/share/lunarvim}" +rm -rf "$LUNARVIM_RUNTIME_DIR/site/pack/lazy" +``` + +now open `lvim`, the plugins should start installing, otherwise run `:Lazy sync`. + +## LunarVim is slow! + +### are you using `fish`? + +> First of all, it is not recommended to set shell to fish in vim. Plenty of vim addons execute fish-incompatible shellscript, so setting it to `/bin/sh` is typically better, especially if you have no good reason to set it to fish. + +```lua +vim.opt.shell = "/bin/sh" +``` + +See [fish-shell/fish-shell#7004](https://github.com/fish-shell/fish-shell/issues/7004) and `:h 'shell'` for more info. + +## Language server XXX does not start for me! + +### Update node + +Some language servers depend on newer versions of node. Update your version of node to the latest. + +### is it overridden? + +This could be due to the fact that the server is [overridden](../configuration/language-features/language-servers.md#server-override) + +```lua +--- is it in this list? +:lua print(vim.inspect(lvim.lsp.automatic_configuration.skipped_servers)) +``` + +If that's the case, then you need to either remove it from that list and re-run `:LvimCacheReset` + +```lua +vim.tbl_map(function(server) + return server ~= "emmet_ls" +end, lvim.lsp.automatic_configuration.skipped_servers) +``` + +or set it up [manually](../configuration/language-features/language-servers.md#server-setup). + +### is it supported by [nvim-lsp-installer](https://github.com/williamboman/nvim-lsp-installer)? + +Any server that does not show up in `LspInstallInfo` needs to be installed manually. + +### is it at least showing up in `:LspInfo`? + +Check out the tips for [debugging nvim-lspconfig](https://github.com/neovim/nvim-lspconfig#debugging). + +## Too many language servers are starting at once! + +Are any of these servers [overridden](../configuration/language-features/language-servers.md#server-override) by default? + +```lua +:lua print(vim.inspect(require("lvim.lsp.config").override)) +``` + +If they are then you are using the syntax prior to [LunarVim#1813](https://github.com/LunarVim/LunarVim/pull/1813). + +```lua +-- this is the correct syntax since 3dd60bd +vim.list_extend(lvim.lsp.override, { "jsonls" }) +``` + +```lua +-- this the correct syntax since 198577a +vim.list_extend(lvim.lsp.automatic_configuration.skipped_servers, { "jsonls" }) +``` + +## My LunarVim looks ugly! + +- Make sure that you have a terminal that supports 24-bit colors. If not, you might face some issues regarding the default colorscheme, and other colorschemes. + + - For a explainer on what 24-bit colors are, and to test if your terminal supports it, we like this useful repository: https://github.com/termstandard/colors + +- Another issue might be `termguicolors`. If this is the case, we advice you to look at the official neovim docs: + + - What is `termguicolors`? see + +- Another case might be that your `$TERM` variable changes the colors in your terminal. + - For this, we advice you to look and see if anyone else has the same `$TERM` variable as you, and what they did https://github.com/neovim/neovim/issues?q=label%3Atui+color diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/troubleshooting/_category_.json b/i18n/ua/docusaurus-plugin-content-docs/current/troubleshooting/_category_.json new file mode 100644 index 00000000..402e45a6 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/current/troubleshooting/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Troubleshooting", + "position": 5 +} diff --git a/i18n/ua/docusaurus-plugin-content-docs/version-1.2.json b/i18n/ua/docusaurus-plugin-content-docs/version-1.2.json new file mode 100644 index 00000000..1488965e --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/version-1.2.json @@ -0,0 +1,30 @@ +{ + "version.label": { + "message": "1.2", + "description": "The label for version 1.2" + }, + "sidebar.tutorialSidebar.category.Configuration": { + "message": "Configuration", + "description": "The label for category Configuration in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Languages": { + "message": "Languages", + "description": "The label for category Languages in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Frameworks": { + "message": "Frameworks", + "description": "The label for category Frameworks in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Plugins": { + "message": "Plugins", + "description": "The label for category Plugins in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.For Developers": { + "message": "For Developers", + "description": "The label for category For Developers in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Community": { + "message": "Community", + "description": "The label for category Community in sidebar tutorialSidebar" + } +} diff --git a/i18n/ua/docusaurus-plugin-content-docs/version-1.3.json b/i18n/ua/docusaurus-plugin-content-docs/version-1.3.json new file mode 100644 index 00000000..c895da50 --- /dev/null +++ b/i18n/ua/docusaurus-plugin-content-docs/version-1.3.json @@ -0,0 +1,50 @@ +{ + "version.label": { + "message": "1.3", + "description": "The label for version 1.3" + }, + "sidebar.tutorialSidebar.category.Installation": { + "message": "Установлення", + "description": "The label for category Installation in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Beginner's guide": { + "message": "Посібник для новачків", + "description": "The label for category Beginner's guide in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Configuration": { + "message": "Налаштування", + "description": "The label for category Configuration in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Plugins": { + "message": "Плагіни", + "description": "The label for category Plugins in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Appearance": { + "message": "Зовнішній вигляд", + "description": "The label for category Appearance in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Language features": { + "message": "Можливості МП", + "description": "The label for category Language features in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Features": { + "message": "Можливості", + "description": "The label for category Features in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Supported frameworks": { + "message": "Підтримувані фреймворки", + "description": "The label for category Supported frameworks in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Supported languages": { + "message": "Підтримувані МП", + "description": "The label for category Supported languages in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Community": { + "message": "Спільнота", + "description": "The label for category Community in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.For Developers": { + "message": "Для розробників", + "description": "The label for category For Developers in sidebar tutorialSidebar" + } +} diff --git a/i18n/ua/docusaurus-theme-classic/navbar.json b/i18n/ua/docusaurus-theme-classic/navbar.json new file mode 100644 index 00000000..55b3f66f --- /dev/null +++ b/i18n/ua/docusaurus-theme-classic/navbar.json @@ -0,0 +1,18 @@ +{ + "title": { + "message": "LunarVim", + "description": "The title in the navbar" + }, + "item.label.Docs": { + "message": "Документація", + "description": "Navbar item with label Docs" + }, + "item.label.Blog": { + "message": "Блог", + "description": "Navbar item with label Blog" + }, + "item.label.Donate": { + "message": "Пожертвувати", + "description": "Navbar item with label Donate" + } +} From bc4ec45c147e43e9ffd4d55c9f9502ca109f61b6 Mon Sep 17 00:00:00 2001 From: Nalitnyk Date: Sun, 3 Dec 2023 02:39:22 +0200 Subject: [PATCH 3/8] installation is translated --- .../current/beginners-guide/terminology.md | 26 +++++---- .../current/installation/_category_.json | 2 +- .../current/installation/installation.md | 56 +++++++++---------- .../current/installation/post-install.md | 30 +++++----- 4 files changed, 58 insertions(+), 56 deletions(-) diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/terminology.md b/i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/terminology.md index 26ae553e..9786f49f 100644 --- a/i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/terminology.md +++ b/i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/terminology.md @@ -2,24 +2,26 @@ sidebar_position: 1 --- -# Terminology +# Термінологія -## Language features +## Мовні можливості -### [LSP (Language Server Protocol)](https://microsoft.github.io/language-server-protocol/) +### [LSP (Протокол мовного сервера)](https://microsoft.github.io/language-server-protocol/) -- **LSP** - protocol for use between source code editors and LSP servers. The goal of the protocol is to allow - programming language support to be implemented and distributed independently of any given editor - or IDE. - -- **LSP server** - provides programming language-specific features like code completion, syntax - highlighting and marking of warnings and errors, as well as refactoring routines. +- **LSP** - протокол для використання між редакторами вихідного коду та LSP-серверами. Мета протоколу полягає у тому, щоби дозволити + реалізувати та розповсюджувати підтримку мов програмування незалежно від конкретного редактора + або IDE. + +- **LSP server** - надає специфічні для мови програмування функції, такі як завершення коду, синтаксис + підсвічування та маркування попереджень і помилок, а також процедури рефакторингу. + ### [DAP (Debug Adapter Protocol)](https://microsoft.github.io/debug-adapter-protocol/) -Protocol used for debugging support +Протокол, що використовується для підтримки налагодження + ### [Treesitter](https://tree-sitter.github.io/tree-sitter/) -Tree-sitter can build a syntax tree for a source file and update the syntax tree as the source file -is edited. In neovim it's used for syntax highlighting and indentation. +Tree-sitter може створювати дерево синтаксису для вихідного файлу і оновлювати дерево синтаксису під час редагування вихідного файлу +під час редагування вихідного файлу. У NeoVim він використовується для підсвічування синтаксису та відступів. diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/installation/_category_.json b/i18n/ua/docusaurus-plugin-content-docs/current/installation/_category_.json index eab47a2f..d906def7 100644 --- a/i18n/ua/docusaurus-plugin-content-docs/current/installation/_category_.json +++ b/i18n/ua/docusaurus-plugin-content-docs/current/installation/_category_.json @@ -1,4 +1,4 @@ { - "label": "Installation", + "label": "Установлення", "position": 1 } diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/installation/installation.md b/i18n/ua/docusaurus-plugin-content-docs/current/installation/installation.md index 6dabebb5..6272ec93 100644 --- a/i18n/ua/docusaurus-plugin-content-docs/current/installation/installation.md +++ b/i18n/ua/docusaurus-plugin-content-docs/current/installation/installation.md @@ -2,24 +2,24 @@ sidebar_position: 1 --- -# Installation +# Установлення -## Prerequisites +## Передумови -- Make sure you have installed the latest version of [`Neovim v0.9.0+`](https://github.com/neovim/neovim/releases/latest). -- Have [`git`](https://cli.github.com/), [`make`](https://www.gnu.org/software/make/), [`pip`](https://pypi.org/project/pip/), [`python`](https://www.python.org/), [`npm`](https://npmjs.com/), [`node`](https://nodejs.org/) and [`cargo`](https://www.rust-lang.org/tools/install) installed on your system. -- [Resolve `EACCES` permissions when installing packages globally](https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally) to avoid error when installing packages with npm. -- [`PowerShell 7+`](https://learn.microsoft.com/en-us/powershell/scripting/whats-new/migrating-from-windows-powershell-51-to-powershell-7?view=powershell-7.2) (for Windows). +- Упевніться, що ви встановили останюю версію [`Neovim v0.9.0+`](https://github.com/neovim/neovim/releases/latest). +- [`git`](https://cli.github.com/), [`make`](https://www.gnu.org/software/make/), [`pip`](https://pypi.org/project/pip/), [`python`](https://www.python.org/), [`npm`](https://npmjs.com/), [`node`](https://nodejs.org/) та [`cargo`](https://www.rust-lang.org/tools/install) мають бути встановлені на вашій системі. +- [Вирішення проблеми з дозволами `EACCES` під час глобального встановлення пакунків](https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally) щоб уникнути помилок під час встановлення пакетів за допомогою npm. +- [`PowerShell 7+`](https://learn.microsoft.com/en-us/powershell/scripting/whats-new/migrating-from-windows-powershell-51-to-powershell-7?view=powershell-7.2) (для Windows). -## Optional Feature Prerequisites +## Передумови для додаткових функцій +- Установіть [`lazygit`](https://github.com/jesseduffield/lazygit#installation). Це дозволяє `gg` запускати `lazygit` для інтегрованого та розширеного використання Git'а, перебуваючи у `lvim`. -- Install [`lazygit`](https://github.com/jesseduffield/lazygit#installation). This enables `gg` to launch `lazygit` for integrated and enhanced Git experience while in `lvim`. -## Release +## Release (стабільна збірка) (Neovim 0.9.0) -No alarms and No surprises: +Без тривог і сюрпризів: import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -39,9 +39,9 @@ pwsh -c "`$LV_BRANCH='release-1.3/neovim-0.9'; iwr https://raw.githubusercontent ``` - + -_This is intended just to take a look at the base functionalities, so some interactions may be blocked by the environment._ +_Це призначено лише для ознайомлення з базовим функціоналом, тому деякі операції можуть бути заблоковані середовищем._ ```bash docker run -w /tmp -it --rm alpine:edge sh -uelic 'addgroup -S lunaruser && adduser -S lunaruser -G lunaruser --shell /bin/sh && apk add yarn git python3 cargo neovim ripgrep alpine-sdk bash --update && LV_BRANCH='release-1.3/neovim-0.9' su -c "bash <(curl -s https://raw.githubusercontent.com/lunarvim/lunarvim/release-1.3/neovim-0.9/utils/installer/install.sh) --no-install-dependencies" lunaruser && su -c /home/lunaruser/.local/bin/lvim lunaruser' @@ -50,11 +50,11 @@ docker run -w /tmp -it --rm alpine:edge sh -uelic 'addgroup -S lunaruser && addu -## Nightly +## Nightly (нічна збірка) (Neovim 0.10.0) -All the new features with all the new bugs: +Усі нові можливості зі всіма новими помилками: @@ -71,9 +71,9 @@ pwsh -c "iwr https://raw.githubusercontent.com/LunarVim/LunarVim/master/utils/in ``` - + -_This is intended just to take a look at the base functionalities, so some interactions may be blocked by the environment._ +_Це призначено лише для ознайомлення з базовим функціоналом, тому деякі операції можуть бути заблоковані середовищем._ ```bash docker run -w /root -it --rm alpine:edge sh -uelic 'apk add git neovim ripgrep alpine-sdk bash --update && bash <(curl -s https://raw.githubusercontent.com/lunarvim/lunarvim/master/utils/installer/install.sh) --no-install-dependencies && /root/.local/bin/lvim' @@ -82,24 +82,24 @@ docker run -w /root -it --rm alpine:edge sh -uelic 'apk add git neovim ripgrep a -Make sure to check the [troubleshooting](../troubleshooting/README.md) section if you encounter any problem. +Не забудьте перевірити секцію з [вирішення проблем](../troubleshooting/README.md), якщо ви зішхтовнетеся з проблемою. - + -## Updating LunarVim +## Оновлення LunarVim -- LunarVim updates to the current LunarVim branch's latest commit. -- `:LvimUpdate` command in command-line mode. -- `Lu` using WhichKey. -- From the command-line `lvim +LvimUpdate +q` +- LunarVim оновлюється до поточного останнього коміта гілки LunarVim. +- `:LvimUpdate` команда в режимі командного рядка. +- `Lu` використовуючи WhichKey. +- З командного рядка `lvim +LvimUpdate +q` -### Update the plugins +### Оновлення плагінів -- Inside LunarVim `:LvimSyncCorePlugins` +- Усередині LunarVim `:LvimSyncCorePlugins` -## Uninstall +## Видалення -You can remove LunarVim (including the configuration files) using the bundled `uninstall` script +Ви можете видалити LunarVim (включаючи файли налаштувань) використовуючи вбудований `uninstall` скрипт @@ -108,7 +108,7 @@ You can remove LunarVim (including the configuration files) using the bundled `u bash ~/.local/share/lunarvim/lvim/utils/installer/uninstall.sh ``` -**or** +**або** ```bash bash <(curl -s https://raw.githubusercontent.com/lunarvim/lunarvim/master/utils/installer/uninstall.sh) diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/installation/post-install.md b/i18n/ua/docusaurus-plugin-content-docs/current/installation/post-install.md index cfbb5aa1..dc806423 100644 --- a/i18n/ua/docusaurus-plugin-content-docs/current/installation/post-install.md +++ b/i18n/ua/docusaurus-plugin-content-docs/current/installation/post-install.md @@ -2,36 +2,36 @@ sidebar_position: 2 --- -# Post install +# Після встановлення -## Add `lvim` to `$PATH` +## Додайте `lvim` до `$PATH` -If your terminal can't find the `lvim` command, [add the installation folder to your path](https://gist.github.com/nex3/c395b2f8fd4b02068be37c961301caa7) or move the lvim command to somewhere in your path. The default install folder is `~/.local/bin`. +Якщо ваш термінал не може знайти команду `lvim`, [додайте папку встановлення до вашого шляху](https://gist.github.com/nex3/c395b2f8fd4b02068be37c961301caa7) або перемістіть команду lvim кудись в наявних шлях з PATH. Типова папка для встановлення: `~/.local/bin`. -## Install a [Nerd Font](https://www.nerdfonts.com/) +## Установіть [Nerd Font](https://www.nerdfonts.com/) -LunarVim uses icons from Nerd Fonts. If you don't want to use them set `lvim.use_icons` to false. +LunarVim використовує іконки з Nerd Fonts. Якщо ви не хочете їх використовувати, тоді встановіть параметр `lvim.use_icons` на false. -### Easy Installer +### Простий встановлювач -Visit [ronniedroid/getnf](https://github.com/ronniedroid/getnf) for an easy way to install nerd fonts. +Відвідайтe [ronniedroid/getnf](https://github.com/ronniedroid/getnf) для легшого шляху встановлення Nerd Fonts. -### Video Explanation +### Відео-пояснення - + -### Manual Install +### Ручне встановлення -1. Go to the [patched fonts directory](https://www.nerdfonts.com/font-downloads) -1. Copy the downloaded files to `~/.local/share/fonts` +1. Перейдіть до [каталогу оновлених шрифтів](https://www.nerdfonts.com/font-downloads) +2. Скопіююйте завантажені файли до `~/.local/share/fonts` -### Curl Download +### Завантаження через curl ```bash mkdir -p ~/.local/share/fonts cd ~/.local/share/fonts && curl -fLO https://github.com/ryanoasis/nerd-fonts/raw/HEAD/patched-fonts/DroidSansMono/DroidSansMNerdFont-Regular.otf ``` -### Terminal settings +### Налаштування в терміналі -After installing your font, you will have to refresh your font cache by doing `fc-cache -f -v`. Then you will have to change your terminal settings to use the font you just installed. Please refer to your terminal's documentation for changing the terminal font. +Після встановлення шрифту вам потрібно буде оновити кеш шрифтів командою `fc-cache -f -v`. Після цього вам потрібно буде змінити налаштування вашого терміналу для використання шрифту, який ви щойно встановили. Будь ласка, зверніться до документації вашого терміналу для зміни шрифту терміналу. From 68693e7a94f1675fda60c90d750bc19a5c8a875c Mon Sep 17 00:00:00 2001 From: Nalitnyk Date: Tue, 5 Dec 2023 01:37:19 +0200 Subject: [PATCH 4/8] docs: partially translated supported languages and keybinds --- .idea/.gitignore | 5 ++ .idea/lunarvim.org.iml | 12 +++ .idea/modules.xml | 8 ++ .idea/vcs.xml | 6 ++ .../current.json | 24 ++--- .../beginners-guide/keybinds-overview.md | 86 +++++++++--------- .../current/features/_category_.json | 2 +- .../current/features/core-plugins-list.md | 90 +++++++++---------- .../supported-frameworks/_category_.json | 2 +- .../features/supported-frameworks/angular.md | 21 +++-- .../features/supported-frameworks/vue.md | 13 ++- .../supported-languages/_category_.json | 2 +- .../features/supported-languages/ansible.md | 6 +- .../features/supported-languages/c_cpp.md | 8 +- .../features/supported-languages/csharp.md | 10 +-- .../features/supported-languages/go.md | 8 +- .../features/supported-languages/hcl.md | 6 +- .../features/supported-languages/java.md | 64 ++++++------- .../supported-languages/javascript.md | 8 +- .../features/supported-languages/json.md | 8 +- .../features/supported-languages/julia.md | 2 +- .../features/supported-languages/lua.md | 8 +- .../supported-languages/powershell.md | 4 +- .../features/supported-languages/python.md | 8 +- .../features/supported-languages/qml.md | 8 +- .../features/supported-languages/ruby.md | 8 +- .../features/supported-languages/rust.md | 6 +- .../features/supported-languages/scala.md | 4 +- .../features/supported-languages/swift.md | 4 +- .../features/supported-languages/terraform.md | 6 +- .../supported-languages/typescript.md | 8 +- 31 files changed, 245 insertions(+), 210 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/lunarvim.org.iml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 00000000..b58b603f --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,5 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/lunarvim.org.iml b/.idea/lunarvim.org.iml new file mode 100644 index 00000000..24643cc3 --- /dev/null +++ b/.idea/lunarvim.org.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 00000000..e9990c93 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 00000000..35eb1ddf --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/i18n/ua/docusaurus-plugin-content-docs/current.json b/i18n/ua/docusaurus-plugin-content-docs/current.json index 031d9971..f0099b0a 100644 --- a/i18n/ua/docusaurus-plugin-content-docs/current.json +++ b/i18n/ua/docusaurus-plugin-content-docs/current.json @@ -4,43 +4,47 @@ "description": "The label for version current" }, "sidebar.tutorialSidebar.category.Installation": { - "message": "Installation", + "message": "Установлення", "description": "The label for category Installation in sidebar tutorialSidebar" }, "sidebar.tutorialSidebar.category.Beginner's guide": { - "message": "Beginner's guide", + "message": "Посібник для новачків", "description": "The label for category Beginner's guide in sidebar tutorialSidebar" }, "sidebar.tutorialSidebar.category.Configuration": { - "message": "Configuration", + "message": "Налаштування", "description": "The label for category Configuration in sidebar tutorialSidebar" }, + "sidebar.tutorialSidebar.category.Plugins": { + "message": "Плагіни", + "description": "The label for category Plugins in sidebar tutorialSidebar" + }, "sidebar.tutorialSidebar.category.Appearance": { - "message": "Appearance", + "message": "Зовнішній вигляд", "description": "The label for category Appearance in sidebar tutorialSidebar" }, "sidebar.tutorialSidebar.category.Language features": { - "message": "Language features", + "message": "Можливості мови", "description": "The label for category Language features in sidebar tutorialSidebar" }, "sidebar.tutorialSidebar.category.Features": { - "message": "Features", + "message": "Можливості", "description": "The label for category Features in sidebar tutorialSidebar" }, "sidebar.tutorialSidebar.category.Supported frameworks": { - "message": "Supported frameworks", + "message": "Підтримувані фреймворки", "description": "The label for category Supported frameworks in sidebar tutorialSidebar" }, "sidebar.tutorialSidebar.category.Supported languages": { - "message": "Supported languages", + "message": "Підтримувані мови", "description": "The label for category Supported languages in sidebar tutorialSidebar" }, "sidebar.tutorialSidebar.category.Community": { - "message": "Community", + "message": "Спільнота", "description": "The label for category Community in sidebar tutorialSidebar" }, "sidebar.tutorialSidebar.category.For Developers": { - "message": "For Developers", + "message": "Для розробників", "description": "The label for category For Developers in sidebar tutorialSidebar" } } diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/keybinds-overview.md b/i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/keybinds-overview.md index bdd4da27..d165b279 100644 --- a/i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/keybinds-overview.md +++ b/i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/keybinds-overview.md @@ -11,30 +11,30 @@ or `` to show whichkey (keybinds popup) Also see: [vim mappings](https://devhints.io/vim) -**TIP:** `` is space by default, read [`:help keycodes`](https://neovim.io/doc/user/intro.html#keycodes) for more key names +**Підказка:** `` is space by default, read [`:help keycodes`](https://neovim.io/doc/user/intro.html#keycodes) for more key names -**TIP:** `` is `alt` on Windows/Linux and `option` on macOS +**Підказка:** `` is `alt` on Windows/Linux and `option` on macOS -**TIP:** For macOS users: For the `option` key (`⌥`) to work as `` you may need to adjust some settings: +**Підказка:** For macOS users: For the `option` key (`⌥`) to work as `` you may need to adjust some settings: - For iTerm2: Select `Esc+` as the Option key setting in [ Preferences - Profiles - Keys ](https://github.com/LunarVim/lunarvim.org/pull/377#discussion_r1140747022) - For Alacritty: Make sure you're on Alacritty version >= 0.12.0. In your `alacritty.yml` config file, set `window.option_as_alt` to `Both` or `OnlyLeft` \ `OnlyRight` per your preference (https://github.com/alacritty/alacritty/issues/62). -**TIP:** Non-leader keybindings (for e.g. ``, mentioned below and others) can be viewed +**Підказка:** Non-leader keybindings (for e.g. ``, mentioned below and others) can be viewed by pressing `` in the which-key main menu (first popup after pressing ``) -## Plugins +## Плагіни -| key | description | mode | +| клавіші | опис | режим | | ----------------------------- | ----------------------------------------------------------------------------------------------- | ------ | -| `` | [whichkey](https://github.com/folke/which-key.nvim) (keybinds popup (shows up after 1s)) | normal | -| `e` | [nvimtree](https://github.com/nvim-tree/nvim-tree.lua) (side file explorer) | normal | -| `f` `s`(menu) | [telescope](https://github.com/nvim-telescope/telescope.nvim) (find files, grep text, and more) | normal | -| `;` | [alpha](https://github.com/goolord/alpha-nvim) (dashboard) | normal | -| `` `` | [toggleterm](https://github.com/akinsho/toggleterm.nvim) (terminal) | normal | +| `` | [whichkey](https://github.com/folke/which-key.nvim) (спливаюче вікно з прив'язками клавіш (з'являється через 1 секунду)) | normal | +| `e` | [nvimtree](https://github.com/nvim-tree/nvim-tree.lua) (бічний файловий провідник) | normal | +| `f` `s`(menu) | [telescope](https://github.com/nvim-telescope/telescope.nvim) (знайти файли, текст та більше) | normal | +| `;` | [alpha](https://github.com/goolord/alpha-nvim) (інформаційна панель) | normal | +| `` `` | [toggleterm](https://github.com/akinsho/toggleterm.nvim) (термінал) | normal | ## LSP -| key | description | mode | +| клавіші| опис | режим | | ------ | -------------------------------------------- | ------ | | `K` | hover information (double tap to get inside) | normal | | `KK` | move cursor inside `K` window | normal | @@ -46,52 +46,52 @@ by pressing `` in the which-key main menu (first popup after pressing | `gl` | show line diagnostics | normal | | `glgl` | move cursor inside `gl` diagnostics window | normal | -## Editing +## Редагування -| key | description | mode | +| клавіші | опис | режим | | ----------- | ----------------- | -------------- | -| `/` | comment | normal, visual | +| `/` | закоментувати | normal, visual | | `gb` | block comment | visual | -| `` | move line(s) up | normal, visual | -| `` | move line(s) down | normal, visual | +| `` | перемістити лінію або лінії вгору | normal, visual | +| `` | перемістити лінію або лінії вниз | normal, visual | ## Completion -| key | description | mode | +| клавіші | опис | режим | | -------------------------- | -------------------------------------- | ------ | | `` | show completion menu | insert | -| `` `` | confirm | insert | -| `` | abort | insert | -| `` `` `` | select previous item | insert | -| `` `` `` | select next item | insert | +| `` `` | підтвердити | insert | +| `` | скасувати | insert | +| `` `` `` | вибрати попередній предмет | insert | +| `` `` `` | вибрати наступний предмет | insert | | `` | scroll docs up | insert | | `` | scroll docs down | insert | | `` `` | jump to next jumpable in a snippet | insert | | `` | jump to previous jumpable in a snippet | insert | -## Windows +## Вікна -| key | description | mode | +| клавіші | опис | режим | | ----------- | ---------------------- | ------ | -| `` | go to left window | normal | -| `` | go to lower window | normal | -| `` | go to upper window | normal | -| `` | go to right window | normal | -| `` | decrease window height | normal | -| `` | increase window height | normal | -| `` | decrease window width | normal | -| `` | increase window width | normal | - -## Miscellaneous - -| key | description | mode | +| `` | перейти в ліве вікно | normal | +| `` | перейти в нижнє вікно | normal | +| `` | перейти в верхнє вікно | normal | +| `` | перейти в праве вікно | normal | +| `` | зменшити висоту вікна | normal | +| `` | збільшити висоту вікна | normal | +| `` | зменшити ширину вікна | normal | +| `` | збільшити ширину вікна | normal | + +## Різне + +| клавіші | опис | режим | | ------------ | ------------------------- | ------ | -| `Lc` | edit config.lua | normal | -| `h` | clear search highlighting | normal | -| `sh` | search through `:help` | normal | -| `sr` | open recent files | normal | -| `pS` | list of installed plugins | normal | +| `Lc` | редагувати config.lua | normal | +| `h` | очистити підсвітку пошуку | normal | +| `sh` | шукати в `:help` | normal | +| `sr` | відкрити нещодавні файли | normal | +| `pS` | список встановлених плагінів | normal | -## [nvimtree](https://github.com/nvim-tree/nvim-tree.lua) (side file explorer) +## [nvimtree](https://github.com/nvim-tree/nvim-tree.lua) (бічний файловий провідник) -`g?` show keybindings +`g?` показати сполучення клавіш diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/_category_.json b/i18n/ua/docusaurus-plugin-content-docs/current/features/_category_.json index e1c1956e..4b8e2c65 100644 --- a/i18n/ua/docusaurus-plugin-content-docs/current/features/_category_.json +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/_category_.json @@ -1,4 +1,4 @@ { - "label": "Features", + "label": "Можливості", "position": 6 } diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/core-plugins-list.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/core-plugins-list.md index 55b330e7..b2a525a2 100644 --- a/i18n/ua/docusaurus-plugin-content-docs/current/features/core-plugins-list.md +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/core-plugins-list.md @@ -2,49 +2,49 @@ sidebar_position: 1 --- -# Core Plugins List +# Список основних плагінів -| name | description | optional? | -| ------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------- | --------- | -| folke/lazy.nvim | A modern plugin manager for Neovim | | -| neovim/nvim-lspconfig | Quickstart configurations for the Nvim LSP client | | -| tamago324/nlsp-settings.nvim | A plugin for setting Neovim LSP with JSON or YAML files | | -| jose-elias-alvarez/null-ls.nvim | Use Neovim as a language server to inject LSP diagnostics, code actions, and more via Lua. | | -| williamboman/mason-lspconfig.nvim | Extension to mason.nvim that makes it easier to use lspconfig with mason.nvim | | -| williamboman/mason.nvim | Easily install and manage LSP servers, DAP servers, linters, and formatters | | -| folke/tokyonight.nvim | A clean, dark Neovim theme | | -| lunarvim/lunar.nvim | LunarVim Colorscheme | | -| Tastyep/structlog.nvim | Structured Logging for nvim, using Lua | | -| nvim-lua/popup.nvim | [WIP] An implementation of the Popup API from vim in Neovim. Hope to upstream when complete | | -| nvim-lua/plenary.nvim | plenary: full; complete; entire; absolute; unqualified. All the lua functions I don't want to write twice. | | -| nvim-telescope/telescope.nvim | Find, Filter, Preview, Pick. All lua, all the time. | optional | -| nvim-telescope/telescope-fzf-native.nvim | FZF sorter for telescope written in c | | -| hrsh7th/nvim-cmp | A completion plugin for neovim coded in Lua. | | -| rafamadriz/friendly-snippets | Set of preconfigured snippets for different languages. | optional | -| L3MON4D3/LuaSnip | Snippet Engine for Neovim written in Lua. | | -| hrsh7th/cmp-nvim-lsp | nvim-cmp source for neovim builtin LSP client | | -| saadparwaiz1/cmp_luasnip | luasnip completion source for nvim-cmp | | -| hrsh7th/cmp-buffer | nvim-cmp source for buffer words | | -| hrsh7th/cmp-path | nvim-cmp source for paths | | -| folke/neodev.nvim | 💻 Dev setup for init.lua and plugin development with full signature help, docs and completion for the nvim lua API. | | -| windwp/nvim-autopairs | autopairs for neovim written by lua | optional | -| nvim-treesitter/nvim-treesitter | Nvim Treesitter configurations and abstraction layer | | -| JoosepAlviste/nvim-ts-context-commentstring | Neovim treesitter plugin for setting the commentstring based on the cursor location in a file. | | -| kyazdani42/nvim-tree.lua | A file explorer tree for neovim written in lua | optional | -| tamago324/lir.nvim | Neovim file explorer | optional | -| lewis6991/gitsigns.nvim | Git integration for buffers | optional | -| folke/which-key.nvim | Displays a popup with possible keybindings of the command you started typing. | optional | -| numToStr/Comment.nvim | Smart and powerful comment plugin for neovim. Supports treesitter, dot repeat, left-right/up-down motions, hooks, and more | optional | -| ahmedkhalf/project.nvim | The superior project management solution for neovim | optional | -| nvim-tree/nvim-web-devicons | lua `fork` of vim-web-devicons for neovim | optional | -| nvim-lualine/lualine.nvim | A blazing fast and easy to configure neovim statusline plugin written in pure lua | optional | -| SmiteshP/nvim-navic | winbar/statusline plugin that shows your current code context | optional | -| akinsho/bufferline.nvim | A snazzy bufferline for Neovim | optional | -| mfussenegger/nvim-dap | Debug Adapter Protocol client implementation for Neovim (>= 0.5) | optional | -| rcarriga/nvim-dap-ui | A UI for nvim-dap which provides a good out of the box configuration | optional | -| goolord/alpha-nvim | a lua powered greeter like vim-startify / dashboard-nvim | optional | -| akinsho/toggleterm.nvim | A neovim lua plugin to help easily manage multiple terminal windows | optional | -| b0o/schemastore.nvim | 🛍 JSON schemas for Neovim | | -| RRethy/vim-illuminate | highlight word under the cursor using either LSP, Tree-sitter, or regex matching | optional | -| lunarvim/onedarker.nvim | Onedark inspired colorscheme written in lua. | optional | -| lukas-reineke/indent-blankline.nvim | Indent guides for Neovim | optional | +| назва | опис | необов'язковий? | +|--------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------|-----------------| +| folke/lazy.nvim | Сучасний менеджер плагінів для Neovim | | +| neovim/nvim-lspconfig | Конфігурації швидкого запуску для клієнта Nvim LSP | | +| tamago324/nlsp-settings.nvim | Плагін для налаштування Neovim LSP за допомогою JSON або YAML файлів | | +| jose-elias-alvarez/null-ls.nvim | Використовуйте Neovim як мовний сервер для впровадження діагностики LSP, дій з кодом та іншого через Lua | | +| williamboman/mason-lspconfig.nvim | Розширення до mason.nvim, яке полегшує використання lspconfig з mason.nvim | | +| williamboman/mason.nvim | Легке встановлення та керування LSP-серверами, DAP-серверами, лінкерами та форматерами | | +| folke/tokyonight.nvim | Чиста, темна тема Neovim | | +| lunarvim/lunar.nvim | Кольорова схема LunarVim | | +| Tastyep/structlog.nvim | Структуроване ведення логів для nvim за допомогою Lua | | +| nvim-lua/popup.nvim | [РОБОТА ТРИВАЄ] Реалізація Popup API з Vim у Neovim. Сподіваємося випустити по завершенню | | | +| nvim-lua/plenary.nvim | plenary: завершений; цілковитий; абсолютний; беззастережний. Всі функції lua я не хочу писати двічі | | +| nvim-telescope/telescope.nvim | Знаходьте, фільтруйте, переглядайте, вибирайте. Все на Lua, весь час | необов'язковий | +| nvim-telescope/telescope-fzf-native.nvim | FZF сортувальник для плагіна telescope, написаний на C | | +| hrsh7th/nvim-cmp | Плагін автодоповнення для neovim, написаний на Lua | | +| rafamadriz/friendly-snippets | Набір попередньо налаштованих зразків для різних мов | необов'язковий | +| L3MON4D3/LuaSnip | Рушій фрагментів для Neovim, написаний на Lua | | +| hrsh7th/cmp-nvim-lsp | nvim-cmp для вбудованого LSP-клієнта neovim | | +| saadparwaiz1/cmp_luasnip | Джерело завершення luasnip для nvim-cmp | | +| hrsh7th/cmp-buffer | nvim-cmp джерело для буферних слів | | +| hrsh7th/cmp-path | nvim-cmp джерело для шляхів | | +| folke/neodev.nvim | 💻 Налаштування init.lua та розробка плагінів з повною довідкою про підписи, документацією та завершенням для API nvim lua | | +| windwp/nvim-autopairs | Автопари для neovim, написані на lua | необов'язковий | +| nvim-treesitter/nvim-treesitter | Nvim Treesitter конфігурації та рівень абстракції | | +| JoosepAlviste/nvim-ts-context-commentstring | Плагін Neovim treesitter коментування поточного рядка | | +| kyazdani42/nvim-tree.lua | Дерево файлового провідника для NeoVim, написане на Lua | необов'язковий | +| tamago324/lir.nvim | Файловий провідник Neovim | необов'язковий | +| lewis6991/gitsigns.nvim | Інтеграція з Git для буферів | необов'язковий | +| folke/which-key.nvim | Відображає спливаюче вікно з можливими поєднаннями клавіш для команди, яку ви почали вводити | необов'язковий | +| numToStr/Comment.nvim | Розумний та потужний плагін коментарів для neovim. Підтримує treesitter, dot repeat, left-right/up-down motions, hooks, and more | необов'язковий | +| ahmedkhalf/project.nvim | Чудове рішення для управління проектами для neovim | необов'язковий | +| nvim-tree/nvim-web-devicons | Lua `форк` vim-web-devicons для neovim | необов'язковий | +| nvim-lualine/lualine.nvim | Надзвичайно швидкий і простий у налаштуванні плагін для рядка статусу neovim, написаний на чистому Lua | необов'язковий | +| SmiteshP/nvim-navic | winbar/statusline плагін, який показує поточний контекст коду | необов'язковий | +| akinsho/bufferline.nvim | Стильна буферна лінія для Neovim | необов'язковий | +| mfussenegger/nvim-dap | Клієнстька імплементація DA для Neovim (>= 0.5) | необов'язковий | +| rcarriga/nvim-dap-ui | Інтерфейс для nvim-dap, який забезпечує хорошу конфігурацію з коробки | необов'язковий | +| goolord/alpha-nvim | Lua-привітання на кшталт vim-startify / dashboard-nvim | необов'язковий | +| akinsho/toggleterm.nvim | Плагін NeoVim на Lua для легкого керування кількома вікнами терміналу | необов'язковий | +| b0o/schemastore.nvim | 🛍 JSON схеми для Neovim | | +| RRethy/vim-illuminate | Виділіть слово під курсором за допомогою LSP, Tree-sitter або регулярних відступів | необов'язковий | +| lunarvim/onedarker.nvim | Натхненна Onedark кольорова схема написана на Lua | необов'язковий | +| lukas-reineke/indent-blankline.nvim | Допоміжні лінії відступів Neovim | необов'язковий | diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-frameworks/_category_.json b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-frameworks/_category_.json index b4426253..bc5f49fd 100644 --- a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-frameworks/_category_.json +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-frameworks/_category_.json @@ -1,4 +1,4 @@ { - "label": "Supported frameworks", + "label": "Підтримувані фреймворки", "position": 2 } diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-frameworks/angular.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-frameworks/angular.md index c3bd1912..87314653 100644 --- a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-frameworks/angular.md +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-frameworks/angular.md @@ -1,36 +1,35 @@ # Angular -## Better syntax highlighting +## Ліпша підсвітка синтаксису -You may want to add this plugin to your config. It provides treesitter integration with the Angular framework. +Можливо ви хочете додати цей плагін до вашої конфігурації. Він надає інтеграцію фреймворка Angular з treesitter. ```lua { "nvim-treesitter/nvim-treesitter-angular" } ``` -## Install Language Server - +## Установіть мовний сервер ```vim :LspInstall angularls ``` -## Configure LunarVim +## Налаштуйте LunarVim -The `angularls` server is overridden by default. So it needs to be -[manually configured](/configuration/language-features/language-servers.md#server-override). +Сервер `angularls` перезаписаний за замовчуванням. Тому вам потрібно його +[вручну налаштувати](/configuration/language-features/language-servers.md#server-override). -### Setup +### Установлення -Add this to your `config.lua` file: +Додайте це до вашого файлу `config.lua`: ```lua require("lvim.lsp.manager").setup("angularls") ``` -For more info about the LSP such as default values [checkout this](https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#angularls). +Детальніше про LSP, як-от типові значенні, [можете дізнатися тут](https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#angularls). :::note -For Angular projects with version lesser than 9 (pre Ivy) you should provide the LSP with the `--viewEngine` flag. +Для проєктів Angular з версією менше ніж 9 (до Ivy) ви повинні надати LSP прапор `--viewEngine`. ::: diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-frameworks/vue.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-frameworks/vue.md index c48eab01..ce721ffc 100644 --- a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-frameworks/vue.md +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-frameworks/vue.md @@ -1,32 +1,31 @@ # Vue -## Syntax highlighting +## Підсвітка синтаксису ```vim :TSInstall vue ``` -## Supported language servers +## Підтримувані мовні сервери ```lua { "eslint", "stylelint_lsp", "tailwindcss", "volar", "vuels" } ``` -Only `vuels` is enabled by default and the other servers need to be [manually configured](/configuration/language-features/language-servers.md#manually-configured-servers). +Типово тільки `vuels` увімкнений, а інші сервери потрібно буде [вручну налаштувати](/configuration/language-features/language-servers.md#manually-configured-servers). -## Supported formatters +## Підтримувані форматувальники ```lua { "eslint", "eslint_d", "prettier", "prettier_d_slim", "prettierd", "rustywind" } ``` -## Supported linters - +## Підтримувані лінтери ```lua { "eslint", "eslint_d" } ``` -## LSP Settings +## Налаштування LSP ```lua :LspSettings vuels diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/_category_.json b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/_category_.json index 33004c19..9132e92d 100644 --- a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/_category_.json +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/_category_.json @@ -1,4 +1,4 @@ { - "label": "Supported languages", + "label": "Підтримуванні мови", "position": 3 } diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/ansible.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/ansible.md index 6c5d9e51..d481d188 100644 --- a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/ansible.md +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/ansible.md @@ -1,16 +1,16 @@ # Ansible -## Install Syntax Highlighting +## Установлення підсвічування синтаксису ```vim :TSInstall yaml ``` -## Supported language servers +## Підтримувані мовні сервери - ansiblels -## Supported linters +## Підтримувані лінтери - ansible-lint - yamllint diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/c_cpp.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/c_cpp.md index ed73080b..908a33cd 100644 --- a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/c_cpp.md +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/c_cpp.md @@ -1,6 +1,6 @@ # C/C++ -## Install Syntax Highlighting +## Установлення підсвічування синтаксису ```vim :TSInstall c @@ -10,18 +10,18 @@ :TSInstall cpp ``` -## Supported language servers +## Підтримувані мовні сервери - clangd - ccls -## Supported formatters +## Підтримувані форматувальники коду - astyle - clang_format - uncrustify -## Supported linters +## Підтримувані лінтери - clang_format - cppcheck diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/csharp.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/csharp.md index 87d110a3..b752a5b1 100644 --- a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/csharp.md +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/csharp.md @@ -1,23 +1,23 @@ # C# (csharp) -## Install Syntax Highlighting +## Установлення підсвічування синтаксису ```vim :TSInstall c_sharp ``` -## Supported language servers +## Підтримувані мовні сервери - charp_ls - omnisharp - omnisharp_mono -### What is OmniSharp? +### Що таке OmniSharp? -Formatting is automatically enabled. The formatting options can be changed by with the [OmniSharp +Форматування автоматично увімкнено. Налаштувати форматування можна з [OmniSharp configuration options](https://github.com/OmniSharp/omnisharp-roslyn/wiki/Configuration-Options). -## Supported formatters +## Підтримувані форматувальники коду - astyle - clang_format diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/go.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/go.md index 70c1b055..2d23b18e 100644 --- a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/go.md +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/go.md @@ -1,17 +1,17 @@ # Go -## Install Syntax Highlighting +## Установлення підсвічування синтаксису ```vim :TSInstall go ``` -## Supported language servers +## Підтримувані мовні сервери - golangci_lint_ls - gopls -## Supported formatters +## Підтримувані форматувальники коду - gofmt - gofumpt @@ -19,7 +19,7 @@ - goimports_reviser - golines -## Supported linters +## Підтримувані лінтери - golangci_lint - revive diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/hcl.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/hcl.md index ee9660cc..def6611a 100644 --- a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/hcl.md +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/hcl.md @@ -1,16 +1,16 @@ # HCL -## Syntax highlighting +## Установлення підсвічування синтаксису ```vim :TSInstall hcl ``` -## Supported language servers +## Підтримувані мовні сервери - terraform_lsp - tflint -## Supported formatters +## Підтримувані форматувальники коду - packer diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/java.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/java.md index bfab48f0..6d935cde 100644 --- a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/java.md +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/java.md @@ -1,16 +1,16 @@ # Java -## Install Syntax Highlighting +## Установлення підсвічування синтаксису ```vim :TSInstall java ``` -## Supported language servers +## Підтримувані мовні сервери - jdtls -## Supported formatters +## Підтримувані форматувальники коду - astyle - clang_format @@ -18,25 +18,27 @@ - npm_groovy_lint - uncrustify -The Java language server (jdtls) also supports formatting, and it is enabled by default. It is possible to fine-tune its formatting rules, but it is also possible to use a different formatter from the above list. When such a formatter is used, jdtls formatting will be disabled to avoid conflict. +Сервер мови Java (jdtls) також підтримує форматування, і за замовчуванням він увімкнений. Ви можете налаштувати його правила форматування, але також можна використовувати інший форматувальник з наведеного вище списку. Коли використовується такий форматувальник, форматування jdtls буде вимкнено, щоб уникнути конфлікту. + ### jdtls -jdtls is installed automatically once you open a `.java` file. +jdtls встановлюється автоматично, коли ви вперше відкриєте `.java` файл. :::note -jdtls requires **jdk-17 or newer** to run. +jdtls повинно бути **jdk-17 або новіше** для запуску. ::: -Neovim (by default) passes basic options (such as `vim.opt.shiftwidth` and `vim.opt.tabstop`) to the language server when formatting. +Neovim ( типово) передає основні параметри (такі як `vim.opt.shiftwidth` та `vim.opt.tabstop`) мовному серверу під час форматування. + +Можна додатково налаштувати форматування jdtls, надавши файл форматування Eclipse. -It is possible to further customize jdtls formatting by supplying an Eclipse formatter file. +Для цього введіть `:LspSettings jdtls`. Буде створено JSON-файл за адресою `.config/lvim/lsp-settings/jdtls.json`, який можна розглядати як глобальні налаштування. -To do so, type `:LspSettings jdtls`. It will create a JSON file at `.config/lvim/lsp-settings/jdtls.json` and can be treated as global settings. +Додайте наступний вміст: -Add the following content: ```json { @@ -45,24 +47,24 @@ Add the following content: } ``` -To reference a local file in the url attribute, simply set its path: `"java.format.settings.url": ".config/lvim/custom-formatter.xml"` +Щоб посилатися на локальний файл в атрибуті url, просто задайте його шлях:: `"java.format.settings.url": ".config/lvim/custom-formatter.xml"` -It is also possible to specify project-specific configs. To do so, type `:LspSettings local jdtls` which will create `.nlsp-settings/jdtls.json` in the current working directory, and paste the config that we used for the global settings. +Також можна вказати специфічні для проєкту конфіги. Для цього введіть `:LspSettings local jdtls`, який створить `.nlsp-settings/jdtls.json` у поточній робочій папці, і вставте конфіг, який ви використовували для глобальних налаштувань. +Більше інформації про команди LSP ви можете знайти тут: https://github.com/tamago324/nlsp-settings.nvim -More information about Lsp commands can be found at https://github.com/tamago324/nlsp-settings.nvim +### Користувацькі форматувальники -### Custom formatters +Користувацькі форматувальники - це інструменти інтерфейсу командного рядка, які обгорнуті плагіном null-ls, який за замовчуванням доступний у LunarVim. Їх слід встановлювати окремо від LunarVim, і вони мають бути доступні у $PATH. -Custom formatters are CLI tools that are wrapped with null-ls plugin, which is available by default in LunarVim. They should be installed separately from LunarVim and be available on $PATH. #### clang-format -clang-format is traditionally used for formatting C/C++ code but can also be used for Java code formatting. +clang-формат традиційно використовується для форматування C/C++ коду, але також може бути використаний для форматування Java коду. -Prerequisites: -clang-format should be on the $PATH +Необхідні умови: +clang-format має бути у $PATH -Enable formatter in `~/.config/lvim/config.lua`: +Увімкніть форматувальник файлі `~/.config/lvim/config.lua`: ```lua local formatters = require "lvim.lsp.null-ls.formatters" @@ -74,11 +76,11 @@ formatters.setup { } ``` -With the above configuration, the default settings will be used. To see the defaults, type `clang-format --dump-config` in the terminal. +У наведеній вище конфігурації буде використано налаштування за замовчуванням. Щоб переглянути налаштування за замовчуванням, введіть у терміналі `clang-format --dump-config`. -clang-format supports multiple predefined styles. For the list of values see: https://clang.llvm.org/docs/ClangFormatStyleOptions.html#configurable-format-style-options +clang-format підтримує декілька попередньо визначених стилів. Список значень можна знайти за посиланням: https://clang.llvm.org/docs/ClangFormatStyleOptions.html#configurable-format-style-options. -To specify such style you need to set extra args in `config.lua`: +Щоб вказати такий стиль, потрібно задати додаткові аргументи у файлі `config.lua`: ```lua { @@ -88,7 +90,7 @@ To specify such style you need to set extra args in `config.lua`: } ``` -It is also possible to use a format file. For that, you will need a valid clang-format file. You can create one from an existing style that can be used as a base: `clang-format --style=Google --dump-config > .clang-format` +Також можна використовувати файл формату. Для цього вам знадобиться дійсний файл формату clang. Ви можете створити його на основі наявного стилю, який можна використати як базовий: `clang-format --style=Google --dump-config > .clang-format` `config.lua`: @@ -102,12 +104,12 @@ It is also possible to use a format file. For that, you will need a valid clang- #### google-java-format -google-java-format is a program that reformats Java source code to comply with Google Java Style. +google-java-format - програма, яка переформатовує вихідний код Java відповідно до Google Java Style. -Prerequisites: -google-java-format should be on the $PATH +Передумови: +google-java-format має бути на $PATH -Enable formatter in `~/.config/lvim/config.lua`: +Увімкніть формальник у `~/.config/lvim/config.lua`: ```lua formatters = require "lvim.lsp.null-ls.formatters" @@ -121,9 +123,9 @@ formatters.setup { #### uncrustify -uncrustify works similarly to clang-format. +unrustify працює аналогічно до clang-форматувальника. -Enable formatter in `~/.config/lvim/config.lua`: +Увімкніть формальтувальник у `~/.config/lvim/config.lua`: ```lua formatters = require "lvim.lsp.null-ls.formatters" @@ -136,7 +138,7 @@ formatters.setup { } ``` -## Supported linters +## Підтримувані лінтери ```lua { "checkstyle", "pmd", "semgrep" } @@ -144,4 +146,4 @@ formatters.setup { ## Advanced configuration -It is also possible to fully customize the language server. See https://github.com/LunarVim/starter.lvim to get ideas on how to proceed with that. +Також можна повністю налаштувати мовний сервер. Дивіться https://github.com/LunarVim/starter.lvim, щоб дізнатися, як це зробити. diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/javascript.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/javascript.md index bf78ab7b..6cd10a2a 100644 --- a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/javascript.md +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/javascript.md @@ -1,12 +1,12 @@ # JavaScript -## Syntax highlighting +## Установлення підсвічування синтаксису ```vim :TSInstall javascript ``` -## Supported language servers +## Підтримувані мовні сервери - cssmodules_ls - denols @@ -21,7 +21,7 @@ Only `tsserver` and `tailwindcss` is enabled by default and the other servers need to be [manually configured](/configuration/language-features/language-servers.md#manually-configured-servers). -## Supported formatters +## Підтримувані форматувальники коду - deno_fmt - dprint @@ -38,7 +38,7 @@ Only `tsserver` and `tailwindcss` is enabled by default and the other servers ne The configured formatter(s) must be installed separately. -## Supported linters +## Підтримувані лінтери - eslint - eslint_d diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/json.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/json.md index e1913d15..b5a78de4 100644 --- a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/json.md +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/json.md @@ -1,17 +1,17 @@ # JSON -## Install Syntax Highlighting +## Установлення підсвічування синтаксису ```vim :TSInstall json ``` -## Supported language servers +## Підтримувані мовні сервери - jsonls - rome -## Supported formatters +## Підтримувані форматувальники коду - deno_fmt - dprint @@ -22,7 +22,7 @@ - prettier_d_slim - prettierd -## Supported linters +## Підтримувані лінтери - cfn_lint - jsonlint diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/julia.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/julia.md index 4ceaba92..f718932d 100644 --- a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/julia.md +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/julia.md @@ -1,6 +1,6 @@ # Julia -## Install Syntax Highlighting +## Установлення підсвічування синтаксису ```vim :TSInstall julia diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/lua.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/lua.md index aefccc11..313d0d6c 100644 --- a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/lua.md +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/lua.md @@ -1,21 +1,21 @@ # Lua -## Install Syntax Highlighting +## Установлення підсвічування синтаксису ```vim :TSInstall lua ``` -## Supported language servers +## Підтримувані мовні сервери - lua_ls -## Supported formatters +## Підтримувані форматувальники коду - lua_format - stylua -## Supported linters +## Підтримувані лінтери - luacheck - selene diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/powershell.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/powershell.md index 126a53a4..a9231409 100644 --- a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/powershell.md +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/powershell.md @@ -1,6 +1,6 @@ # PowerShell -## Install Syntax Highlighting +## Установлення підсвічування синтаксису Currently there is no maintained PowerShell parser available. If needed, configure a unmaintained parser by adding the following code to e.g. `config.lua` @@ -22,7 +22,7 @@ Install the configured parser. :TSInstall powershell ``` -## Supported language servers +## Підтримувані мовні сервери - powershell_es diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/python.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/python.md index ae94f9e4..3daf14b1 100644 --- a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/python.md +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/python.md @@ -1,19 +1,19 @@ # Python -## Install Syntax Highlighting +## Установлення підсвічування синтаксису ```vim :TSInstall python ``` -## Supported language servers +## Підтримувані мовні сервери - jedi_language_server - pylsp - pyright - sourcery -## Supported formatters +## Підтримувані форматувальники коду - autopep8 - black @@ -23,7 +23,7 @@ - usort - yapf -## Supported linters +## Підтримувані лінтери - flake8 - mypy diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/qml.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/qml.md index 229adfbb..1e1a6c9d 100644 --- a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/qml.md +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/qml.md @@ -1,6 +1,6 @@ # QML -## Install Syntax Highlighting +## Установлення підсвічування синтаксису There is no official Treesitter support for QML, so instead you could use [the plugin](https://github.com/peterhoeg/vim-qml): @@ -13,16 +13,16 @@ plugin](https://github.com/peterhoeg/vim-qml): }, ``` -## Supported language servers +## Підтримувані мовні сервери Currently QML does not have an official LSP, but its development is currently [in progress](https://bugreports.qt.io/browse/QTBUG-68406). -## Supported formatters +## Підтримувані форматувальники коду - qmlformat -## Supported linters +## Підтримувані лінтери - qmllint diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/ruby.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/ruby.md index e1c5fc07..08746e31 100644 --- a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/ruby.md +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/ruby.md @@ -1,12 +1,12 @@ # Ruby -### Install Syntax Highlighting +### Установлення підсвічування синтаксису ```vim :TSInstall ruby ``` -## Supported language servers +## Підтримувані мовні сервери - ruby_ls - solargraph @@ -18,13 +18,13 @@ Project root is recognized by having one of the following files/folders in the r Note: `Solargraph` should automatically detect and use `rubocop` for formatting. -## Supported formatters +## Підтримувані форматувальники коду - rubocop - rufo - standardrb -## Supported linters +## Підтримувані лінтери - rubocop - semgrep diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/rust.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/rust.md index ddcc1a39..1d213aa3 100644 --- a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/rust.md +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/rust.md @@ -1,16 +1,16 @@ # Rust -## Install Syntax Highlighting +## Установлення підсвічування синтаксису ```vim :TSInstall rust ``` -## Supported language servers +## Підтримувані мовні сервери - rust_analyzer -## Supported formatters +## Підтримувані форматувальники коду - dprint - rustfmt diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/scala.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/scala.md index c620f5c8..1a9e11ee 100644 --- a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/scala.md +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/scala.md @@ -1,6 +1,6 @@ # Scala -## Install Syntax Highlighting +## Установлення підсвічування синтаксису ```vim :TSInstall scala @@ -97,7 +97,7 @@ lvim.builtin.dap.active = true Any Lunarvim builtin debug commands, which could be displayed by pressing ` d`, is supported. -## Supported formatters +## Підтримувані форматувальники коду In most cases, isn't necessary enable the [scalafmt](https://scalameta.org/scalafmt/) formatter, this is already integrated with metals to format on save creating a `.scalafmt.conf` file in your project root, see more [here](https://scalameta.org/scalafmt/docs/configuration.html) diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/swift.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/swift.md index 45fb100c..b8e30dd4 100644 --- a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/swift.md +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/swift.md @@ -1,6 +1,6 @@ # Swift -## Install Syntax Highlighting +## Установлення підсвічування синтаксису ```vim :TSInstall swift @@ -35,6 +35,6 @@ default_config = { } ``` -## Supported formatters +## Підтримувані форматувальники коду - swiftformat diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/terraform.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/terraform.md index 742a2272..2bf6077d 100644 --- a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/terraform.md +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/terraform.md @@ -1,6 +1,6 @@ # Terraform -## Syntax highlighting +## Установлення підсвічування синтаксису First, within LunarVim run the following: @@ -8,11 +8,11 @@ First, within LunarVim run the following: :TSInstall hcl ``` -## Supported language servers +## Підтримувані мовні сервери - terraform - terraformls -## Supported formatters +## Підтримувані форматувальники коду - terraform diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/typescript.md b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/typescript.md index 194b2966..462432a4 100644 --- a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/typescript.md +++ b/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/typescript.md @@ -1,13 +1,13 @@ # TypeScript -## Syntax highlighting +## Установлення підсвічування синтаксису ```vim :TSInstall typescript :TSInstall tsx ``` -## Supported language servers +## Підтримувані мовні сервери - angularls - cssmodules_ls @@ -28,7 +28,7 @@ Only `tsserver` and `tailwindcss` is enabled by default and the other servers ne See [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#tsserver) for more information about the tsserver language server configuration options. -## Supported formatters +## Підтримувані форматувальники коду - deno_fmt - dprint @@ -42,7 +42,7 @@ See [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig/blob/master/doc/se The configured formatter(s) must be installed separately. -## Supported linters +## Підтримувані лінтери - eslint - eslint_d From f4486c6ce2f636368d02d13a4e105a4bce29046a Mon Sep 17 00:00:00 2001 From: Nalitnyk Date: Tue, 5 Dec 2023 01:37:44 +0200 Subject: [PATCH 5/8] deleted .idea --- .idea/.gitignore | 5 ----- .idea/lunarvim.org.iml | 12 ------------ .idea/modules.xml | 8 -------- .idea/vcs.xml | 6 ------ 4 files changed, 31 deletions(-) delete mode 100644 .idea/.gitignore delete mode 100644 .idea/lunarvim.org.iml delete mode 100644 .idea/modules.xml delete mode 100644 .idea/vcs.xml diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index b58b603f..00000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Editor-based HTTP Client requests -/httpRequests/ diff --git a/.idea/lunarvim.org.iml b/.idea/lunarvim.org.iml deleted file mode 100644 index 24643cc3..00000000 --- a/.idea/lunarvim.org.iml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index e9990c93..00000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 35eb1ddf..00000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file From 2073fb519ce241896d58d87b8074471ef0156909 Mon Sep 17 00:00:00 2001 From: Nalitnyk Date: Thu, 7 Dec 2023 20:02:52 +0200 Subject: [PATCH 6/8] ua -> uk --- ; | 4 + docusaurus.config.js | 2 +- .../current/dev/README.md | 84 ---------- .../current/dev/_category_.json | 4 - .../current/troubleshooting/README.md | 148 ----------------- .../current/troubleshooting/_category_.json | 4 - i18n/{ua => uk}/code.json | 0 .../options.json | 0 .../current.json | 0 .../current/_category_.json | 0 .../current/beginners-guide/_category_.json | 0 .../beginners-guide/beginners-guide.md | 0 .../beginners-guide/keybinds-overview.md | 0 .../beginners-guide/plugins-overview.md | 0 .../current/beginners-guide/terminology.md | 0 .../current/community/README.md | 0 .../current/community/_category_.json | 0 .../current/community/meet-the-team.md | 0 .../current/configuration/README.md | 0 .../current/configuration/_category_.json | 0 .../configuration/appearance/_category_.json | 0 .../configuration/appearance/colorschemes.md | 0 .../configuration/appearance/statusline.md | 0 .../current/configuration/autocommands.md | 0 .../current/configuration/ftplugin.md | 0 .../current/configuration/keybindings.md | 0 .../language-features/_category_.json | 0 .../language-features/custom-snippets.md | 0 .../language-features/language-features.md | 0 .../language-features/language-servers.md | 0 .../linting-and-formatting.md | 0 .../current/configuration/options.md | 0 .../configuration/plugins/_category_.json | 0 .../current/configuration/plugins/plugins.md | 0 .../current/dev/README.md | 85 ++++++++++ .../current/dev/_category_.json | 4 + .../current/dev/lunarvim_initialization.png | Bin .../current/dev/under-the-hood.md | 8 +- .../current/faq.md | 0 .../current/features/_category_.json | 0 .../current/features/core-plugins-list.md | 0 .../supported-frameworks/_category_.json | 0 .../features/supported-frameworks/angular.md | 0 .../features/supported-frameworks/vue.md | 0 .../supported-languages/_category_.json | 0 .../features/supported-languages/ansible.md | 0 .../features/supported-languages/c_cpp.md | 0 .../features/supported-languages/csharp.md | 0 .../features/supported-languages/go.md | 0 .../features/supported-languages/hcl.md | 0 .../features/supported-languages/java.md | 0 .../supported-languages/javascript.md | 0 .../features/supported-languages/json.md | 0 .../features/supported-languages/julia.md | 0 .../features/supported-languages/lua.md | 0 .../supported-languages/powershell.md | 0 .../features/supported-languages/python.md | 0 .../features/supported-languages/qml.md | 0 .../features/supported-languages/ruby.md | 0 .../features/supported-languages/rust.md | 0 .../features/supported-languages/scala.md | 0 .../features/supported-languages/swift.md | 0 .../features/supported-languages/terraform.md | 0 .../supported-languages/typescript.md | 0 .../current/installation/_category_.json | 0 .../current/installation/installation.md | 0 .../current/installation/post-install.md | 0 .../current/troubleshooting/README.md | 151 ++++++++++++++++++ .../current/troubleshooting/_category_.json | 4 + .../version-1.2.json | 0 .../version-1.3.json | 0 .../docusaurus-theme-classic/navbar.json | 0 72 files changed, 253 insertions(+), 245 deletions(-) create mode 100644 ; delete mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/dev/README.md delete mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/dev/_category_.json delete mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/troubleshooting/README.md delete mode 100644 i18n/ua/docusaurus-plugin-content-docs/current/troubleshooting/_category_.json rename i18n/{ua => uk}/code.json (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-blog/options.json (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current.json (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/_category_.json (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/beginners-guide/_category_.json (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/beginners-guide/beginners-guide.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/beginners-guide/keybinds-overview.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/beginners-guide/plugins-overview.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/beginners-guide/terminology.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/community/README.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/community/_category_.json (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/community/meet-the-team.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/configuration/README.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/configuration/_category_.json (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/configuration/appearance/_category_.json (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/configuration/appearance/colorschemes.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/configuration/appearance/statusline.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/configuration/autocommands.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/configuration/ftplugin.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/configuration/keybindings.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/configuration/language-features/_category_.json (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/configuration/language-features/custom-snippets.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/configuration/language-features/language-features.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/configuration/language-features/language-servers.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/configuration/language-features/linting-and-formatting.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/configuration/options.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/configuration/plugins/_category_.json (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/configuration/plugins/plugins.md (100%) create mode 100644 i18n/uk/docusaurus-plugin-content-docs/current/dev/README.md create mode 100644 i18n/uk/docusaurus-plugin-content-docs/current/dev/_category_.json rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/dev/lunarvim_initialization.png (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/dev/under-the-hood.md (92%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/faq.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/features/_category_.json (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/features/core-plugins-list.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/features/supported-frameworks/_category_.json (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/features/supported-frameworks/angular.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/features/supported-frameworks/vue.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/features/supported-languages/_category_.json (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/features/supported-languages/ansible.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/features/supported-languages/c_cpp.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/features/supported-languages/csharp.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/features/supported-languages/go.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/features/supported-languages/hcl.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/features/supported-languages/java.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/features/supported-languages/javascript.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/features/supported-languages/json.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/features/supported-languages/julia.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/features/supported-languages/lua.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/features/supported-languages/powershell.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/features/supported-languages/python.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/features/supported-languages/qml.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/features/supported-languages/ruby.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/features/supported-languages/rust.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/features/supported-languages/scala.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/features/supported-languages/swift.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/features/supported-languages/terraform.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/features/supported-languages/typescript.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/installation/_category_.json (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/installation/installation.md (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/current/installation/post-install.md (100%) create mode 100644 i18n/uk/docusaurus-plugin-content-docs/current/troubleshooting/README.md create mode 100644 i18n/uk/docusaurus-plugin-content-docs/current/troubleshooting/_category_.json rename i18n/{ua => uk}/docusaurus-plugin-content-docs/version-1.2.json (100%) rename i18n/{ua => uk}/docusaurus-plugin-content-docs/version-1.3.json (100%) rename i18n/{ua => uk}/docusaurus-theme-classic/navbar.json (100%) diff --git a/; b/; new file mode 100644 index 00000000..899cfd03 --- /dev/null +++ b/; @@ -0,0 +1,4 @@ +{ + "label": "Для розробників", + "position": 8 +} diff --git a/docusaurus.config.js b/docusaurus.config.js index 0d44b34d..b111d1b1 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -28,7 +28,7 @@ const config = { // to replace "en" with "zh-Hans". i18n: { defaultLocale: 'en', - locales: ['en', 'de', 'es', 'ua', 'zh-Hans'], + locales: ['en', 'de', 'es', 'uk', 'zh-Hans'], }, presets: [ diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/dev/README.md b/i18n/ua/docusaurus-plugin-content-docs/current/dev/README.md deleted file mode 100644 index e357d73a..00000000 --- a/i18n/ua/docusaurus-plugin-content-docs/current/dev/README.md +++ /dev/null @@ -1,84 +0,0 @@ -# Development of Lunarvim - -## Getting started - -We recommend setting up a symlink to your fork: - -```bash -cd ~/.local/share/lunarvim/ -ln -s ~/dev/Lunarvim ~/.local/share/lunarvim/lvim_dev -``` - -Your output should be something like: - -```bash -$ ls -a -lrwxrwxrwx 1 user user 37 sep 23 14:35 lvim_dev -> /home/user/dev/LunarVim -``` - ---- - -Now switch your lvim to the development setup: - -```bash -cd ~/.local/share/lunarvim/ -mv lvim lvim_back -mv lvim_dev lvim -``` - ---- - -Going back to lvim - -```bash -cd ~/.local/share/lunarvim/ -mv lvim lvim_dev -mv lvim_back lvim -``` - -To test that you can get some output from `lvim` add the following to your `init.lua` file in your fork. - -```lua -print ("it works") -``` - -```bash -lvim -``` - -Now type `:messages`. Happy contributing! - -## Lua + Neovim = :heart: - -To get started, [this guide](https://github.com/nanotee/nvim-lua-guide) covers many points that will get you going with Lua and how Neovim works. - -## Official Documentation - -The [reference manual](https://www.lua.org/manual/5.4/) is the official definition of the Lua language. - -If you don't know about it, [DevDocs](https://devdocs.io/lua~5.4/) combines multiple API documentations in a fast, organized, and searchable interface. - -## Neovim Documentation - -Neovim provides a [standard library](https://neovim.io/doc/user/lua.html) which you should know about. - -It provides many functions that you wish were implemented in Lua's stdlib, for instance `strings.split`. - -It also comes with a [LSP framework](https://neovim.io/doc/user/lsp.html) and [much more](https://neovim.io/doc/user/). - -## Style Guide - -LuaRock [style guide](https://github.com/luarocks/lua-style-guide) is a complete work that deserves a look if you want learn how to write consistent and robust code. - -It is based on many pre-existing guides, provides rationals for all their decisions, and worked successfully in a long-running project. - -## Code Quality - -To ensure code quality and a consistent style, our [CI](https://github.com/Lunarvim/LunarVim/actions) uses the following tools: - -- Lua: - - [Stylua](https://github.com/JohnnyMorganz/StyLua). An opinionated Lua code formatter. - - [Luacheck](https://github.com/mpeterv/luacheck). A tool for linting and static analysis of Lua code. -- Shell - - [Shfmt](https://github.com/mvdan/sh). A shell parser, formatter, and interpreter with bash support. - - [Shellcheck](https://github.com/koalaman/shellcheck). A static analysis tool for shell scripts. diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/dev/_category_.json b/i18n/ua/docusaurus-plugin-content-docs/current/dev/_category_.json deleted file mode 100644 index 27a8f3e7..00000000 --- a/i18n/ua/docusaurus-plugin-content-docs/current/dev/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "For Developers", - "position": 8 -} diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/troubleshooting/README.md b/i18n/ua/docusaurus-plugin-content-docs/current/troubleshooting/README.md deleted file mode 100644 index a5efa19f..00000000 --- a/i18n/ua/docusaurus-plugin-content-docs/current/troubleshooting/README.md +++ /dev/null @@ -1,148 +0,0 @@ -# Installation - -## General - -1. Make sure to check that you have a recent Neovim version with `luajit` support. The output of version information `nvim -v` should include a line for: `LuaJIT`. -2. Make sure all the dependencies listed in [Manual Install](#manual-install) are actually installed on your system. - -## Unable to run `lvim` - -Make sure that `lvim` is available and executable on your path. You can check the results of these commands to verify that - -```shell -which lvim -stat "$(which lvim)" -cat "$(which lvim)" -``` - -If you get errors with any of the above commands, then you need to either fix that manually or reinstall the binary again. - -```shell -cd # this will be in `~/.local/share/lunarvim/lvim` by default -bash utils/installer/install_bin.sh -``` - -## Getting errors after an update - -### Cache issues - -This might be the result of old cache files that need to be reset. LunarVim makes use of [impatient's](https://github.com/lewis6991/impatient.nvim) to optimize the startup procedure and deliver a snappy experience. - -1. while running LunarVim: `:LvimCacheReset` -2. from the CLI: `lvim +LvimCacheReset` - -### Plugin issue - -This could be due to multiple reasons, but most commonly it's a breaking change in some plugin, -or `git` refusing to pull an update to a plugin because it -[can't safely fast-forward the current branch](https://blog.sffc.xyz/post/185195398930/why-you-should-use-git-pull-ff-only-git-is-a). - -The easiest way to solve this is to manually update (a rebase is likely required) the offending plugin, -which should be located in Lazy's package-root at `$LUNARVIM_RUNTIME_DIR/site/pack/lazy`. - -Let's say it's `nvim-cmp` for example - -```vim -:! git -C "$LUNARVIM_RUNTIME_DIR/site/pack/lazy/opt/nvim-cmp" status -``` - -now check which commit is currently checked out - -```vim -:! git -C "$LUNARVIM_RUNTIME_DIR/site/pack/lazy/opt/nvim-cmp" log -1 -``` - -it should match the one in `$LUNARVIM_RUNTIME_DIR/lvim/snapshots/default.json`, but you can always restore the snapshot with `:LvimSyncCorePlugins` - -```vim -:! git -C "$LUNARVIM_RUNTIME_DIR/site/pack/lazy/opt/nvim-cmp" pull --rebase -``` - -### Lazy.nvim failure - -if you have not done any changes to any of the plugins, then you can remove Lazy's package root completely. - -```shell -LUNARVIM_RUNTIME_DIR="${LUNARVIM_RUNTIME_DIR:-$HOME/.local/share/lunarvim}" -rm -rf "$LUNARVIM_RUNTIME_DIR/site/pack/lazy" -``` - -now open `lvim`, the plugins should start installing, otherwise run `:Lazy sync`. - -## LunarVim is slow! - -### are you using `fish`? - -> First of all, it is not recommended to set shell to fish in vim. Plenty of vim addons execute fish-incompatible shellscript, so setting it to `/bin/sh` is typically better, especially if you have no good reason to set it to fish. - -```lua -vim.opt.shell = "/bin/sh" -``` - -See [fish-shell/fish-shell#7004](https://github.com/fish-shell/fish-shell/issues/7004) and `:h 'shell'` for more info. - -## Language server XXX does not start for me! - -### Update node - -Some language servers depend on newer versions of node. Update your version of node to the latest. - -### is it overridden? - -This could be due to the fact that the server is [overridden](../configuration/language-features/language-servers.md#server-override) - -```lua ---- is it in this list? -:lua print(vim.inspect(lvim.lsp.automatic_configuration.skipped_servers)) -``` - -If that's the case, then you need to either remove it from that list and re-run `:LvimCacheReset` - -```lua -vim.tbl_map(function(server) - return server ~= "emmet_ls" -end, lvim.lsp.automatic_configuration.skipped_servers) -``` - -or set it up [manually](../configuration/language-features/language-servers.md#server-setup). - -### is it supported by [nvim-lsp-installer](https://github.com/williamboman/nvim-lsp-installer)? - -Any server that does not show up in `LspInstallInfo` needs to be installed manually. - -### is it at least showing up in `:LspInfo`? - -Check out the tips for [debugging nvim-lspconfig](https://github.com/neovim/nvim-lspconfig#debugging). - -## Too many language servers are starting at once! - -Are any of these servers [overridden](../configuration/language-features/language-servers.md#server-override) by default? - -```lua -:lua print(vim.inspect(require("lvim.lsp.config").override)) -``` - -If they are then you are using the syntax prior to [LunarVim#1813](https://github.com/LunarVim/LunarVim/pull/1813). - -```lua --- this is the correct syntax since 3dd60bd -vim.list_extend(lvim.lsp.override, { "jsonls" }) -``` - -```lua --- this the correct syntax since 198577a -vim.list_extend(lvim.lsp.automatic_configuration.skipped_servers, { "jsonls" }) -``` - -## My LunarVim looks ugly! - -- Make sure that you have a terminal that supports 24-bit colors. If not, you might face some issues regarding the default colorscheme, and other colorschemes. - - - For a explainer on what 24-bit colors are, and to test if your terminal supports it, we like this useful repository: https://github.com/termstandard/colors - -- Another issue might be `termguicolors`. If this is the case, we advice you to look at the official neovim docs: - - - What is `termguicolors`? see - -- Another case might be that your `$TERM` variable changes the colors in your terminal. - - For this, we advice you to look and see if anyone else has the same `$TERM` variable as you, and what they did https://github.com/neovim/neovim/issues?q=label%3Atui+color diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/troubleshooting/_category_.json b/i18n/ua/docusaurus-plugin-content-docs/current/troubleshooting/_category_.json deleted file mode 100644 index 402e45a6..00000000 --- a/i18n/ua/docusaurus-plugin-content-docs/current/troubleshooting/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Troubleshooting", - "position": 5 -} diff --git a/i18n/ua/code.json b/i18n/uk/code.json similarity index 100% rename from i18n/ua/code.json rename to i18n/uk/code.json diff --git a/i18n/ua/docusaurus-plugin-content-blog/options.json b/i18n/uk/docusaurus-plugin-content-blog/options.json similarity index 100% rename from i18n/ua/docusaurus-plugin-content-blog/options.json rename to i18n/uk/docusaurus-plugin-content-blog/options.json diff --git a/i18n/ua/docusaurus-plugin-content-docs/current.json b/i18n/uk/docusaurus-plugin-content-docs/current.json similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current.json rename to i18n/uk/docusaurus-plugin-content-docs/current.json diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/_category_.json b/i18n/uk/docusaurus-plugin-content-docs/current/_category_.json similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/_category_.json rename to i18n/uk/docusaurus-plugin-content-docs/current/_category_.json diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/_category_.json b/i18n/uk/docusaurus-plugin-content-docs/current/beginners-guide/_category_.json similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/_category_.json rename to i18n/uk/docusaurus-plugin-content-docs/current/beginners-guide/_category_.json diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/beginners-guide.md b/i18n/uk/docusaurus-plugin-content-docs/current/beginners-guide/beginners-guide.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/beginners-guide.md rename to i18n/uk/docusaurus-plugin-content-docs/current/beginners-guide/beginners-guide.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/keybinds-overview.md b/i18n/uk/docusaurus-plugin-content-docs/current/beginners-guide/keybinds-overview.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/keybinds-overview.md rename to i18n/uk/docusaurus-plugin-content-docs/current/beginners-guide/keybinds-overview.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/plugins-overview.md b/i18n/uk/docusaurus-plugin-content-docs/current/beginners-guide/plugins-overview.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/plugins-overview.md rename to i18n/uk/docusaurus-plugin-content-docs/current/beginners-guide/plugins-overview.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/terminology.md b/i18n/uk/docusaurus-plugin-content-docs/current/beginners-guide/terminology.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/beginners-guide/terminology.md rename to i18n/uk/docusaurus-plugin-content-docs/current/beginners-guide/terminology.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/community/README.md b/i18n/uk/docusaurus-plugin-content-docs/current/community/README.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/community/README.md rename to i18n/uk/docusaurus-plugin-content-docs/current/community/README.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/community/_category_.json b/i18n/uk/docusaurus-plugin-content-docs/current/community/_category_.json similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/community/_category_.json rename to i18n/uk/docusaurus-plugin-content-docs/current/community/_category_.json diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/community/meet-the-team.md b/i18n/uk/docusaurus-plugin-content-docs/current/community/meet-the-team.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/community/meet-the-team.md rename to i18n/uk/docusaurus-plugin-content-docs/current/community/meet-the-team.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/configuration/README.md b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/README.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/configuration/README.md rename to i18n/uk/docusaurus-plugin-content-docs/current/configuration/README.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/configuration/_category_.json b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/_category_.json similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/configuration/_category_.json rename to i18n/uk/docusaurus-plugin-content-docs/current/configuration/_category_.json diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/configuration/appearance/_category_.json b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/appearance/_category_.json similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/configuration/appearance/_category_.json rename to i18n/uk/docusaurus-plugin-content-docs/current/configuration/appearance/_category_.json diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/configuration/appearance/colorschemes.md b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/appearance/colorschemes.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/configuration/appearance/colorschemes.md rename to i18n/uk/docusaurus-plugin-content-docs/current/configuration/appearance/colorschemes.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/configuration/appearance/statusline.md b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/appearance/statusline.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/configuration/appearance/statusline.md rename to i18n/uk/docusaurus-plugin-content-docs/current/configuration/appearance/statusline.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/configuration/autocommands.md b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/autocommands.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/configuration/autocommands.md rename to i18n/uk/docusaurus-plugin-content-docs/current/configuration/autocommands.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/configuration/ftplugin.md b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/ftplugin.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/configuration/ftplugin.md rename to i18n/uk/docusaurus-plugin-content-docs/current/configuration/ftplugin.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/configuration/keybindings.md b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/keybindings.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/configuration/keybindings.md rename to i18n/uk/docusaurus-plugin-content-docs/current/configuration/keybindings.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/configuration/language-features/_category_.json b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/language-features/_category_.json similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/configuration/language-features/_category_.json rename to i18n/uk/docusaurus-plugin-content-docs/current/configuration/language-features/_category_.json diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/configuration/language-features/custom-snippets.md b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/language-features/custom-snippets.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/configuration/language-features/custom-snippets.md rename to i18n/uk/docusaurus-plugin-content-docs/current/configuration/language-features/custom-snippets.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/configuration/language-features/language-features.md b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/language-features/language-features.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/configuration/language-features/language-features.md rename to i18n/uk/docusaurus-plugin-content-docs/current/configuration/language-features/language-features.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/configuration/language-features/language-servers.md b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/language-features/language-servers.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/configuration/language-features/language-servers.md rename to i18n/uk/docusaurus-plugin-content-docs/current/configuration/language-features/language-servers.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/configuration/language-features/linting-and-formatting.md b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/language-features/linting-and-formatting.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/configuration/language-features/linting-and-formatting.md rename to i18n/uk/docusaurus-plugin-content-docs/current/configuration/language-features/linting-and-formatting.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/configuration/options.md b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/options.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/configuration/options.md rename to i18n/uk/docusaurus-plugin-content-docs/current/configuration/options.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/configuration/plugins/_category_.json b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/plugins/_category_.json similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/configuration/plugins/_category_.json rename to i18n/uk/docusaurus-plugin-content-docs/current/configuration/plugins/_category_.json diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/configuration/plugins/plugins.md b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/plugins/plugins.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/configuration/plugins/plugins.md rename to i18n/uk/docusaurus-plugin-content-docs/current/configuration/plugins/plugins.md diff --git a/i18n/uk/docusaurus-plugin-content-docs/current/dev/README.md b/i18n/uk/docusaurus-plugin-content-docs/current/dev/README.md new file mode 100644 index 00000000..743e6954 --- /dev/null +++ b/i18n/uk/docusaurus-plugin-content-docs/current/dev/README.md @@ -0,0 +1,85 @@ +# Розробка Lunarvim + +## Початок роботи + +Ми рекомендуємо зробити символьне посилання на ваш форк: + +```bash +cd ~/.local/share/lunarvim/ +ln -s ~/dev/Lunarvim ~/.local/share/lunarvim/lvim_dev +``` + +На виході повинно вийти щось на кшталт: + +```bash +$ ls -a +lrwxrwxrwx 1 user user 37 sep 23 14:35 lvim_dev -> /home/user/dev/LunarVim +``` + +--- + +Тепер переведіть ваш lvim у режим розробки: + +```bash +cd ~/.local/share/lunarvim/ +mv lvim lvim_back +mv lvim_dev lvim +``` + +--- + +Повернімося в lvim + +```bash +cd ~/.local/share/lunarvim/ +mv lvim lvim_dev +mv lvim_back lvim +``` + +Щоб перевірити, що ви можете отримати деякий вивід з `lvim`, додайте наступне до вашого файлу `init.lua` у вашому форку. + + +```lua +print ("it works") +``` + +```bash +lvim +``` + +Тепер введіть `:messages`. Бажаємо гарної розробки! + +## Lua + Neovim = :heart: + +Для початку, [цей посібник](https://github.com/nanotee/nvim-lua-guide) охоплює багато моментів, які допоможуть вам почати роботу з Lua і тим, як працює Neovim. + +## Офіційна документація + +Цей [довідковий посібник](https://www.lua.org/manual/5.4/) є офіційним посібником мови Lua. + +Якщо ви не знаєте про це, [DevDocs](https://devdocs.io/lua~5.4/) об'єднує декілька документацій API у швидкому, організованому інтерфейсі з можливістю пошуку. + +## Документація Neovim + +Neovim надає [стандартну бібліотеку](https://neovim.io/doc/user/lua.html), про яку вам варто знати. + +Вона надає багато функцій, які ви хотіли б реалізувати у stdlib Lua, наприклад `strings.split`. + +Він також постачається з [фреймворком LSP](https://neovim.io/doc/user/lsp.html) та [багато іншого](https://neovim.io/doc/user/). + +## Посібник зі стилів + +LuaRock [посібник зі стилів](https://github.com/luarocks/lua-style-guide) - це повноцінна робота, яка заслуговує на увагу, якщо ви хочете навчитися писати послідовний та надійний код. + +Він базується на багатьох попередніх посібниках, надає обґрунтування всіх своїх рішень і успішно працював у довготривалому проекті. + +## Якість коду + +Для забезпечення якості коду та узгодженого стилю наш [CI](https://github.com/Lunarvim/LunarVim/actions) використовує наступні інструменти: + +- Lua: + - [Stylua](https://github.com/JohnnyMorganz/StyLua). Форматник коду на Lua з власною думкою. + - [Luacheck] (https://github.com/mpeterv/luacheck). Інструмент для лінкування та статичного аналізу Lua коду. +- Оболонка + - [Shfmt](https://github.com/mvdan/sh). Синтаксичний аналізатор, форматувлаьник та інтерпретатор оболонки з підтримкою bash. + - [Shellcheck](https://github.com/koalaman/shellcheck). Інструмент статичного аналізу скриптів командного рядка. diff --git a/i18n/uk/docusaurus-plugin-content-docs/current/dev/_category_.json b/i18n/uk/docusaurus-plugin-content-docs/current/dev/_category_.json new file mode 100644 index 00000000..899cfd03 --- /dev/null +++ b/i18n/uk/docusaurus-plugin-content-docs/current/dev/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Для розробників", + "position": 8 +} diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/dev/lunarvim_initialization.png b/i18n/uk/docusaurus-plugin-content-docs/current/dev/lunarvim_initialization.png similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/dev/lunarvim_initialization.png rename to i18n/uk/docusaurus-plugin-content-docs/current/dev/lunarvim_initialization.png diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/dev/under-the-hood.md b/i18n/uk/docusaurus-plugin-content-docs/current/dev/under-the-hood.md similarity index 92% rename from i18n/ua/docusaurus-plugin-content-docs/current/dev/under-the-hood.md rename to i18n/uk/docusaurus-plugin-content-docs/current/dev/under-the-hood.md index 2e5a49f8..b5f8e9bc 100644 --- a/i18n/ua/docusaurus-plugin-content-docs/current/dev/under-the-hood.md +++ b/i18n/uk/docusaurus-plugin-content-docs/current/dev/under-the-hood.md @@ -2,13 +2,13 @@ sidebar_position: 2 --- -# Under the Hood +# Під капотом -# Logic from start to window load +# Логіка з початку до завантаження вікна -![LunarVim initialization flowchart](./lunarvim_initialization.png 'LunarVim initialization flowchart') +![Блок-схема ініціалізації LunarVim](./lunarvim_initialization.png 'LunarVim initialization flowchart') -The above chart was made with the following markdown using mermaid markdown +Наведений вище графік був зроблений з наступною націнкою з використанням mermaid markdown Last updated Wed Aug 4 10:04:27 PM CEST 2021 ```mermaid diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/faq.md b/i18n/uk/docusaurus-plugin-content-docs/current/faq.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/faq.md rename to i18n/uk/docusaurus-plugin-content-docs/current/faq.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/_category_.json b/i18n/uk/docusaurus-plugin-content-docs/current/features/_category_.json similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/features/_category_.json rename to i18n/uk/docusaurus-plugin-content-docs/current/features/_category_.json diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/core-plugins-list.md b/i18n/uk/docusaurus-plugin-content-docs/current/features/core-plugins-list.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/features/core-plugins-list.md rename to i18n/uk/docusaurus-plugin-content-docs/current/features/core-plugins-list.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-frameworks/_category_.json b/i18n/uk/docusaurus-plugin-content-docs/current/features/supported-frameworks/_category_.json similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/features/supported-frameworks/_category_.json rename to i18n/uk/docusaurus-plugin-content-docs/current/features/supported-frameworks/_category_.json diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-frameworks/angular.md b/i18n/uk/docusaurus-plugin-content-docs/current/features/supported-frameworks/angular.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/features/supported-frameworks/angular.md rename to i18n/uk/docusaurus-plugin-content-docs/current/features/supported-frameworks/angular.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-frameworks/vue.md b/i18n/uk/docusaurus-plugin-content-docs/current/features/supported-frameworks/vue.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/features/supported-frameworks/vue.md rename to i18n/uk/docusaurus-plugin-content-docs/current/features/supported-frameworks/vue.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/_category_.json b/i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/_category_.json similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/_category_.json rename to i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/_category_.json diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/ansible.md b/i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/ansible.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/ansible.md rename to i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/ansible.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/c_cpp.md b/i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/c_cpp.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/c_cpp.md rename to i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/c_cpp.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/csharp.md b/i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/csharp.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/csharp.md rename to i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/csharp.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/go.md b/i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/go.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/go.md rename to i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/go.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/hcl.md b/i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/hcl.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/hcl.md rename to i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/hcl.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/java.md b/i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/java.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/java.md rename to i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/java.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/javascript.md b/i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/javascript.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/javascript.md rename to i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/javascript.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/json.md b/i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/json.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/json.md rename to i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/json.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/julia.md b/i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/julia.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/julia.md rename to i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/julia.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/lua.md b/i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/lua.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/lua.md rename to i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/lua.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/powershell.md b/i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/powershell.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/powershell.md rename to i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/powershell.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/python.md b/i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/python.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/python.md rename to i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/python.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/qml.md b/i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/qml.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/qml.md rename to i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/qml.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/ruby.md b/i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/ruby.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/ruby.md rename to i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/ruby.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/rust.md b/i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/rust.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/rust.md rename to i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/rust.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/scala.md b/i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/scala.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/scala.md rename to i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/scala.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/swift.md b/i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/swift.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/swift.md rename to i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/swift.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/terraform.md b/i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/terraform.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/terraform.md rename to i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/terraform.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/typescript.md b/i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/typescript.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/features/supported-languages/typescript.md rename to i18n/uk/docusaurus-plugin-content-docs/current/features/supported-languages/typescript.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/installation/_category_.json b/i18n/uk/docusaurus-plugin-content-docs/current/installation/_category_.json similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/installation/_category_.json rename to i18n/uk/docusaurus-plugin-content-docs/current/installation/_category_.json diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/installation/installation.md b/i18n/uk/docusaurus-plugin-content-docs/current/installation/installation.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/installation/installation.md rename to i18n/uk/docusaurus-plugin-content-docs/current/installation/installation.md diff --git a/i18n/ua/docusaurus-plugin-content-docs/current/installation/post-install.md b/i18n/uk/docusaurus-plugin-content-docs/current/installation/post-install.md similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/current/installation/post-install.md rename to i18n/uk/docusaurus-plugin-content-docs/current/installation/post-install.md diff --git a/i18n/uk/docusaurus-plugin-content-docs/current/troubleshooting/README.md b/i18n/uk/docusaurus-plugin-content-docs/current/troubleshooting/README.md new file mode 100644 index 00000000..0ff210f0 --- /dev/null +++ b/i18n/uk/docusaurus-plugin-content-docs/current/troubleshooting/README.md @@ -0,0 +1,151 @@ +# Установлення + +## General + +1. Make sure to check that you have a recent Neovim version with `luajit` support. The output of version information `nvim -v` should include a line for: `LuaJIT`. +2. Make sure all the dependencies listed in [Manual Install](#manual-install) are actually installed on your system. + +## Unable to run `lvim` + +Make sure that `lvim` is available and executable on your path. You can check the results of these commands to verify that + +```shell +which lvim +stat "$(which lvim)" +cat "$(which lvim)" +``` + +If you get errors with any of the above commands, then you need to either fix that manually or reinstall the binary again. + +```shell +cd # this will be in `~/.local/share/lunarvim/lvim` by default +bash utils/installer/install_bin.sh +``` + +## Getting errors after an update + +### Cache issues + +This might be the result of old cache files that need to be reset. LunarVim makes use of [impatient's](https://github.com/lewis6991/impatient.nvim) to optimize the startup procedure and deliver a snappy experience. + +1. while running LunarVim: `:LvimCacheReset` +2. from the CLI: `lvim +LvimCacheReset` + +### Plugin issue + +This could be due to multiple reasons, but most commonly it's a breaking change in some plugin, +or `git` refusing to pull an update to a plugin because it +[can't safely fast-forward the current branch](https://blog.sffc.xyz/post/185195398930/why-you-should-use-git-pull-ff-only-git-is-a). + +The easiest way to solve this is to manually update (a rebase is likely required) the offending plugin, +which should be located in Lazy's package-root at `$LUNARVIM_RUNTIME_DIR/site/pack/lazy`. + +Let's say it's `nvim-cmp` for example + +```vim +:! git -C "$LUNARVIM_RUNTIME_DIR/site/pack/lazy/opt/nvim-cmp" status +``` + +now check which commit is currently checked out + +```vim +:! git -C "$LUNARVIM_RUNTIME_DIR/site/pack/lazy/opt/nvim-cmp" log -1 +``` + +it should match the one in `$LUNARVIM_RUNTIME_DIR/lvim/snapshots/default.json`, but you can always restore the snapshot with `:LvimSyncCorePlugins` + +```vim +:! git -C "$LUNARVIM_RUNTIME_DIR/site/pack/lazy/opt/nvim-cmp" pull --rebase +``` + +### Помилка з Lazy.nvim + +Якщо ви не вносили жодних змін до жодного з плагінів, ви можете повністю видалити кореневий теку пакунка Lazy. + +```shell +LUNARVIM_RUNTIME_DIR="${LUNARVIM_RUNTIME_DIR:-$HOME/.local/share/lunarvim}" +rm -rf "$LUNARVIM_RUNTIME_DIR/site/pack/lazy" +``` + +тепер відкрийте `lvim`, плагіни мають почати встановлюватися, в іншому випадку запустіть `:Lazy sync`. + +## LunarVim повільний! + +### ви використовуєте `fish`? + +> По-перше, не рекомендується взагалі ставити fish як оболонку у Vim. Багато з Vim-плагінів виконують не сумісні з fish команди оболонки, тому ліпше встановити `/bin/sh` зазвичай краще, особливо якщо у вас немає вагомих причин змінювати його на fish. + +```lua +vim.opt.shell = "/bin/sh" +``` + +Дивіться [fish-shell/fish-shell#7004](https://github.com/fish-shell/fish-shell/issues/7004) та `:h 'shell'` для додаткової інформації. + +## Мовний сервер XXX не запускається! + +### Оновіть node + +Певні мовні сервери покладаються на новішу версію node. Оновіть версію node до останньої. + +### чи це перевизначено? + +Це може бути пов'язано з тим, що сервер [перевизначено](../configuration/language-features/language-servers.md#server-override) + +```lua +--- чи він взагалі в списку? +:lua print(vim.inspect(lvim.lsp.automatic_configuration.skipped_servers)) +``` + +Якщо це так, то вам потрібно або видалити його зі списку, або виконати `:LvimCacheReset` повторно + +```lua +vim.tbl_map(function(server) + return server ~= "emmet_ls" +end, lvim.lsp.automatic_configuration.skipped_servers) +``` + +або встановити [вручну](../configuration/language-features/language-servers.md#server-setup). + +### чи він підтримується [nvim-lsp-installer](https://github.com/williamboman/nvim-lsp-installer)? + +Будь-який сервер, який не відображається у `LspInstallInfo`, потрібно встановити вручну. + +### він хоча б показується в `:LspInfo`? + +Перевірте підказки для [налагоджувача nvim-lspconfig](https://github.com/neovim/nvim-lspconfig#debugging). + +## Занадто багато мовних серверів запускається одночасно! + +Чи [перевизначено](../configuration/language-features/language-servers.md#server-override) якийсь з цих серверів за замовчуванням? + +```lua +:lua print(vim.inspect(require("lvim.lsp.config").override)) +``` + +Якщо вони є, то ви використовуєте синтаксис перед [LunarVim#1813](https://github.com/LunarVim/LunarVim/pull/1813). + +```lua +-- this is the correct syntax since 3dd60bd +vim.list_extend(lvim.lsp.override, { "jsonls" }) +``` + +```lua +-- this the correct syntax since 198577a +vim.list_extend(lvim.lsp.automatic_configuration.skipped_servers, { "jsonls" }) +``` + +## Мій LunarVim має жахливий вигляд! + +- Переконайтеся, що ваш термінал підтримує 24-бітові кольори. Якщо ні, ви можете зіткнутися з деякими проблемами, пов'язаними з типовою схемою кольорів та іншими схемами кольорів. + + - Для отримання інформації про те, що таке 24-бітові кольори, а також для перевірки того, чи підтримує їх ваш термінал, скористайтеся цим корисним репозиторієм: https://github.com/termstandard/colors. + +- Іншою проблемою може бути `termguicolors`. Якщо це так, радимо вам звернутися до офіційної документації neovim: + + - Що таке `termguicolors`? див. + +- Іншим випадком може бути те, що ваша змінна `$TERM` змінює кольори у вашому терміналі. + + - Для цього ми радимо вам подивитися, чи є у когось ще така сама змінна `$TERM`, як у вас, і що вони зробили https://github.com/neovim/neovim/issues?q=label%3Atui+color + + diff --git a/i18n/uk/docusaurus-plugin-content-docs/current/troubleshooting/_category_.json b/i18n/uk/docusaurus-plugin-content-docs/current/troubleshooting/_category_.json new file mode 100644 index 00000000..687f952f --- /dev/null +++ b/i18n/uk/docusaurus-plugin-content-docs/current/troubleshooting/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Вирішення проблем", + "position": 5 +} diff --git a/i18n/ua/docusaurus-plugin-content-docs/version-1.2.json b/i18n/uk/docusaurus-plugin-content-docs/version-1.2.json similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/version-1.2.json rename to i18n/uk/docusaurus-plugin-content-docs/version-1.2.json diff --git a/i18n/ua/docusaurus-plugin-content-docs/version-1.3.json b/i18n/uk/docusaurus-plugin-content-docs/version-1.3.json similarity index 100% rename from i18n/ua/docusaurus-plugin-content-docs/version-1.3.json rename to i18n/uk/docusaurus-plugin-content-docs/version-1.3.json diff --git a/i18n/ua/docusaurus-theme-classic/navbar.json b/i18n/uk/docusaurus-theme-classic/navbar.json similarity index 100% rename from i18n/ua/docusaurus-theme-classic/navbar.json rename to i18n/uk/docusaurus-theme-classic/navbar.json From bf70337dbbb3f139f221b91d68240ea6b12d944b Mon Sep 17 00:00:00 2001 From: Nalitnyk Date: Tue, 2 Jan 2024 13:15:05 +0200 Subject: [PATCH 7/8] translation --- .idea/.gitignore | 8 ++ .idea/codeStyles/Project.xml | 51 +++++++ .idea/codeStyles/codeStyleConfig.xml | 5 + .idea/lunarvim.org.iml | 8 ++ .idea/modules.xml | 8 ++ .idea/vcs.xml | 6 + docs/beginners-guide/keybinds-overview.md | 23 +-- i18n/uk/code.json | 14 +- .../beginners-guide/keybinds-overview.md | 133 +++++++++--------- .../beginners-guide/plugins-overview.md | 40 +++--- .../current/configuration/README.md | 14 +- .../configuration/appearance/_category_.json | 2 +- .../configuration/appearance/colorschemes.md | 44 +++--- .../configuration/appearance/statusline.md | 58 ++++---- .../current/configuration/autocommands.md | 10 +- .../current/configuration/ftplugin.md | 12 +- .../current/configuration/keybindings.md | 2 +- .../language-features/custom-snippets.md | 32 ++--- .../language-features/language-features.md | 36 ++--- .../current/configuration/options.md | 48 +++---- .../current/configuration/plugins/plugins.md | 52 +++---- .../current/faq.md | 21 +-- .../current/troubleshooting/README.md | 36 ++--- .../version-1.2.json | 12 +- .../version-1.3.json | 2 +- 25 files changed, 388 insertions(+), 289 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/codeStyles/Project.xml create mode 100644 .idea/codeStyles/codeStyleConfig.xml create mode 100644 .idea/lunarvim.org.iml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 00000000..13566b81 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 00000000..a4af1b6d --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 00000000..79ee123c --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/lunarvim.org.iml b/.idea/lunarvim.org.iml new file mode 100644 index 00000000..61021940 --- /dev/null +++ b/.idea/lunarvim.org.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 00000000..e9990c93 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 00000000..35eb1ddf --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/docs/beginners-guide/keybinds-overview.md b/docs/beginners-guide/keybinds-overview.md index bdd4da27..778e96ca 100644 --- a/docs/beginners-guide/keybinds-overview.md +++ b/docs/beginners-guide/keybinds-overview.md @@ -11,13 +11,18 @@ or `` to show whichkey (keybinds popup) Also see: [vim mappings](https://devhints.io/vim) -**TIP:** `` is space by default, read [`:help keycodes`](https://neovim.io/doc/user/intro.html#keycodes) for more key names +**TIP:** `` is space by default, read [`:help keycodes`](https://neovim.io/doc/user/intro.html#keycodes) for +more key names **TIP:** `` is `alt` on Windows/Linux and `option` on macOS **TIP:** For macOS users: For the `option` key (`⌥`) to work as `` you may need to adjust some settings: -- For iTerm2: Select `Esc+` as the Option key setting in [ Preferences - Profiles - Keys ](https://github.com/LunarVim/lunarvim.org/pull/377#discussion_r1140747022) -- For Alacritty: Make sure you're on Alacritty version >= 0.12.0. In your `alacritty.yml` config file, set `window.option_as_alt` to `Both` or `OnlyLeft` \ `OnlyRight` per your preference (https://github.com/alacritty/alacritty/issues/62). + +- For iTerm2: Select `Esc+` as the Option key setting + in [ Preferences - Profiles - Keys ](https://github.com/LunarVim/lunarvim.org/pull/377#discussion_r1140747022) +- For Alacritty: Make sure you're on Alacritty version >= 0.12.0. In your `alacritty.yml` config file, + set `window.option_as_alt` to `Both` or `OnlyLeft` \ `OnlyRight` per your + preference (https://github.com/alacritty/alacritty/issues/62). **TIP:** Non-leader keybindings (for e.g. ``, mentioned below and others) can be viewed by pressing `` in the which-key main menu (first popup after pressing ``) @@ -25,7 +30,7 @@ by pressing `` in the which-key main menu (first popup after pressing ## Plugins | key | description | mode | -| ----------------------------- | ----------------------------------------------------------------------------------------------- | ------ | +|-------------------------------|-------------------------------------------------------------------------------------------------|--------| | `` | [whichkey](https://github.com/folke/which-key.nvim) (keybinds popup (shows up after 1s)) | normal | | `e` | [nvimtree](https://github.com/nvim-tree/nvim-tree.lua) (side file explorer) | normal | | `f` `s`(menu) | [telescope](https://github.com/nvim-telescope/telescope.nvim) (find files, grep text, and more) | normal | @@ -35,7 +40,7 @@ by pressing `` in the which-key main menu (first popup after pressing ## LSP | key | description | mode | -| ------ | -------------------------------------------- | ------ | +|--------|----------------------------------------------|--------| | `K` | hover information (double tap to get inside) | normal | | `KK` | move cursor inside `K` window | normal | | `gd` | go to definition | normal | @@ -49,7 +54,7 @@ by pressing `` in the which-key main menu (first popup after pressing ## Editing | key | description | mode | -| ----------- | ----------------- | -------------- | +|-------------|-------------------|----------------| | `/` | comment | normal, visual | | `gb` | block comment | visual | | `` | move line(s) up | normal, visual | @@ -58,7 +63,7 @@ by pressing `` in the which-key main menu (first popup after pressing ## Completion | key | description | mode | -| -------------------------- | -------------------------------------- | ------ | +|----------------------------|----------------------------------------|--------| | `` | show completion menu | insert | | `` `` | confirm | insert | | `` | abort | insert | @@ -72,7 +77,7 @@ by pressing `` in the which-key main menu (first popup after pressing ## Windows | key | description | mode | -| ----------- | ---------------------- | ------ | +|-------------|------------------------|--------| | `` | go to left window | normal | | `` | go to lower window | normal | | `` | go to upper window | normal | @@ -85,7 +90,7 @@ by pressing `` in the which-key main menu (first popup after pressing ## Miscellaneous | key | description | mode | -| ------------ | ------------------------- | ------ | +|--------------|---------------------------|--------| | `Lc` | edit config.lua | normal | | `h` | clear search highlighting | normal | | `sh` | search through `:help` | normal | diff --git a/i18n/uk/code.json b/i18n/uk/code.json index e1762a31..eda24e4b 100644 --- a/i18n/uk/code.json +++ b/i18n/uk/code.json @@ -60,7 +60,7 @@ "description": "The ARIA label for the blog pagination" }, "theme.blog.paginator.newerEntries": { - "message": "До новіших записи", + "message": "До новіших записів", "description": "The label used to navigate to the newer blog posts page (previous page)" }, "theme.blog.paginator.olderEntries": { @@ -84,11 +84,11 @@ "description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" }, "theme.blog.tagTitle": { - "message": "{nPosts} tagged with \"{tagName}\"", + "message": "{nPosts} помічено з \"{tagName}\"", "description": "The title of the page for a blog tag" }, "theme.tags.tagsPageLink": { - "message": "Переглянути всі Tags", + "message": "Переглянути всі мітки", "description": "The label of the link targeting the tag list page" }, "theme.colorToggle.ariaLabel": { @@ -104,7 +104,7 @@ "description": "The name for the light color mode" }, "theme.docs.breadcrumbs.home": { - "message": "Головна стоінка", + "message": "Головна сторінка", "description": "The ARIA label for the home page in the breadcrumbs" }, "theme.docs.breadcrumbs.navAriaLabel": { @@ -183,7 +183,7 @@ "description": "The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation" }, "theme.tags.tagsListLabel": { - "message": "Tags:", + "message": "Мітки:", "description": "The label alongside a tag list" }, "theme.AnnouncementBar.closeButtonAriaLabel": { @@ -211,7 +211,7 @@ "description": "The title attribute for toggle word wrapping button of code block lines" }, "theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel": { - "message": "Toggle the collapsible sidebar category '{label}'", + "message": "Перемкнути категорії бічної панелі, що згортається: '{label}'", "description": "The ARIA label to toggle the collapsible sidebar category" }, "theme.navbar.mobileLanguageDropdown.label": { @@ -281,7 +281,7 @@ "description": "The paragraph for empty search result" }, "theme.tags.tagsPageTitle": { - "message": "Tags", + "message": "Мітки", "description": "The title of the tag list page" } } diff --git a/i18n/uk/docusaurus-plugin-content-docs/current/beginners-guide/keybinds-overview.md b/i18n/uk/docusaurus-plugin-content-docs/current/beginners-guide/keybinds-overview.md index d165b279..e409b0ca 100644 --- a/i18n/uk/docusaurus-plugin-content-docs/current/beginners-guide/keybinds-overview.md +++ b/i18n/uk/docusaurus-plugin-content-docs/current/beginners-guide/keybinds-overview.md @@ -2,95 +2,100 @@ sidebar_position: 3 --- -# Keybinds overview +# Огляд прив'язок клавіш -Here's an overview of the most commonly used mappings. -It is not a complete list, you can find more by pressing `sk` to search through them, -or `` to show whichkey (keybinds popup) +Тут наведено огляд найпоширеніших прив'язок клавіш. +Це не повний список, ви можете знайти більше, натиснувши `sk` для пошуку, +або ``, щоб показати, з якою клавішею (спливаюче вікно зв'язок клавіш) -Also see: +Також перегляньте: [vim mappings](https://devhints.io/vim) -**Підказка:** `` is space by default, read [`:help keycodes`](https://neovim.io/doc/user/intro.html#keycodes) for more key names +**Підказка:** `` це типово пробіл, прочитайте [`:help keycodes`](https://neovim.io/doc/user/intro.html#keycodes) +для отримання додаткових імен клавіш +**Підказка:** `` це `alt` на Windows/Linux та `option` на macOS -**Підказка:** `` is `alt` on Windows/Linux and `option` on macOS +**Підказка:** Для користувачів macOS: щоб клавіша `option` (`⌥`) працювала як ``, вам може знадобитися змінити деякі +налаштування: -**Підказка:** For macOS users: For the `option` key (`⌥`) to work as `` you may need to adjust some settings: -- For iTerm2: Select `Esc+` as the Option key setting in [ Preferences - Profiles - Keys ](https://github.com/LunarVim/lunarvim.org/pull/377#discussion_r1140747022) -- For Alacritty: Make sure you're on Alacritty version >= 0.12.0. In your `alacritty.yml` config file, set `window.option_as_alt` to `Both` or `OnlyLeft` \ `OnlyRight` per your preference (https://github.com/alacritty/alacritty/issues/62). +- Для iTerm2: Виберіть `Esc+` як параметр клавіші Option + у [ Параметри - Профілі - Клавіші ](https://github.com/LunarVim/lunarvim.org/pull/377#discussion_r1140747022) +- Для Alacritty: Переконайтеся, що у вас версія Alacritty >= 0.12.0. У файлі конфігурації `alacritty.yml` встановіть для + параметра `window.option_as_alt` значення `Both` або `OnlyLeft` \ `OnlyRight` відповідно до ваших + уподобань (https://github.com/alacritty/alacritty/issues/62). -**Підказка:** Non-leader keybindings (for e.g. ``, mentioned below and others) can be viewed -by pressing `` in the which-key main menu (first popup after pressing ``) +**Підказка:** Нелідерні сполучення клавіш (наприклад, ``, згадані нижче та інші) можна переглянути +натиснувши `` у головному меню which-key (перше спливне вікно після натискання ``) ## Плагіни -| клавіші | опис | режим | -| ----------------------------- | ----------------------------------------------------------------------------------------------- | ------ | -| `` | [whichkey](https://github.com/folke/which-key.nvim) (спливаюче вікно з прив'язками клавіш (з'являється через 1 секунду)) | normal | -| `e` | [nvimtree](https://github.com/nvim-tree/nvim-tree.lua) (бічний файловий провідник) | normal | -| `f` `s`(menu) | [telescope](https://github.com/nvim-telescope/telescope.nvim) (знайти файли, текст та більше) | normal | -| `;` | [alpha](https://github.com/goolord/alpha-nvim) (інформаційна панель) | normal | -| `` `` | [toggleterm](https://github.com/akinsho/toggleterm.nvim) (термінал) | normal | +| клавіші | опис | режим | +|-------------------------------|--------------------------------------------------------------------------------------------------------------------------|------------| +| `` | [whichkey](https://github.com/folke/which-key.nvim) (спливаюче вікно з прив'язками клавіш (з'являється через 1 секунду)) | нормальний | +| `e` | [nvimtree](https://github.com/nvim-tree/nvim-tree.lua) (бічний файловий провідник) | нормальний | +| `f` `s`(menu) | [telescope](https://github.com/nvim-telescope/telescope.nvim) (знайти файли, текст та більше) | нормальний | +| `;` | [alpha](https://github.com/goolord/alpha-nvim) (інформаційна панель) | нормальний | +| `` `` | [toggleterm](https://github.com/akinsho/toggleterm.nvim) (термінал) | нормальний | ## LSP -| клавіші| опис | режим | -| ------ | -------------------------------------------- | ------ | -| `K` | hover information (double tap to get inside) | normal | -| `KK` | move cursor inside `K` window | normal | -| `gd` | go to definition | normal | -| `gD` | go to declaration | normal | -| `gr` | go to references | normal | -| `gI` | go to implementation | normal | -| `gs` | show signature help | normal | -| `gl` | show line diagnostics | normal | -| `glgl` | move cursor inside `gl` diagnostics window | normal | +| клавіші | опис | режим | +|---------|---------------------------------------------------------------------|------------| +| `K` | інформація при наведення (двічі натисніть, щоб потрапити всередину) | нормальний | +| `KK` | перемістит курсор всередину вікна `K` | нормальний | +| `gd` | перейти до визначення | нормальний | +| `gD` | перейти до оголошення | нормальний | +| `gr` | go to references | нормальний | +| `gI` | перейти до імплементації | нормальний | +| `gs` | show signature help | нормальний | +| `gl` | показати лінію діагностики | нормальний | +| `glgl` | перемістити курсор всередину `gl` діагностичного вікна | нормальний | ## Редагування -| клавіші | опис | режим | -| ----------- | ----------------- | -------------- | -| `/` | закоментувати | normal, visual | -| `gb` | block comment | visual | -| `` | перемістити лінію або лінії вгору | normal, visual | -| `` | перемістити лінію або лінії вниз | normal, visual | +| клавіші | опис | режим | +|-------------|-----------------------------------|------------------------| +| `/` | закоментувати | нормальний, візуальний | +| `gb` | закоментувати блок | візуальний | +| `` | перемістити лінію або лінії вгору | нормальний, візуальний | +| `` | перемістити лінію або лінії вниз | нормальний, візуальний | ## Completion -| клавіші | опис | режим | -| -------------------------- | -------------------------------------- | ------ | -| `` | show completion menu | insert | -| `` `` | підтвердити | insert | -| `` | скасувати | insert | -| `` `` `` | вибрати попередній предмет | insert | -| `` `` `` | вибрати наступний предмет | insert | -| `` | scroll docs up | insert | -| `` | scroll docs down | insert | -| `` `` | jump to next jumpable in a snippet | insert | -| `` | jump to previous jumpable in a snippet | insert | +| клавіші | опис | режим | +|----------------------------|----------------------------------------------|------------| +| `` | показати меню автозавершення | вставлення | +| `` `` | підтвердити | вставлення | +| `` | скасувати | вставлення | +| `` `` `` | вибрати попередній предмет | вставлення | +| `` `` `` | вибрати наступний предмет | вставлення | +| `` | прокрутити докуменацію вгору | вставлення | +| `` | прокрутити документацію вниз | вставлення | +| `` `` | перейти до наступного переходу у фрагменті | вставлення | +| `` | перейти до попереднього переходу у фрагменті | вставлення | ## Вікна -| клавіші | опис | режим | -| ----------- | ---------------------- | ------ | -| `` | перейти в ліве вікно | normal | -| `` | перейти в нижнє вікно | normal | -| `` | перейти в верхнє вікно | normal | -| `` | перейти в праве вікно | normal | -| `` | зменшити висоту вікна | normal | -| `` | збільшити висоту вікна | normal | -| `` | зменшити ширину вікна | normal | -| `` | збільшити ширину вікна | normal | +| клавіші | опис | режим | +|-------------|------------------------|------------| +| `` | перейти в ліве вікно | нормальний | +| `` | перейти в нижнє вікно | нормальний | +| `` | перейти в верхнє вікно | нормальний | +| `` | перейти в праве вікно | нормальний | +| `` | зменшити висоту вікна | нормальний | +| `` | збільшити висоту вікна | нормальний | +| `` | зменшити ширину вікна | нормальний | +| `` | збільшити ширину вікна | нормальний | ## Різне -| клавіші | опис | режим | -| ------------ | ------------------------- | ------ | -| `Lc` | редагувати config.lua | normal | -| `h` | очистити підсвітку пошуку | normal | -| `sh` | шукати в `:help` | normal | -| `sr` | відкрити нещодавні файли | normal | -| `pS` | список встановлених плагінів | normal | +| клавіші | опис | режим | +|--------------|------------------------------|------------| +| `Lc` | редагувати config.lua | нормальний | +| `h` | очистити підсвітку пошуку | нормальний | +| `sh` | шукати в `:help` | нормальний | +| `sr` | відкрити нещодавні файли | нормальний | +| `pS` | список встановлених плагінів | нормальний | ## [nvimtree](https://github.com/nvim-tree/nvim-tree.lua) (бічний файловий провідник) diff --git a/i18n/uk/docusaurus-plugin-content-docs/current/beginners-guide/plugins-overview.md b/i18n/uk/docusaurus-plugin-content-docs/current/beginners-guide/plugins-overview.md index 82f7a306..200c3942 100644 --- a/i18n/uk/docusaurus-plugin-content-docs/current/beginners-guide/plugins-overview.md +++ b/i18n/uk/docusaurus-plugin-content-docs/current/beginners-guide/plugins-overview.md @@ -2,54 +2,54 @@ sidebar_position: 2 --- -# Plugins overview +# Огляд плагінів -LunarVim supports a wide range of plugins to enhance the functionality of the Neovim text editor. This guide will introduce you to the basic core plugins that are part of LunarVim. +LunarVim підтримує широкий спектр плагінів для поліпшення функціональності текстового редактора Neovim. Цей посібник познайомить вас із основними плагінами ядра, які є частиною LunarVim. -## Core plugins +## Основні плагіни -LunarVim also includes a set of [core plugins](../../features/core-plugins-list) that are pre-configured and provided out of the box. These plugins offer essential features and functionality. +LunarVim також містить набір [основних плагінів](../../features/core-plugins-list), які попередньо налаштовані та надаються з коробки. Ці плагіни пропонують основні функції та функції. -These plugins are just a starting point, and there are many more available to explore. Remember to read the documentation and experiment with different plugins to find the ones that suit your workflow and preferences. +Ці плагіни є лише відправною точкою, і є багато інших доступних для вивчення. Не забувайте читати документацію та експериментувати з різними плагінами, щоби знайти ті, які відповідають вашому робочому процесу та вподобанням. -## Core plugin details +## Деталі основних плагінів -### Neovim LSP Configuration +### Налаштування Neovim LSP -The `nvim-lspconfig` plugin provides easy configuration for the built-in Language Server Protocol (LSP) client in Neovim. It simplifies the setup process for various language servers, enabling features like code completion, linting, and more. +Плагін `nvim-lspconfig` забезпечує легку конфігурацію для вбудованого клієнта Language Server Protocol (LSP) у Neovim. Це спрощує процес налаштування для різних мовних серверів, увімкнувши такі функції, як завершення коду, лінтування тощо. ### nvim-treesitter -`nvim-treesitter` brings advanced syntax highlighting and parsing capabilities to Neovim. It improves code highlighting accuracy, enables better indentation, and allows for various language-specific features. +`nvim-treesitter` надає Neovim розширені можливості підсвічування синтаксису та аналізу. Це поліпшує точність підсвічування коду, поліпшує відступи та дозволяє використовувати різні функції, специфічні для мови. -### Telescope +### Телескоп -`Telescope` is a highly extensible fuzzy finder plugin. It provides a powerful interface for searching files, buffers, and other resources within your Neovim environment. With its intuitive navigation and customizable options, it simplifies the process of finding and opening files. +`Telescope` — це плагін нечіткого шукача з можливістю розширення. Він забезпечує потужний інтерфейс для пошуку файлів, буферів та інших ресурсів у вашому середовищі Neovim. Завдяки інтуїтивно зрозумілій навігації та параметрам, які можна налаштувати, він спрощує процес пошуку та відкриття файлів. ### NvimTree -`NvimTree`, a widely embraced Neovim plugin, enriches the coding experience by seamlessly integrating a file explorer sidebar within the interface. This feature optimizes workflow efficiency and seamless file management. NvimTree offers an array of customization options, ensuring alignment with users' preferences. Employing common shortcuts like `o` to open files and `d` to toggle folders, NvimTree significantly streamlines the programming journey. +`NvimTree`, широко розповсюджений плагін Neovim, збагачує досвід кодування, бездоганно інтегруючи бічну панель провідника файлів в інтерфейс. Ця функція оптимізує ефективність робочого процесу та безперебійне керування файлами. NvimTree пропонує низку параметрів налаштування, забезпечуючи узгодження з уподобаннями користувачів. Використовуючи такі поширені комбінації клавіш, як `o` для відкриття файлів і `d` для перемикання папок, NvimTree значно спрощує процес програмування. ### Auto Pairs -`Auto Pairs` automatically inserts matching pairs of brackets, quotes, and other characters as you type. It saves time and reduces the chances of mismatched pairs. This plugin greatly enhances the editing experience and helps prevent syntax errors. +`Auto Pairs` автоматично вставляє відповідні пари дужок, лапок та інших символів під час введення. Це економить час і зменшує ймовірність невідповідності пар. Цей плагін значно покращує досвід редагування та допомагає запобігти синтаксичним помилкам. ### Comment.nvim -`Comment.nvim` simplifies the process of commenting and uncommenting code blocks. It supports various programming languages and provides keybindings for quickly toggling comments. This plugin makes it easy to annotate your code and improve readability. +`Comment.nvim` спрощує процес коментування та розкоментування блоків коду. Він підтримує різні мови програмування та забезпечує прив’язки клавіш для швидкого перемикання коментарів. Цей плагін полегшує коментування коду та покращує читабельність. ### Gitsigns -If you're using Git for version control, `Gitsigns` is a valuable plugin. It displays Git diff markers and signs within the gutter, indicating added, modified, or deleted lines. This helps you visualize changes and track the status of your files directly in Neovim. +Якщо ви використовуєте Git для контролю версій, `Gitsigns` є цінним плагіном. Він показує маркери відмінностей Git і знаки всередині поля, що вказує на додані, змінені або видалені рядки. Це допоможе вам візуалізувати зміни та відстежувати стан ваших файлів безпосередньо в Neovim. ### Lualine -`Lualine` is a customizable statusline plugin for Neovim. It allows you to display various information, such as the current mode, file path, and Git branch, in your statusline. With its simple configuration, you can personalize the appearance and contents of your statusline. +`Lualine` — це настроюваний плагін рядка стану для Neovim. Це дозволяє відображати різноманітну інформацію, таку як поточний режим, шлях до файлу та гілку Git, у вашому рядку стану. Завдяки простій конфігурації ви можете персоналізувати вигляд і вміст рядка стану. -### Which-key +### Який ключ -`Which-key` provides a popup that shows keybindings and their associated commands. It helps you discover and remember available keybindings within Neovim. This plugin is particularly useful for beginners who want to explore and learn the various functionalities offered by Neovim and its plugins. +`Which-key` надає спливне вікно, яке показує прив’язки клавіш і пов’язані з ними команди. Це допоможе вам знайти та запам’ятати доступні прив’язки клавіш у Neovim. Цей плагін особливо корисний для початківців, які хочуть вивчити та вивчити різноманітні функції, які пропонує Neovim та його плагіни. -## Installing and configuring plugins +## Установлення та налаштування плагінів -Plugins in LunarVim are managed using [folke/lazy.nvim](https://github.com/folke/lazy.nvim). To install plugins, you need to add entries to the `lvim.plugins` table in your `config.lua`. About configuring your plugins you can read a lot more at [this page](../../configuration/plugins). +Керування плагінами в LunarVim здійснюється за допомогою [folke/lazy.nvim](https://github.com/folke/lazy.nvim). Щоб установити плагіни, вам потрібно додати записи до таблиці `lvim.plugins` у вашому `config.lua`. Більше про налаштування плагінів ви можете прочитати на [цій сторінці](../../configuration/plugins). diff --git a/i18n/uk/docusaurus-plugin-content-docs/current/configuration/README.md b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/README.md index 1340868c..0711713c 100644 --- a/i18n/uk/docusaurus-plugin-content-docs/current/configuration/README.md +++ b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/README.md @@ -1,21 +1,21 @@ -# Configuration +# Конфігурація -You can configure LunarVim by using the configuration file located in `~/.config/lvim/config.lua`. +Ви можете налаштувати LunarVim за допомогою конфігураційного файлу, розташованого у `~/.config/lvim/config.lua`. -To get started quickly, copy the sample configuration file +Для швидкого початку роботи, скопіюйте приклад конфігураційного файлу ```bash cp ~/.local/share/lunarvim/lvim/utils/installer/config.example.lua ~/.config/lvim/config.lua ``` -Many LunarVim internal settings are exposed through the `lvim` global object. -To see a list of all available settings, run this command from either `~/.config/lvim/` or `~/.local/share/lunarvim/lvim` to generate an `lv-settings.lua` file. +Багато внутрішніх налаштувань LunarVim доступні за допомогою глобального об'єкта `lvim`. +Щоби переглянути список усіх доступних налаштувань, виконайте цю команду з `~/.config/lvim/` або `~/.local/share/lunarvim/lvim`, щоб згенерувати файл `lv-settings.lua`. ```bash lvim --headless +'lua require("lvim.utils").generate_settings()' +qa && sort -o lv-settings.lua{,} ``` -Here is a sample of the output. +Ось приклад вихідних даних. ```lua lvim.builtin.telescope.defaults.initial_mode = "insert" @@ -27,4 +27,4 @@ lvim.builtin.telescope.defaults.layout_config.width = 0.75 lvim.builtin.telescope.defaults.layout_strategy = "horizontal" ``` -If you want to keep launching LunarVim with the `nvim` command, add an alias entry to your shell's config file: `alias nvim=lvim`. To temporarily revert to the default nvim prefix it with a backslash `\nvim`. If you create this alias, you may also want to explicitly set your editor as well `export EDITOR='lvim'`. This will tell command line tools like git to use LunarVim as your editor. +Якщо ви хочете продовжувати запускати LunarVim командою `nvim`, додайте запис про псевдонім до конфігураційного файлу вашої оболонки: `alias nvim=lvim`. Щоб тимчасово повернутися до стандартного nvim, додайте до нього зворотний слеш `\nvim`. Якщо ви створюєте цей псевдонім, ви також можете явно вказати ваш редактор `export EDITOR='lvim'`. Це вкаже інструментам командного рядка, таким як git, використовувати LunarVim як ваш редактор. diff --git a/i18n/uk/docusaurus-plugin-content-docs/current/configuration/appearance/_category_.json b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/appearance/_category_.json index dd881223..f9f2cb9c 100644 --- a/i18n/uk/docusaurus-plugin-content-docs/current/configuration/appearance/_category_.json +++ b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/appearance/_category_.json @@ -1,4 +1,4 @@ { "position": 4, - "label": "Appearance" + "label": "Зовнішній вигляд" } diff --git a/i18n/uk/docusaurus-plugin-content-docs/current/configuration/appearance/colorschemes.md b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/appearance/colorschemes.md index 8778f0c8..8f9cfcf3 100644 --- a/i18n/uk/docusaurus-plugin-content-docs/current/configuration/appearance/colorschemes.md +++ b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/appearance/colorschemes.md @@ -2,31 +2,31 @@ sidebar_position: 1 --- -# Colorscheme +# Кольорова схема -## Switching colors +## Перемикання кольорів -To switch color schemes on the fly, use `sc` (`:Telescope colorscheme`) +Щоб перемикати колірні схеми на льоту, використовуйте `sc` (`:Telescope colorscheme`) -You can also press `sp` to cycle through colorschemes with a preview. +Ви також можете натиснути `sp`, щоб циклічно переходити між кольоровими схемами з попереднім переглядом. -To change the color scheme permanently, modify `config.lua` +Щоб остаточно змінити схему кольорів, змініть `config.lua` -```lua -lvim.colorscheme = "desert" +``` lua +lvim.colorscheme = "пустеля" ``` -## Installing colorschemes +## Встановлення схем кольорів -You can add any colorscheme you like. Just add a plugin with the colorscheme of your choice. For more information on installing plugins [look here.](../plugins/plugins.md) +Ви можете додати будь-яку кольорову схему, яка вам подобається. Просто додайте плагін із схемою кольорів на ваш вибір. Для отримання додаткової інформації про встановлення плагінів [перегляньте тут.](../plugins/plugins.md) -[This is a list](https://github.com/rockerBOO/awesome-neovim#colorscheme) of colorschemes with tree-sitter support +[Це список](https://github.com/rockerBOO/awesome-neovim#colorscheme)схем кольорів із підтримкою tree-sitter -## Customizing some colors +## Налаштування деяких кольорів -You can customize the highlight groups by overriding them in an autocommand. -To find the group you want to change use `leader s H` (`:Telescope highlights`), -`:TSHighlightCapturesUnderCursor` or `:Inspect` +Ви можете налаштувати групи виділення, замінивши їх у автокоманді. +Щоб знайти групу, яку ви хочете змінити, скористайтеся `leader s H` (`:Telescope highlights`),, +`:TSHighlightCapturesUnderCursor` бо `:Inspect` ```lua lvim.autocommands = { @@ -35,9 +35,9 @@ lvim.autocommands = { { pattern = "*", callback = function() - -- change `Normal` to the group you want to change - -- and `#ffffff` to the color you want - -- see `:h nvim_set_hl` for more options + -- змініть `Normal` на групу, яку ви хочете змінити + -- та `#ffffff` на бажаний колір + -- дивіться `:h nvim_set_hl` для більшої кількості налаштувань vim.api.nvim_set_hl(0, "Normal", { bg = "#ffffff", underline = false, bold = true }) end, }, @@ -45,7 +45,7 @@ lvim.autocommands = { } ``` -You can also override parameters in builtin colorscheme; e.g., to have winseparator colored in orange in tokyonight scheme: +Ви також можете змінити параметри у вбудованій схемі кольорів; наприклад, мати winseparator помаранчевого кольору в схемі tokyonight: ```lua lvim.colorscheme = "tokyonight" @@ -58,15 +58,15 @@ lvim.builtin.theme.tokyonight.options.on_highlights = function(hl, c) end ``` -## Transparent Windows +## Прозорі вікна -If you're using transparent windows enable this setting +Якщо ви використовуєте прозорі вікна, увімкніть це налаштування: ```lua lvim.transparent_window = true ``` -That enables the following settings +Це вмикає наступні налаштування: ```lua cmd "au ColorScheme * hi Normal ctermbg=none guibg=none" @@ -78,4 +78,4 @@ cmd "au ColorScheme * hi NvimTreeNormal ctermbg=none guibg=none" cmd "let &fcs='eob: '" ``` - + diff --git a/i18n/uk/docusaurus-plugin-content-docs/current/configuration/appearance/statusline.md b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/appearance/statusline.md index feeac963..149d9a85 100644 --- a/i18n/uk/docusaurus-plugin-content-docs/current/configuration/appearance/statusline.md +++ b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/appearance/statusline.md @@ -2,52 +2,52 @@ sidebar_position: 2 --- -# Statusline +# Рядок стану -LunarVim uses `lualine` as a default statusline. +LunarVim використовує `lualine` як рядок стану за умовчанням. -Configuration is same as that of lualine with full support. See [Lualine README.md](https://github.com/nvim-lualine/lualine.nvim/blob/master/README.md) +Конфігурація така ж, як у lualine з повною підтримкою. Перегляньте [Lualine README.md](https://github.com/nvim-lualine/lualine.nvim/blob/master/README.md) -In addition, LunarVim provides predefined styles(layout) and components. +Крім того, LunarVim надає попередньо визначені стилі (макет) і компоненти. -## Style +## Стиль -There are three style options LunarVim accepts, +LunarVim приймає три варіанти стилю, - lvim - > LunarVim's default layout + > Типовий макет LunarVim - default - > Lualine's default layout + > Типовий макет Lualine - none - > Empty layout + > Порожній макет -To set style other than `"lvim" style`, +Для встановлення іншого стилю ніж `"lvim" style`, ```lua -lvim.builtin.lualine.style = "default" -- or "none" +lvim.builtin.lualine.style = "default" -- або "none" ```
    -## Component +## Компонент -You can use any component that `lualine` provides and `LunarVim` provides. +Ви можете використовувати будь-який компонент, який надає `lualine` і `LunarVim`. -**LunarVim's components** +**Компоненти LunarVim** `mode`, `branch`, `filename`, `diff`, `python_env`, `diagnostics`, `treesitter`, `lsp`, `location`, `progress`, `spaces`, `encoding`, `filetype`, `scrollbar` -To set `lualine's "diff"` component to section c of `"default" style`, +Для встановлення компоненту `lualine's "diff"` до секції c `"default" style`, ```lua lvim.builtin.lualine.style = "default" lvim.builtin.lualine.sections.lualine_c = { "diff" } ``` -To set `LunarVim's "spaces" and "location"` components to section y and `lualine's "mode"` component to section a of `"lvim" style`, +Для встановлення компонентів "spaces" і "location" `LunarVim` до секції y, а компонент "mode" `lualine` до секції a стилю `"lvim", ```lua --- no need to set style = "lvim" +-- не треба встановлювати style = "lvim" local components = require("lvim.core.lualine.components") lvim.builtin.lualine.sections.lualine_a = { "mode" } @@ -59,21 +59,21 @@ lvim.builtin.lualine.sections.lualine_y = {
    -## Theme +## Тема -LunarVim automatically detects current colorscheme and set it as theme. +LunarVim автоматично визначає поточну колірну схему та встановлює її як тему. -To change your colorscheme, see [Colorscheme](./colorschemes.md) +Щоб змінити схему кольорів, перегляньте [Кольорова схема](./colorschemes.md) -If there is no matching theme, it will fallback to `"auto"` theme provided by lualine. +Якщо відповідної теми немає, буде використано тему `"auto", надану lualine. -In case you want to use different theme, set it manually, +Якщо ви хочете використовувати іншу тему, встановіть її вручну, ```lua lvim.builtin.lualine.options.theme = "gruvbox" ``` -To customize existing theme, +Для редагування наявної теми: ```lua local custom_gruvbox = require "lualine.themes.gruvbox_dark" @@ -85,7 +85,7 @@ custom_gruvbox.command.b = { fg = custom_gruvbox.command.a.bg, gui = "bold" } lvim.builtin.lualine.options.theme = custom_gruvbox ``` -To create your own theme, +Для створення власної теми: ```lua local colors = { @@ -127,11 +127,11 @@ lvim.builtin.lualine.options.theme = {
    -## Callback +## Зворотний вилкик (колбек) -Callback function is available for more flexibility. +Функція зворотного виклику доступна для більшої гнучкості. -It will run when configuration is done, +Вона запуститься після завершення налаштування, ```lua lvim.builtin.lualine.on_config_done = function(lualine) @@ -139,10 +139,10 @@ lvim.builtin.lualine.on_config_done = function(lualine) local components = require "core.lualine.components" config.sections.lualine_x[3].color.bg = "#2c2c2c" - table.remove(config.sections.lualine_x, 2) -- remove treesitter icon + table.remove(config.sections.lualine_x, 2) -- видалення іконки treesitter table.insert(config.sections.lualine_x, components.location) lualine.setup(config) end ``` -If you want to go way beyond with configuration, check [jimcornmell's setup](https://github.com/jimcornmell/lvim/blob/main/lua/user/lualine.lua) as a reference. +Якщо ви хочете вийти за межі конфігурації, перевірте [налаштування jimcornmell](https://github.com/jimcornmell/lvim/blob/main/lua/user/lualine.lua) як довідник. diff --git a/i18n/uk/docusaurus-plugin-content-docs/current/configuration/autocommands.md b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/autocommands.md index 323d5272..cbccc120 100644 --- a/i18n/uk/docusaurus-plugin-content-docs/current/configuration/autocommands.md +++ b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/autocommands.md @@ -2,9 +2,9 @@ sidebar_position: 6 --- -# Autocommands +# Автокоманди -To set up autocommands use the native nvim api `vim.api.nvim_create_autocmd`, or use the helper Lunarvim table `lvim.autocommands` which will be passed to [define_autocmds()](https://github.com/LunarVim/lunarvim/blob/3475f7675d8928b49c85878dfc2912407de57342/lua/lvim/core/autocmds.lua#L177) automatically. +Щоб налаштувати автокоманди, використовуйте власний API nvim `vim.api.nvim_create_autocmd` або скористайтеся допоміжною таблицею Lunarvim `lvim.autocommands`, яка буде передана в [define_autocmds()](https://github.com/LunarVim/lunarvim/blob/3475f7675d8928b49c85878dfc2912407de57342/lua/lvim/core/autocmds.lua#L177) автоматично. ```lua lvim.autocommands = { @@ -18,9 +18,9 @@ lvim.autocommands = { } ``` -This will run a command at a given event for the given filetype. +Це запустить команду під час певної події для заданого типу файлу. -An example using the nvim api could look like this: +Приклад використання nvim API може виглядати так: ```lua vim.api.nvim_create_autocmd("BufEnter", { @@ -30,7 +30,7 @@ vim.api.nvim_create_autocmd("BufEnter", { }) ``` -You can also add lua callbacks +Ви також можете додати зворотні виклики(колбеки) lua ```lua lvim.autocommands = { diff --git a/i18n/uk/docusaurus-plugin-content-docs/current/configuration/ftplugin.md b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/ftplugin.md index b4ff0cc7..39e27db3 100644 --- a/i18n/uk/docusaurus-plugin-content-docs/current/configuration/ftplugin.md +++ b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/ftplugin.md @@ -2,16 +2,16 @@ sidebar_position: 7 --- -# FTPlugin (filetype plugin) +# FTP-плагін (плагін типу файлу) -## Description +## Опис -From `:h ftplugin` +З `:h ftplugin` -> A filetype plugin is like a global plugin, except that it sets options and -> defines mappings for the current buffer only. +> Плагін типу файлу схожий на глобальний плагін, за винятком того, що він встановлює параметри та +> визначає відображення лише для поточного буфера. -Example for setting specific `shiftwidth` and `tabstop` that only apply for `C` file-types. +Приклад встановлення певних `shiftwidth` і `tabstop`, які застосовуються лише для типів файлів `C`. ```lua -- create a file at $LUNARVIM_CONFIG_DIR/after/ftplugin/c.lua diff --git a/i18n/uk/docusaurus-plugin-content-docs/current/configuration/keybindings.md b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/keybindings.md index d89572a1..10b9bca9 100644 --- a/i18n/uk/docusaurus-plugin-content-docs/current/configuration/keybindings.md +++ b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/keybindings.md @@ -160,7 +160,7 @@ lvim.builtin.which_key.mappings = { } ``` - + ## [toggleterm](https://github.com/akinsho/toggleterm.nvim) (terminal) mappings diff --git a/i18n/uk/docusaurus-plugin-content-docs/current/configuration/language-features/custom-snippets.md b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/language-features/custom-snippets.md index 0e094779..8ba55bf5 100644 --- a/i18n/uk/docusaurus-plugin-content-docs/current/configuration/language-features/custom-snippets.md +++ b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/language-features/custom-snippets.md @@ -2,21 +2,21 @@ sidebar_position: 3 --- -# Custom snippets +# Користувацькі фрагменти -## Description +## Опис -You can add your own snippets to LunarVim. +Ви можете додавати власні фрагменти до LunarVim. -Custom snippets can be defined as json or lua. +Спеціальні фрагменти можна визначити як json або lua. -### json version +### JSON-версія -First create a folder : `~/.config/lvim/snippets/` next to your `config.lua` +Спочатку створіть папку: `~/.config/lvim/snippets/` поруч із вашим `config.lua` -Then in there you need at least 2 files. +Тоді вам потрібно принаймні 2 файли. -The first file describes where your snippets are : +Перший файл описує, де знаходяться ваші фрагменти: `package.json` : @@ -38,7 +38,7 @@ The first file describes where your snippets are : } ``` -For each language, create a file like this : +Для кожної мови створіть такий файл: `python.json` : @@ -52,13 +52,13 @@ For each language, create a file like this : } ``` -You should be able to expand `hello` into `print("Hello, World!")` +ви повинні мати можливість розгорнути `hello` на `print("hello, world!")` -### lua version +### Lua-версія -First create a folder named `luasnippets` next to your `config.lua`. For example `~/.config/lvim/luasnippets/` +Спочатку створіть папку з назвою `luasnippets` поруч із вашим `config.lua`. Наприклад `~/.config/lvim/luasnippets/` -Then, inside that folder, create a lua file named with the filetype you want to create snippets for. For example, for creating snippets for lua, create a (redundant, but correct) file named `lua.lua`. Then you put your files there like this: +Потім у цій папці створіть файл lua з назвою типу файлу, для якого ви хочете створити фрагменти. Наприклад, щоб створити фрагменти для lua, створіть (зайвий, але правильний) файл під назвою `lua.lua`. Потім ви розмістите туди свої файли так: ```lua return { @@ -66,7 +66,7 @@ return { } ``` -LuaSnip is able to hot-reload snippets defined in lua when you save them, but you may need to restart LunarVim the first time you create the snippet files. -Please note that LuaSnip injects a bunch of utility globals when it loads your snippets (in this example the `s` and `t` functions), so you don't need to care about requiring or defining them. To get more detailed information and examples please read the [LuaSnip docs about this topic](https://github.com/L3MON4D3/LuaSnip/blob/master/DOC.md#lua) +LuaSnip може зробити гаряче перезавантажування фрагментів, визначених в lua, коли ви їх зберігаєте, але вам може знадобитися перезапустити LunarVim під час першого створення файлів фрагментів. +Будь ласка, зверніть увагу, що LuaSnip додає купу службових глобальних даних, коли він завантажує ваші фрагменти (у цьому прикладі функції `s` і `t`), тому вам не потрібно піклуватися про їхні огошення або визначення. Для отримання детальнішої інформації та прикладів, прочитайте [документацію LuaSnip на цю тему](https://github.com/L3MON4D3/LuaSnip/blob/master/DOC.md#lua) -### TODO: snipmate version +### TODO: snipmate-версія diff --git a/i18n/uk/docusaurus-plugin-content-docs/current/configuration/language-features/language-features.md b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/language-features/language-features.md index 27d2b4b4..ba777bb8 100644 --- a/i18n/uk/docusaurus-plugin-content-docs/current/configuration/language-features/language-features.md +++ b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/language-features/language-features.md @@ -1,33 +1,33 @@ -# Language features +# Мовні можливості -LunarVim strives to have support for all major languages. This is made possible by utilizing some of the great plugins -in Neovim's ecosystem. Such plugins are [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) for LSP support, and -[Null-ls](https://github.com/jose-elias-alvarez/null-ls.nvim) to provide support for handling external formatters, such -as [prettier](https://github.com/prettier/prettier) and [eslint](https://github.com/eslint/eslint). Furthermore, -LunarVim integrates with [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) to provide rich syntax -highlighting and other language parsing magic. +LunarVim прагне підтримувати всі основні мови. Це стало можливим завдяки використанню деяких чудових плагінів +з екосистеми Neovim. Такими плагінами є [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) для підтримки LSP та +[Null-ls](https://github.com/jose-elias-alvarez/null-ls.nvim) для забезпечення підтримки роботи із зовнішніми форматерами, такими як +як [prettier](https://github.com/prettier/prettier) та [eslint](https://github.com/eslint/eslint). Крім того, +LunarVim інтегрується з [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) для забезпечення багатого синтаксису +підсвічування та інші магії синтаксичного розбору. -If your language is not supported please check the following links and file a ticket. +Якщо ваша мова не підтримується, будь ласка, перевірте наступні посилання і створіть тікет. -- Check if LSP support is available in the lspconfig [repo](https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md) -- Check if your linter or formatter is available in the null-ls [repo](https://github.com/jose-elias-alvarez/null-ls.nvim/blob/main/doc/BUILTINS.md) -- Check if your syntax is supported in the treesitter [repo](https://github.com/nvim-treesitter/nvim-treesitter) +- Перевірте, чи доступна підтримка LSP у lspconfig [репозиторії](https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md) +- Перевірте, чи доступний ваш лінтер або форматувальник у null-ls [репозиторії](https://github.com/jose-elias-alvarez/null-ls.nvim/blob/main/doc/BUILTINS.md) +- Перевірте, чи підтримується ваш синтаксис у treesitter [репозиторії](https://github.com/nvim-treesitter/nvim-treesitter) ## At a glance -You can use the following commands to check some information about any language servers that you have configured. +За допомогою наведених нижче команд ви можете перевірити деяку інформацію про будь-які мовні сервери, які ви налаштували. - `:LvimInfo` - - Contains information about all the servers attached to the buffer you are editing and their current capabilities, such as formatting and go-to definition support. It also includes information related to any linters and formatters that are, or can be, configured. - - keybind: `Li` + - Містить інформацію про всі сервери, приєднані до буфера, який ви редагуєте, та їхні поточні можливості, як-от форматування і підтримка переходу до визначення. Він також містить інформацію про всі лінтери і форматувальник, які налаштовано або може бути налаштовано. + - сполучення клавіш: `Li` - `:LspInfo` - - Contains basic information about all the servers that are running. - - keybind: `li` + - Містить основну інформацію про всі запущені сервери. + - сполучення клавіш: `li` - `:Mason` - - Contains information about all the servers that you can manage with [mason](https://github.com/williamboman/mason.nvim). - - keybind: `lI` + - Містить інформацію про всі сервери, якими ви можете керувати за допомогою [mason](https://github.com/williamboman/mason.nvim). + - сполучення клавіш: `lI` diff --git a/i18n/uk/docusaurus-plugin-content-docs/current/configuration/options.md b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/options.md index b24d52dd..df5a4c73 100644 --- a/i18n/uk/docusaurus-plugin-content-docs/current/configuration/options.md +++ b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/options.md @@ -2,55 +2,55 @@ sidebar_position: 1 --- -# Options +# Параметри -[Options](#neovim-options) are used to configure the editor, -[variables](#neovim-variables) to configure vimscript plugins. +[Параметри](#neovim-options) використовуються для налаштування редактора, +[змінні](#neovim-variables) для налаштуванняплагінів vimscript. -## Neovim options +## Параметри Neovim -See [`:help lua-guide-options`](https://neovim.io/doc/user/lua-guide.html#lua-guide-options) to learn more. +Дивіться [`:help lua-guide-options`](https://neovim.io/doc/user/lua-guide.html#lua-guide-options) для подробиць. -- To set options: +- Для встановлення параметрів: ```lua vim.opt.{option} = {value} ``` -- To get options: +- Для отримання параметрів: ```lua vim.opt.{option}:get() ``` -### Example options +### Приклади параметрів ```lua -vim.opt.cmdheight = 2 -- more space in the neovim command line for displaying messages -vim.opt.guifont = "monospace:h17" -- the font used in graphical neovim applications -vim.opt.shiftwidth = 2 -- the number of spaces inserted for each indentation -vim.opt.tabstop = 2 -- insert 2 spaces for a tab -vim.opt.relativenumber = true -- relative line numbers -vim.opt.wrap = true -- wrap lines +vim.opt.cmdheight = 2 -- більше місця в командному рядку neovim для відображення повідомлень +vim.opt.guifont = "monospace:h17" -- шрифт, який використовується в графічних застосунках neovim +vim.opt.shiftwidth = 2 -- кількість пробілів, вставлених для кожного відступу +vim.opt.tabstop = 2 -- вставляти 2 пробіли для tab +vim.opt.relativenumber = true -- відносні номери рядків +vim.opt.wrap = true -- переніс рядків -- use treesitter folding vim.opt.foldmethod = "expr" vim.opt.foldexpr = "nvim_treesitter#foldexpr()" ``` - + -## Neovim variables +## Змінні Neovim -See [`:help lua-guide-variables`](https://neovim.io/doc/user/lua-guide.html#lua-guide-variables) to learn more. +Дивіться [`:help lua-guide-variables`](https://neovim.io/doc/user/lua-guide.html#lua-guide-variables) для подробиц. -- To get and set variables use: +- Для отримання та встановлення змінних використовуйте: ```lua - vim.g.{name} -- global variables (g:) - vim.b.{name} -- variables for the current buffer (b:) - vim.w.{name} -- variables for the current window (w:) - vim.t.{name} -- variables for the current tabpage (t:) - vim.v.{name} -- predefined Vim variables (v:) - vim.env.{name} -- environment variables defined in the editor session + vim.g.{name} -- глобальні змінні (g:) + vim.b.{name} -- змінні для поточного буферу (b:) + vim.w.{name} -- змінні для поточного вікна (w:) + vim.t.{name} -- змінні для поточної вкладки (t:) + vim.v.{name} -- передвстановлені Vim змінні (v:) + vim.env.{name} -- змінні оточення, що визначені в сесії редактора ``` diff --git a/i18n/uk/docusaurus-plugin-content-docs/current/configuration/plugins/plugins.md b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/plugins/plugins.md index 2348e7d9..db6ed23e 100644 --- a/i18n/uk/docusaurus-plugin-content-docs/current/configuration/plugins/plugins.md +++ b/i18n/uk/docusaurus-plugin-content-docs/current/configuration/plugins/plugins.md @@ -1,20 +1,20 @@ -# Plugins +# Плагіни -Plugins are managed by [folke/lazy.nvim](https://github.com/folke/lazy.nvim). +Плагінами керує [folke/lazy.nvim](https://github.com/folke/lazy.nvim). :::tip -use `:Lazy` to see a list of all installed plugins! +використовуйте `:Lazy`, щоби побачити список усіх встановлених плагінів! ::: -# Installing plugins +# Встановлення плагінів -User plugins can be installed by adding entries to the `lvim.plugins` table in -your `config.lua` file, saving or manually invoking `LvimReload` will trigger -lazy to sync all the plugins in that table. +Користувацькі плагіни можна встановити, додавши записи до таблиці lvim.plugins у +ваш файл `config.lua`, зберігши або вручну викликавши `LvimReload` запустить +плагін lazy для синхронізації всіх плагінів в цій таблиці. -Example: +приклад: ```lua lvim.plugins = { @@ -30,33 +30,33 @@ lvim.plugins = { { "nvim-neorg/neorg", ft = "norg", -- lazy-load on filetype - config = true, -- run require("neorg").setup() + config = true, -- запускає require("neorg").setup() }, } ``` :::tip -You can find all available options [here](https://github.com/folke/lazy.nvim#-plugin-spec) -or in lunarvim: `:help lazy.nvim-plugin-spec` -You can find more examples [here](https://github.com/folke/lazy.nvim#examples) +Ви можете знайти всі доступні налаштування [тут](https://github.com/folke/lazy.nvim#-plugin-spec) +або в lunarvim: `:help lazy.nvim-plugin-spec` +Ви можете знайти [тут](https://github.com/folke/lazy.nvim#examples) більше прикладів ::: :::info -Removing a plugin from the `lvim.plugins` table removes it from your configuration but not your system. To remove them completely, run `:Lazy clean` +Видалення плагіна з таблиці `lvim.plugins` видаляє його з вашої конфігурації, але не з вашої системи. Щоб видалити їх повністю, запустіть `:Lazy clean` ::: -## Core plugins +## Основні плагіни -The configurations for core plugins are accessible through the `lvim.builtin` table. +Конфігурації для основних плагінів доступні через таблицю `lvim.builtin`. -### Disabling core plugins +### Вимкнення основних плагінів -Most should contain an `active` attribute that can be set to `false` to disable -the plugin +Більшість має містити атрибут `active`, який можна встановити на `false`, щоби вимкнути +плагін ```lua lvim.builtin.alpha.active = false @@ -65,14 +65,14 @@ lvim.builtin.dap.active = false :::caution -Disabling a plugin will not take effect until you restart lvim. +Вимкнення плагіна не почне діяти, доки ви не перезапустите lvim. ::: -### Configuring core plugins +### Налаштування основних плагінів -To configure a builtin plugin, edit options in `lvim.builtin.`. -You can press `` to get autocomplete suggestions to explore these settings. +Щоби налаштувати вбудований плагін, відредагуйте параметри в `lvim.builtin.`. +Ви можете натиснути ``, щоб отримати пропозиції автозавершення для вивчення цих налаштувань. ```lua lvim.builtin.cmp.completion.keyword_length = 2 @@ -82,14 +82,14 @@ lvim.builtin.telescope.defaults.layout_config.preview_cutoff = 75 :::tip -A plugin's README (and `docs/` folder if it exists) typically contain excellent documentation, so it may be worthwhile to create an alias if you use them often. +README плагіна (та папка `docs/`, якщо вона існує) зазвичай містить чудову документацію, тому, можливо, варто створити скоровчення, якщо ви часто використовуєте його. ::: -### Pinning +### Закріплення -Versions of core plugins are pinned for better stability, -you can disable pinning by setting an environment variable `$LVIM_DEV_MODE`, e.g. can be defined in `~/.local/bin/lvim` or in your shell's rc file: +Версії основних плагінів закріплені для кращої стабільності, +Ви можете вимкнути закріплення, встановивши змінну середовища `$LVIM_DEV_MODE`, наприклад, можна визначити в `~/.local/bin/lvim` або у файлі rc вашої оболонки: ```bash export LVIM_DEV_MODE=1 diff --git a/i18n/uk/docusaurus-plugin-content-docs/current/faq.md b/i18n/uk/docusaurus-plugin-content-docs/current/faq.md index 1ebbc8b1..932696ad 100644 --- a/i18n/uk/docusaurus-plugin-content-docs/current/faq.md +++ b/i18n/uk/docusaurus-plugin-content-docs/current/faq.md @@ -3,13 +3,13 @@ sidebar: auto sidebar_position: 4 --- -# FAQ +# ЧаПИ -## How do I [..] ? +## Як зробити [..] ? -### How do I use LunarVim in Neovide? +### Як використовувати LunarVim у Neovide? -Use this bash script to start neovide +Використовуйте цей bash-скрипт для запуску neovide ```bash #!/usr/bin/env bash @@ -22,17 +22,18 @@ export LUNARVIM_BASE_DIR="${LUNARVIM_BASE_DIR:-"$HOME/.local/share/lunarvim/lvim exec neovide -- -u "$LUNARVIM_BASE_DIR/init.lua" "$@" ``` -## What is `null-ls` and why do you use it? +## Що таке `null-ls` та чому ви його використовуєте? -For C/C++ we have the `clangd` by `llvm` which can also use its siblings' abilities `clang-tidy` and `clang-format` to support additional linting and formatting. But something like `pyright` doesn't support formatting, so we use `null-ls` to register `black` and `flake8` for example, as a "fake" language server. +Для C/C++ ми маємо `clangd` з `llvm`, який також може використовувати можливості своїх братів `clang-tidy` і `clang-format` для підтримки додаткового лінтування і форматування. Але щось на кшталт `pyright` не підтримує форматування, тому ми використовуємо `null-ls` для реєстрації `black` і `flake8`, наприклад, як "фальшивого" мовного сервера. -Since it's not using a separate binary it's called `null-ls` or _null language server_. +оскільки він не використовує окремий бінарний файл, він називається `null-ls` або _нульовий мовний сервер_. -## Where can I find some example configs? -If you want ideas for configuring LunarVim you can look at these repositories. +## Де я можу знайти приклади конфігурацій? -- starter.lvim [https://github.com/LunarVim/starter.lvim](https://github.com/LunarVim/starter.lvim) (a collection of language specific lunarvim configurations) +Якщо маєте ідеї для налаштування LunarVim, то перегляньте ці репозиторії. + +- starter.lvim [https://github.com/LunarVim/starter.lvim](https://github.com/LunarVim/starter.lvim) (збірка мовних конфігурацій lunarvim) - Chris - [https://github.com/ChristianChiarulli/lvim](https://github.com/ChristianChiarulli/lvim) - Abouzar - [https://github.com/abzcoding/lvim](https://github.com/abzcoding/lvim) - Nelson - [https://github.com/rebuilt/lvim](https://github.com/rebuilt/lvim) diff --git a/i18n/uk/docusaurus-plugin-content-docs/current/troubleshooting/README.md b/i18n/uk/docusaurus-plugin-content-docs/current/troubleshooting/README.md index 0ff210f0..5ac197a0 100644 --- a/i18n/uk/docusaurus-plugin-content-docs/current/troubleshooting/README.md +++ b/i18n/uk/docusaurus-plugin-content-docs/current/troubleshooting/README.md @@ -5,9 +5,10 @@ 1. Make sure to check that you have a recent Neovim version with `luajit` support. The output of version information `nvim -v` should include a line for: `LuaJIT`. 2. Make sure all the dependencies listed in [Manual Install](#manual-install) are actually installed on your system. -## Unable to run `lvim` +## Невдається запустити `lvim` + +Переконайтеся, що `lvim` є доступною і виконуваною командою на вашому шляху. Ви можете перевірити результати виконання цих команд, щоб переконатися, що -Make sure that `lvim` is available and executable on your path. You can check the results of these commands to verify that ```shell which lvim @@ -15,44 +16,45 @@ stat "$(which lvim)" cat "$(which lvim)" ``` -If you get errors with any of the above commands, then you need to either fix that manually or reinstall the binary again. +Якщо ви отримуєте помилки при виконанні будь-якої з наведених вище команд, вам потрібно або виправити її вручну, або перевстановити бінарник заново. ```shell cd # this will be in `~/.local/share/lunarvim/lvim` by default bash utils/installer/install_bin.sh ``` -## Getting errors after an update +## Помилки виникли після оноввлення + +### Проблеми з кешем -### Cache issues +Це може бути наслідком старих файлів кешу, які потрібно скинути. lunarvim використовує [impatient](https://github.com/lewis6991/impatient.nvim) для оптимізації процедури запуску та швидкої роботи. -This might be the result of old cache files that need to be reset. LunarVim makes use of [impatient's](https://github.com/lewis6991/impatient.nvim) to optimize the startup procedure and deliver a snappy experience. +1. під час запуску lunarvim: `:lvimcachereset`. +2. за допомогою команди в терміналі: `lvim +lvimcachereset`. -1. while running LunarVim: `:LvimCacheReset` -2. from the CLI: `lvim +LvimCacheReset` +### Проблема з плагіном -### Plugin issue +Це може бути пов'язано з багатьма причинами, але найчастіше це збої в роботі якогось плагіна, +або `git` відмовляється витягувати оновлення до плагіна, оскільки він +[не може безпечно перейти на поточну гілку за допомогою fast-forward](https://blog.sffc.xyz/post/185195398930/why-you-should-use-git-pull-ff-only-git-is-a). -This could be due to multiple reasons, but most commonly it's a breaking change in some plugin, -or `git` refusing to pull an update to a plugin because it -[can't safely fast-forward the current branch](https://blog.sffc.xyz/post/185195398930/why-you-should-use-git-pull-ff-only-git-is-a). -The easiest way to solve this is to manually update (a rebase is likely required) the offending plugin, -which should be located in Lazy's package-root at `$LUNARVIM_RUNTIME_DIR/site/pack/lazy`. +Найпростіший спосіб вирішити цю проблему - вручну оновити (ймовірно, знадобиться rebase) зламаний плагін, +який має бути розташований у корені пакунка Lazy за адресою `$LUNARVIM_RUNTIME_DIR/site/pack/lazy`. -Let's say it's `nvim-cmp` for example +Скажімо, це може бути, наприклад, `nvim-cmp`. ```vim :! git -C "$LUNARVIM_RUNTIME_DIR/site/pack/lazy/opt/nvim-cmp" status ``` -now check which commit is currently checked out +тепер перевірте поточний комміт ```vim :! git -C "$LUNARVIM_RUNTIME_DIR/site/pack/lazy/opt/nvim-cmp" log -1 ``` -it should match the one in `$LUNARVIM_RUNTIME_DIR/lvim/snapshots/default.json`, but you can always restore the snapshot with `:LvimSyncCorePlugins` +він має збігатися з тим, що знаходиться в `$lunarvim_runtime_dir/lvim/snapshots/default.json`, але ви завжди можете відновити знімок(snapshot) за допомогою `:lvimsynccoreplugins`. ```vim :! git -C "$LUNARVIM_RUNTIME_DIR/site/pack/lazy/opt/nvim-cmp" pull --rebase diff --git a/i18n/uk/docusaurus-plugin-content-docs/version-1.2.json b/i18n/uk/docusaurus-plugin-content-docs/version-1.2.json index 1488965e..466e76c2 100644 --- a/i18n/uk/docusaurus-plugin-content-docs/version-1.2.json +++ b/i18n/uk/docusaurus-plugin-content-docs/version-1.2.json @@ -4,27 +4,27 @@ "description": "The label for version 1.2" }, "sidebar.tutorialSidebar.category.Configuration": { - "message": "Configuration", + "message": "Налаштування", "description": "The label for category Configuration in sidebar tutorialSidebar" }, "sidebar.tutorialSidebar.category.Languages": { - "message": "Languages", + "message": "Мови", "description": "The label for category Languages in sidebar tutorialSidebar" }, "sidebar.tutorialSidebar.category.Frameworks": { - "message": "Frameworks", + "message": "Фреймворки", "description": "The label for category Frameworks in sidebar tutorialSidebar" }, "sidebar.tutorialSidebar.category.Plugins": { - "message": "Plugins", + "message": "Плагіни", "description": "The label for category Plugins in sidebar tutorialSidebar" }, "sidebar.tutorialSidebar.category.For Developers": { - "message": "For Developers", + "message": "Для розробників", "description": "The label for category For Developers in sidebar tutorialSidebar" }, "sidebar.tutorialSidebar.category.Community": { - "message": "Community", + "message": "Спільнота", "description": "The label for category Community in sidebar tutorialSidebar" } } diff --git a/i18n/uk/docusaurus-plugin-content-docs/version-1.3.json b/i18n/uk/docusaurus-plugin-content-docs/version-1.3.json index c895da50..f19da5c2 100644 --- a/i18n/uk/docusaurus-plugin-content-docs/version-1.3.json +++ b/i18n/uk/docusaurus-plugin-content-docs/version-1.3.json @@ -36,7 +36,7 @@ "description": "The label for category Supported frameworks in sidebar tutorialSidebar" }, "sidebar.tutorialSidebar.category.Supported languages": { - "message": "Підтримувані МП", + "message": "Підтримувані мови", "description": "The label for category Supported languages in sidebar tutorialSidebar" }, "sidebar.tutorialSidebar.category.Community": { From 2d52b767cc073d32d15407490cebccf7e34d1721 Mon Sep 17 00:00:00 2001 From: Nalitnyk Date: Tue, 2 Jan 2024 13:24:22 +0200 Subject: [PATCH 8/8] deleted useless edited files --- .idea/.gitignore | 8 ---- .idea/codeStyles/Project.xml | 51 ----------------------- .idea/codeStyles/codeStyleConfig.xml | 5 --- .idea/lunarvim.org.iml | 8 ---- .idea/modules.xml | 8 ---- .idea/vcs.xml | 6 --- ; | 4 -- docs/beginners-guide/keybinds-overview.md | 23 ++++------ 8 files changed, 9 insertions(+), 104 deletions(-) delete mode 100644 .idea/.gitignore delete mode 100644 .idea/codeStyles/Project.xml delete mode 100644 .idea/codeStyles/codeStyleConfig.xml delete mode 100644 .idea/lunarvim.org.iml delete mode 100644 .idea/modules.xml delete mode 100644 .idea/vcs.xml delete mode 100644 ; diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 13566b81..00000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Editor-based HTTP Client requests -/httpRequests/ -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml deleted file mode 100644 index a4af1b6d..00000000 --- a/.idea/codeStyles/Project.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml deleted file mode 100644 index 79ee123c..00000000 --- a/.idea/codeStyles/codeStyleConfig.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/lunarvim.org.iml b/.idea/lunarvim.org.iml deleted file mode 100644 index 61021940..00000000 --- a/.idea/lunarvim.org.iml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index e9990c93..00000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 35eb1ddf..00000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/; b/; deleted file mode 100644 index 899cfd03..00000000 --- a/; +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Для розробників", - "position": 8 -} diff --git a/docs/beginners-guide/keybinds-overview.md b/docs/beginners-guide/keybinds-overview.md index 778e96ca..bdd4da27 100644 --- a/docs/beginners-guide/keybinds-overview.md +++ b/docs/beginners-guide/keybinds-overview.md @@ -11,18 +11,13 @@ or `` to show whichkey (keybinds popup) Also see: [vim mappings](https://devhints.io/vim) -**TIP:** `` is space by default, read [`:help keycodes`](https://neovim.io/doc/user/intro.html#keycodes) for -more key names +**TIP:** `` is space by default, read [`:help keycodes`](https://neovim.io/doc/user/intro.html#keycodes) for more key names **TIP:** `` is `alt` on Windows/Linux and `option` on macOS **TIP:** For macOS users: For the `option` key (`⌥`) to work as `` you may need to adjust some settings: - -- For iTerm2: Select `Esc+` as the Option key setting - in [ Preferences - Profiles - Keys ](https://github.com/LunarVim/lunarvim.org/pull/377#discussion_r1140747022) -- For Alacritty: Make sure you're on Alacritty version >= 0.12.0. In your `alacritty.yml` config file, - set `window.option_as_alt` to `Both` or `OnlyLeft` \ `OnlyRight` per your - preference (https://github.com/alacritty/alacritty/issues/62). +- For iTerm2: Select `Esc+` as the Option key setting in [ Preferences - Profiles - Keys ](https://github.com/LunarVim/lunarvim.org/pull/377#discussion_r1140747022) +- For Alacritty: Make sure you're on Alacritty version >= 0.12.0. In your `alacritty.yml` config file, set `window.option_as_alt` to `Both` or `OnlyLeft` \ `OnlyRight` per your preference (https://github.com/alacritty/alacritty/issues/62). **TIP:** Non-leader keybindings (for e.g. ``, mentioned below and others) can be viewed by pressing `` in the which-key main menu (first popup after pressing ``) @@ -30,7 +25,7 @@ by pressing `` in the which-key main menu (first popup after pressing ## Plugins | key | description | mode | -|-------------------------------|-------------------------------------------------------------------------------------------------|--------| +| ----------------------------- | ----------------------------------------------------------------------------------------------- | ------ | | `` | [whichkey](https://github.com/folke/which-key.nvim) (keybinds popup (shows up after 1s)) | normal | | `e` | [nvimtree](https://github.com/nvim-tree/nvim-tree.lua) (side file explorer) | normal | | `f` `s`(menu) | [telescope](https://github.com/nvim-telescope/telescope.nvim) (find files, grep text, and more) | normal | @@ -40,7 +35,7 @@ by pressing `` in the which-key main menu (first popup after pressing ## LSP | key | description | mode | -|--------|----------------------------------------------|--------| +| ------ | -------------------------------------------- | ------ | | `K` | hover information (double tap to get inside) | normal | | `KK` | move cursor inside `K` window | normal | | `gd` | go to definition | normal | @@ -54,7 +49,7 @@ by pressing `` in the which-key main menu (first popup after pressing ## Editing | key | description | mode | -|-------------|-------------------|----------------| +| ----------- | ----------------- | -------------- | | `/` | comment | normal, visual | | `gb` | block comment | visual | | `` | move line(s) up | normal, visual | @@ -63,7 +58,7 @@ by pressing `` in the which-key main menu (first popup after pressing ## Completion | key | description | mode | -|----------------------------|----------------------------------------|--------| +| -------------------------- | -------------------------------------- | ------ | | `` | show completion menu | insert | | `` `` | confirm | insert | | `` | abort | insert | @@ -77,7 +72,7 @@ by pressing `` in the which-key main menu (first popup after pressing ## Windows | key | description | mode | -|-------------|------------------------|--------| +| ----------- | ---------------------- | ------ | | `` | go to left window | normal | | `` | go to lower window | normal | | `` | go to upper window | normal | @@ -90,7 +85,7 @@ by pressing `` in the which-key main menu (first popup after pressing ## Miscellaneous | key | description | mode | -|--------------|---------------------------|--------| +| ------------ | ------------------------- | ------ | | `Lc` | edit config.lua | normal | | `h` | clear search highlighting | normal | | `sh` | search through `:help` | normal |