Skip to content

pygaiwan/neovim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 

Repository files navigation

Configuration

This repository provides a modular and extensible Neovim configuration using Lazy.nvim and other plugins. Below is the structure of the configuration and the details of the plugins used.

📂 File Structure

❯ tree
.
├── init.lua
├── lazy-lock.json
└── lua
    └── pygaiwan
        ├── init.lua
        ├── keymaps.lua
        ├── lazy
        │   ├── languages
        │   │   ├── formatting.lua
        │   │   ├── linting.lua
        │   │   ├── lspconfig
        │   │   │   ├── configs
        │   │   │   │   ├── biome.lua
        │   │   │   │   ├── lua_ls.lua
        │   │   │   │   ├── pyright.lua
        │   │   │   │   └── ts_ls.lua
        │   │   │   └── utils.lua
        │   │   ├── lsp.lua
        │   │   ├── python
        │   │   │   ├── debugger.lua
        │   │   │   ├── debugger_ui.lua
        │   │   │   └── venvselect.lua
        │   │   ├── testing.lua
        │   │   └── treesitter.lua
        │   ├── ui
        │   │   ├── indentscope.lua
        │   │   ├── key_suggestion.lua
        │   │   ├── lualine.lua
        │   │   ├── mini_icons.lua
        │   │   ├── nord.lua
        │   │   ├── todo_comments.lua
        │   │   └── trouble.lua
        │   └── vim_utils
        │       ├── gitdiff.lua
        │       ├── harpoon.lua
        │       ├── lazygit.lua
        │       ├── telescope.lua
        │       └── zenmode.lua
        ├── lazy_init.lua
        ├── vim_keymaps.lua
        └── vim_options.lua

🛠️ Configuration Overview

🚀 Initialization

  • pygaiwan.init: Loads all the non-Lazy configurations.
  • pygaiwan.lazy_init: Initializes Lazy.nvim plugins and imports the following modules:
    • ui: Plugins that change or improve the Neovim UI.
    • vim_utils: Plugins that enhance Neovim functionality.
    • languages: Plugins for language-generic features.
    • languages.python: Plugins specific to Python.

📦 Plugin Details

📋 Plugin Manager

🎨 ui Plugins

🔧 vim_utils Plugins

🌐 languages Plugins

🐍 python Plugins


✨ Adding Support for a New Language

Follow these steps to add support for a new language:

  1. Add the language to the ensure_installed variable in languages.treesitter.
  2. Add the language in languages.lsp.
  3. (Optional) If the LSP requires specific configurations, add them in the handlers section.
  4. Add the required formatter to formatters_by_ft in languages.formatting.
  5. (Optional) Add non-standard formatter configurations in formatters. Check Conform.nvim Formatters for existing configurations.
  6. Add the linter to linters_by_ft in languages.linting.
  7. (Optional) Add non-standard linter configurations if needed. Check nvim-lint Linters for references.
  8. (Optional) If a debugger is available, create a folder for the language and add the debugger plugin. Import the new folder in lazy_init.
  9. (Optional) Add a testing adapter in languages.testing, if available.

About

Neovim configuration

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages