{"id":30141281,"url":"https://github.com/edwinhere/nvim","last_synced_at":"2025-08-11T04:36:22.275Z","repository":{"id":278527309,"uuid":"933964537","full_name":"edwinhere/nvim","owner":"edwinhere","description":"My Neovim Config","archived":false,"fork":false,"pushed_at":"2025-06-26T08:34:40.000Z","size":33,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-26T08:37:15.649Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/edwinhere.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-17T03:37:41.000Z","updated_at":"2025-06-26T08:34:43.000Z","dependencies_parsed_at":"2025-06-26T08:27:03.062Z","dependency_job_id":"e1a54cfd-5019-4082-9c40-bd5975e9509f","html_url":"https://github.com/edwinhere/nvim","commit_stats":null,"previous_names":["edwinhere/nvim"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/edwinhere/nvim","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edwinhere%2Fnvim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edwinhere%2Fnvim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edwinhere%2Fnvim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edwinhere%2Fnvim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/edwinhere","download_url":"https://codeload.github.com/edwinhere/nvim/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edwinhere%2Fnvim/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269832167,"owners_count":24482301,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-11T02:00:10.019Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-08-11T04:36:18.341Z","updated_at":"2025-08-11T04:36:22.258Z","avatar_url":"https://github.com/edwinhere.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Neovim Configuration Keybindings\n\nThis document outlines all keybindings and their functionalities in this Neovim configuration.\n\n## LSP (Language Server Protocol)\n\n*These keybindings are provided by lsp-zero default mappings*\n\n| Keybinding   | Mode   | Description               |\n|--------------|--------|---------------------------|\n| `K`          | Normal | Hover documentation       |\n| `gd`         | Normal | Go to definition         |\n| `gD`         | Normal | Go to declaration        |\n| `gi`         | Normal | Go to implementation     |\n| `gr`         | Normal | Show references          |\n| `gs`         | Normal | Show signature help      |\n| `\u003cleader\u003ern` | Normal | Rename symbol            |\n| `\u003cleader\u003eca` | Normal | Code actions             |\n| `\u003cleader\u003ef`  | Normal | Format file (LSP)        |\n| `[d`         | Normal | Previous diagnostic      |\n| `]d`         | Normal | Next diagnostic          |\n\n## Autocompletion\n\n| Keybinding   | Mode   | Description              |\n|--------------|--------|--------------------------|\n| `\u003cC-Space\u003e`  | Insert | Trigger autocompletion   |\n| `\u003cCR\u003e`       | Insert | Confirm selection        |\n| `\u003cC-f\u003e`      | Insert | Jump forward in snippet  |\n| `\u003cC-b\u003e`      | Insert | Jump backward in snippet |\n\n## Telescope\n\n| Keybinding   | Mode   | Description              |\n|--------------|--------|--------------------------|\n| `\u003cleader\u003ee`  | Normal | Find files              |\n| `\u003cleader\u003egf` | Normal | Git files               |\n| `\u003cleader\u003ef`  | Normal | Live grep (Telescope)   |\n| `\u003cleader\u003eb`  | Normal | Buffers                 |\n| `\u003cleader\u003e?`  | Normal | Help tags               |\n| `\u003cleader\u003em`  | Normal | Man pages               |\n| `\u003cF1\u003e`       | Normal | Colorscheme picker      |\n| `\u003cleader\u003er`  | Normal | Registers               |\n| `\u003cleader\u003ek`  | Normal | Keymaps                 |\n| `\u003cleader\u003et`  | Normal | Treesitter              |\n\n## File Explorer (NvimTree)\n\n| Keybinding | Mode   | Description                |\n|------------|--------|----------------------------|\n| `\u003cF3\u003e`     | Normal | Toggle file explorer      |\n| `\u003cF2\u003e`     | Normal | Find current file in tree |\n\n## Git\n\n| Keybinding   | Mode   | Description        |\n|--------------|--------|--------------------|\n| `\u003cleader\u003egg` | Normal | Open LazyGit      |\n\n## Buffer Navigation\n\n| Keybinding   | Mode   | Description           |\n|--------------|--------|-----------------------|\n| `\u003cleader\u003ez`  | Normal | Previous buffer       |\n| `\u003cleader\u003eq`  | Normal | Previous buffer       |\n| `\u003cleader\u003ex`  | Normal | Next buffer          |\n| `\u003cleader\u003ew`  | Normal | Next buffer          |\n| `\u003cleader\u003ec`  | Normal | Close buffer         |\n\n## Window Management\n\n| Keybinding   | Mode   | Description           |\n|--------------|--------|-----------------------|\n| `\u003cleader\u003eh`  | Normal | Split horizontal     |\n| `\u003cleader\u003ev`  | Normal | Split vertical       |\n| `\u003cC-h\u003e`      | Normal | Move to left window  |\n| `\u003cC-j\u003e`      | Normal | Move to bottom window|\n| `\u003cC-k\u003e`      | Normal | Move to top window   |\n| `\u003cC-l\u003e`      | Normal | Move to right window |\n\n## Terminal\n\n| Keybinding   | Mode   | Description        |\n|--------------|--------|--------------------|\n| `\u003cleader\u003esh` | Normal | Open terminal      |\n| `\u003cC-[\u003e`      | Terminal | Escape to normal mode |\n| `\u003cC-w\u003eh`     | Terminal | Move to left window |\n| `\u003cC-w\u003ej`     | Terminal | Move to bottom window |\n| `\u003cC-w\u003ek`     | Terminal | Move to top window |\n| `\u003cC-w\u003el`     | Terminal | Move to right window |\n\n## Clipboard Operations\n\n| Keybinding   | Mode   | Description        |\n|--------------|--------|--------------------|\n| `YY`         | Normal | Copy to clipboard  |\n| `\u003cleader\u003ep`  | Normal | Paste from clipboard|\n| `XX`         | Normal | Cut to clipboard   |\n\n## Visual Mode Operations\n\n| Keybinding | Mode   | Description                |\n|------------|--------|----------------------------|\n| `J`        | Visual | Move block down            |\n| `K`        | Visual | Move block up              |\n| `\u003c`        | Visual | Indent left (keeps selection) |\n| `\u003e`        | Visual | Indent right (keeps selection)|\n\n## Search\n\n| Keybinding        | Mode   | Description        |\n|-------------------|--------|--------------------|\n| `n`               | Normal | Next search result (centered) |\n| `N`               | Normal | Previous search result (centered) |\n| `\u003cleader\u003e\u003cspace\u003e` | Normal | Clear search highlighting |\n\n## AI Assistant (Claude Code)\n\n| Keybinding   | Mode   | Description                    |\n|--------------|--------|--------------------------------|\n| `\u003cC-,\u003e`      | Normal | Toggle Claude Code terminal    |\n| `\u003cleader\u003ecc` | Normal | Continue Claude Code conversation |\n| `\u003cleader\u003ecv` | Normal | Start Claude Code in verbose mode |\n| `\u003cleader\u003ecn` | Normal | Start new Claude Code chat     |\n\n## AI Pair Programming (Aider)\n\n| Keybinding   | Mode   | Description                    |\n|--------------|--------|--------------------------------|\n| `\u003cleader\u003eAo` | Normal | Open Aider                     |\n| `\u003cleader\u003eAm` | Normal | Add modified files to Aider    |\n| `\u003cleader\u003eaf` | Normal | Add files to Aider (supports multi-selection with Tab) |\n\n## Go Development\n\n### Building \u0026 Running\n| Keybinding   | Mode   | Description        |\n|--------------|--------|--------------------| \n| `\u003cleader\u003egb` | Normal | Build Go project   |\n| `\u003cleader\u003egr` | Normal | Run Go main        |\n\n### Testing\n| Keybinding   | Mode   | Description              |\n|--------------|--------|--------------------------|\n| `\u003cleader\u003egt` | Normal | Run Go tests             |\n| `\u003cleader\u003egT` | Normal | Run Go test function     |\n| `\u003cleader\u003egc` | Normal | Toggle Go coverage       |\n| `\u003cleader\u003etn` | Normal | Run nearest test         |\n| `\u003cleader\u003etf` | Normal | Run file tests          |\n| `\u003cleader\u003ets` | Normal | Test summary             |\n\n### Debugging\n| Keybinding   | Mode   | Description        |\n|--------------|--------|--------------------| \n| `\u003cleader\u003egd` | Normal | Go Debug continue  |\n| `\u003cleader\u003egD` | Normal | Toggle breakpoint  |\n\n### Go Commands\n- `:GoTest` - Run tests\n- `:GoTestFunc` - Test function under cursor\n- `:GoBuild` - Build with error list\n- `:GoRun` - Run current file\n- `:GoCoverage` - Show coverage\n- `:GoDoc` - Show documentation\n- `:GoRename` - Rename symbol\n- `:GoFillStruct` - Fill struct literals\n- `:GoInstallBinaries` - Install Go tools\n\n### Features\n- Auto-formatting with `goimports` on save\n- Static analysis via gopls\n- Syntax highlighting for Go constructs\n- Unused parameter detection\n- Import management\n- Code completion and diagnostics\n\n## Haskell Development\n\n### Building \u0026 Running\n| Keybinding   | Mode   | Description              |\n|--------------|--------|--------------------------|\n| `\u003cleader\u003ehc` | Normal | Compile with GHC         |\n| `\u003cleader\u003ehr` | Normal | Run with runhaskell      |\n| `\u003cleader\u003ehi` | Normal | Open GHCi REPL          |\n\n### Cabal Projects\n| Keybinding   | Mode   | Description        |\n|--------------|--------|--------------------|\n| `\u003cleader\u003ecb` | Normal | Build project      |\n| `\u003cleader\u003ect` | Normal | Run tests          |\n| `\u003cleader\u003ecr` | Normal | Run executable     |\n\n### Stack Projects\n| Keybinding   | Mode   | Description        |\n|--------------|--------|--------------------|\n| `\u003cleader\u003esb` | Normal | Stack build        |\n| `\u003cleader\u003est` | Normal | Stack test         |\n| `\u003cleader\u003esr` | Normal | Stack run          |\n| `\u003cleader\u003esg` | Normal | Stack GHCi         |\n\n### Formatting\n| Keybinding   | Mode   | Description              |\n|--------------|--------|--------------------------|\n| `\u003cleader\u003ehf` | Normal | Format with Ormolu       |\n| `\u003cleader\u003ef`  | Normal | LSP formatting           |\n\n### Features\n- Haskell Language Server (HLS) integration\n- Advanced syntax highlighting (forall, mdo, proc, patterns)\n- Auto-indentation with hindent (runs on save)\n- Ormolu formatting support\n- Real-time error diagnostics\n- Code completion and hover documentation\n- Cabal and Stack project support\n\n### Prerequisites\nInstall Haskell toolchain:\n```bash\nghcup install ghc\nghcup install cabal\nghcup install stack\nghcup install hls\ncabal install ormolu\ncabal install hindent\n```\n\n## Node.js/JavaScript/TypeScript Development\n\n### Package Management\n| Keybinding   | Mode   | Description              |\n|--------------|--------|--------------------------|\n| `\u003cleader\u003ens` | Normal | Show package info        |\n| `\u003cleader\u003enc` | Normal | Hide package info        |\n| `\u003cleader\u003ent` | Normal | Toggle package info      |\n| `\u003cleader\u003enu` | Normal | Update package           |\n| `\u003cleader\u003end` | Normal | Delete package           |\n| `\u003cleader\u003eni` | Normal | Install package          |\n| `\u003cleader\u003enp` | Normal | Change package version   |\n\n### NPM Commands\n| Keybinding   | Mode   | Description              |\n|--------------|--------|--------------------------|\n| `\u003cleader\u003enr` | Normal | Run npm script           |\n| `\u003cleader\u003enI` | Normal | npm install              |\n| `\u003cleader\u003enT` | Normal | npm test                 |\n| `\u003cleader\u003enS` | Normal | npm start                |\n| `\u003cleader\u003enB` | Normal | npm run build            |\n| `\u003cleader\u003enD` | Normal | npm run dev              |\n\n### Testing\n| Keybinding   | Mode   | Description              |\n|--------------|--------|--------------------------|\n| `\u003cleader\u003ejt` | Normal | Run nearest JS test      |\n| `\u003cleader\u003ejf` | Normal | Run JS file tests        |\n| `\u003cleader\u003ejs` | Normal | JS Test summary          |\n\n### Debugging\n| Keybinding   | Mode   | Description              |\n|--------------|--------|--------------------------|\n| `\u003cleader\u003ejd` | Normal | JS Debug continue        |\n| `\u003cleader\u003ejD` | Normal | JS Toggle breakpoint     |\n| `\u003cleader\u003ejr` | Normal | JS Debug REPL            |\n\n### Formatting\n| Keybinding   | Mode   | Description              |\n|--------------|--------|--------------------------|\n| `\u003cleader\u003ejp` | Normal | Format with Prettier     |\n\n### Features\n- **TypeScript Language Server** with inlay hints for parameters, types, and return values\n- **ESLint integration** for real-time linting and code actions\n- **Prettier formatting** with customizable rules and auto-format on save\n- **Package.json management** with visual dependency info and version updates\n- **Jest and Vitest test runners** with nearest test execution\n- **VS Code JS Debug** adapter for Node.js debugging with breakpoints\n- **Auto-formatting on save** for JS/TS files\n- **Enhanced syntax highlighting** for JavaScript, TypeScript, JSX, TSX\n- **Spell checking** with cspell (when available)\n- **null-ls integration** for additional formatting and linting tools\n- **Graceful degradation** - Features only activate when plugins are installed\n\n### Prerequisites\nInstall Node.js toolchain:\n```bash\n# Install Node.js via nvm (recommended)\ncurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash\nnvm install --lts\nnvm use --lts\n\n# Install global development tools\nnpm install -g typescript eslint prettier @typescript-eslint/parser @typescript-eslint/eslint-plugin\nnpm install -g ts-node jest @types/node\nnpm install -g js-debug-adapter  # For debugging support\n\n# Optional: Install spell checker\nnpm install -g cspell\n```\n\n## Python Development\n\n### Python Execution\n| Keybinding   | Mode   | Description              |\n|--------------|--------|--------------------------|\n| `\u003cleader\u003epr` | Normal | Run Python file         |\n| `\u003cleader\u003epi` | Normal | Run Python interactive  |\n| `\u003cleader\u003epp` | Normal | Run Python3 file        |\n| `\u003cleader\u003epR` | Normal | Open Python REPL        |\n\n### Virtual Environment Management\n| Keybinding   | Mode   | Description              |\n|--------------|--------|--------------------------|\n| `\u003cleader\u003epv` | Normal | Activate virtual environment |\n\n### Package Management\n| Keybinding   | Mode   | Description              |\n|--------------|--------|--------------------------|\n| `\u003cleader\u003epI` | Normal | pip install             |\n| `\u003cleader\u003epU` | Normal | pip upgrade             |\n| `\u003cleader\u003epS` | Normal | pip show                |\n| `\u003cleader\u003epF` | Normal | pip freeze to requirements.txt |\n| `\u003cleader\u003epR` | Normal | pip install from requirements.txt |\n\n### Django Development\n| Keybinding   | Mode   | Description              |\n|--------------|--------|--------------------------|\n| `\u003cleader\u003edm` | Normal | Django migrate          |\n| `\u003cleader\u003edmm`| Normal | Django makemigrations   |\n| `\u003cleader\u003edr` | Normal | Django runserver        |\n| `\u003cleader\u003eds` | Normal | Django shell            |\n| `\u003cleader\u003edt` | Normal | Django test             |\n| `\u003cleader\u003edc` | Normal | Django collectstatic    |\n\n### Testing\n| Keybinding   | Mode   | Description              |\n|--------------|--------|--------------------------|\n| `\u003cleader\u003ept` | Normal | Run pytest              |\n| `\u003cleader\u003eptv`| Normal | Run pytest verbose      |\n| `\u003cleader\u003eptf`| Normal | Run pytest on current file |\n| `\u003cleader\u003eptc`| Normal | Run pytest with coverage |\n| `\u003cleader\u003epnt`| Normal | Run nearest Python test (neotest) |\n| `\u003cleader\u003epnf`| Normal | Run Python file tests (neotest) |\n| `\u003cleader\u003epns`| Normal | Python Test summary (neotest) |\n| `\u003cleader\u003epno`| Normal | Show test output (neotest) |\n\n### Debugging\n| Keybinding   | Mode   | Description              |\n|--------------|--------|--------------------------|\n| `\u003cleader\u003epd` | Normal | Python Debug continue   |\n| `\u003cleader\u003epD` | Normal | Python Toggle breakpoint |\n| `\u003cleader\u003epdr`| Normal | Python Debug REPL       |\n| `\u003cleader\u003epdl`| Normal | Python Debug run last   |\n\n### Formatting \u0026 Linting\n| Keybinding   | Mode   | Description              |\n|--------------|--------|--------------------------|\n| `\u003cleader\u003epb` | Normal | Format with Black        |\n| `\u003cleader\u003epB` | Normal | Format all files with Black |\n| `\u003cleader\u003epl` | Normal | Lint with ruff           |\n| `\u003cleader\u003epL` | Normal | Lint all files with ruff |\n| `\u003cleader\u003epf` | Normal | Fix with ruff            |\n\n### Jupyter Notebook\n| Keybinding   | Mode   | Description              |\n|--------------|--------|--------------------------|\n| `\u003cleader\u003epj` | Normal | Convert to Jupyter notebook |\n| `\u003cleader\u003epJ` | Normal | Convert from Jupyter notebook |\n\n### Features\n- **Pyright Language Server** for type checking and intelligent code completion\n- **Ruff integration** for fast linting and code formatting\n- **Black formatter** with auto-format on save\n- **pytest integration** with neotest for visual test running\n- **debugpy support** for Python debugging with breakpoints\n- **Django/FastAPI/Flask** debug configurations\n- **Virtual environment detection** and management\n- **Auto-indentation** with 4-space tabs (PEP 8 compliant)\n- **Code folding** based on indentation\n- **Jupyter notebook** conversion support\n- **REPL integration** for interactive development\n- **Graceful degradation** - Features only activate when tools are installed\n\n### Prerequisites\nInstall Python development tools:\n```bash\n# Install Python (if not already installed)\n# macOS: brew install python\n# Ubuntu: sudo apt install python3 python3-pip python3-venv\n# Windows: Download from python.org\n\n# Install Python development tools\npip install --upgrade pip\npip install debugpy pytest black ruff pyright\npip install jupytext  # Optional: for Jupyter notebook support\n\n# For Django development\npip install django\n\n# For FastAPI development  \npip install fastapi uvicorn\n\n# For Flask development\npip install flask\n\n# Create and activate virtual environment (recommended)\npython -m venv venv\nsource venv/bin/activate  # On Windows: venv\\Scripts\\activate\n```\n\n## Java Development\n\n### Building \u0026 Running\n| Keybinding   | Mode   | Description              |\n|--------------|--------|--------------------------|\n| `\u003cleader\u003ejb` | Normal | Build Java project      |\n| `\u003cleader\u003ejr` | Normal | Run Java project        |\n| `\u003cleader\u003ejc` | Normal | Compile current Java file |\n| `\u003cleader\u003ejR` | Normal | Run current Java file    |\n\n### Maven Commands\n| Keybinding   | Mode   | Description              |\n|--------------|--------|--------------------------|\n| `\u003cleader\u003emc` | Normal | Maven clean              |\n| `\u003cleader\u003emC` | Normal | Maven compile            |\n| `\u003cleader\u003emt` | Normal | Maven test               |\n| `\u003cleader\u003emp` | Normal | Maven package            |\n| `\u003cleader\u003emi` | Normal | Maven install            |\n| `\u003cleader\u003eme` | Normal | Maven exec:java          |\n\n### Gradle Commands\n| Keybinding   | Mode   | Description              |\n|--------------|--------|--------------------------|\n| `\u003cleader\u003egc` | Normal | Gradle clean             |\n| `\u003cleader\u003egC` | Normal | Gradle compile           |\n| `\u003cleader\u003egt` | Normal | Gradle test              |\n| `\u003cleader\u003egb` | Normal | Gradle build             |\n| `\u003cleader\u003egr` | Normal | Gradle run               |\n\n### Testing\n| Keybinding   | Mode   | Description              |\n|--------------|--------|--------------------------|\n| `\u003cleader\u003ejt` | Normal | Run Java tests          |\n| `\u003cleader\u003ejtf`| Normal | Run tests for current file |\n| `\u003cleader\u003ejnt`| Normal | Run nearest Java test (JDTLS) |\n| `\u003cleader\u003ejnc`| Normal | Run Java test class (JDTLS) |\n\n### JDTLS Code Actions\n| Keybinding   | Mode   | Description              |\n|--------------|--------|--------------------------|\n| `\u003cleader\u003ejo` | Normal | Organize imports         |\n| `\u003cleader\u003ejv` | Normal | Extract variable         |\n| `\u003cleader\u003ejV` | Normal | Extract variable (visual) |\n| `\u003cleader\u003ejm` | Normal | Extract method           |\n| `\u003cleader\u003ejM` | Normal | Extract method (visual)  |\n| `\u003cleader\u003ejc` | Normal | Extract constant         |\n| `\u003cleader\u003eju` | Normal | Update project config    |\n\n### Debugging\n| Keybinding   | Mode   | Description              |\n|--------------|--------|--------------------------|\n| `\u003cleader\u003ejd` | Normal | Java Debug continue      |\n| `\u003cleader\u003ejD` | Normal | Java Toggle breakpoint   |\n| `\u003cleader\u003ejdr`| Normal | Java Debug REPL          |\n| `\u003cleader\u003ejdl`| Normal | Java Debug run last      |\n\n### Dependency Management\n| Keybinding   | Mode   | Description              |\n|--------------|--------|--------------------------|\n| `\u003cleader\u003ejdm`| Normal | Show dependencies        |\n\n### JAR Operations\n| Keybinding   | Mode   | Description              |\n|--------------|--------|--------------------------|\n| `\u003cleader\u003ejj` | Normal | Create JAR file          |\n| `\u003cleader\u003ejJ` | Normal | Run JAR file             |\n\n### Code Generation\n| Keybinding   | Mode   | Description              |\n|--------------|--------|--------------------------|\n| `\u003cleader\u003ejg` | Normal | Generate class template  |\n\n### Spring Boot Development\n| Keybinding   | Mode   | Description              |\n|--------------|--------|--------------------------|\n| `\u003cleader\u003espr`| Normal | Spring Boot run (Maven)  |\n| `\u003cleader\u003espg`| Normal | Spring Boot run (Gradle) |\n| `\u003cleader\u003espt`| Normal | Spring Boot test (Maven) |\n| `\u003cleader\u003espb`| Normal | Spring Boot build image (Maven) |\n\n### Features\n- **Eclipse JDT Language Server** with advanced Java support\n- **Automatic project detection** (Maven, Gradle, or plain Java)\n- **Code completion** with intelligent suggestions\n- **Refactoring tools** (extract method, variable, constant)\n- **Import organization** and dependency management\n- **JUnit/TestNG integration** through JDTLS for test execution\n- **Debugging support** with breakpoints and REPL\n- **Maven and Gradle** build system integration\n- **Spring Boot** development support\n- **Code formatting** with Google Java Style (configurable)\n- **JAR creation and execution** tools\n- **Auto-indentation** with 4-space tabs\n- **Syntax-based code folding**\n- **Graceful degradation** - Features only activate when tools are installed\n\n### Prerequisites\nInstall Java development tools:\n```bash\n# Install Java (JDK 11 or higher recommended)\n# macOS: brew install openjdk@11 or openjdk@17\n# Ubuntu: sudo apt install openjdk-11-jdk or openjdk-17-jdk\n# Windows: Download from Oracle or use OpenJDK\n\n# Set JAVA_HOME environment variable\nexport JAVA_HOME=/path/to/your/java/installation\n\n# Install Maven (optional, for Maven projects)\n# macOS: brew install maven\n# Ubuntu: sudo apt install maven\n# Windows: Download from maven.apache.org\n\n# Install Gradle (optional, for Gradle projects)\n# macOS: brew install gradle\n# Ubuntu: sudo apt install gradle\n# Windows: Download from gradle.org\n\n# Verify installation\njava --version\njavac --version\nmvn --version  # if Maven installed\ngradle --version  # if Gradle installed\n```\n\n## Environment Setup Guide\n\n### Initial Setup\n1. **Clone this Neovim configuration** to `~/.config/nvim/`\n2. **Install Packer** (plugin manager):\n   ```bash\n   git clone --depth 1 https://github.com/wbthomason/packer.nvim \\\n   ~/.local/share/nvim/site/pack/packer/start/packer.nvim\n   ```\n\n### Language-Specific Setup\n\n#### Go Development\n```bash\n# Install Go toolchain (if not already installed)\n# Install via official installer or package manager\n\n# In Neovim:\n:PackerSync\n:GoInstallBinaries\n```\n\n#### Haskell Development\n```bash\n# Install GHCup and Haskell toolchain\ncurl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh\n\n# Install Haskell tools\nghcup install ghc\nghcup install cabal\nghcup install stack\nghcup install hls\ncabal install ormolu\ncabal install hindent\n\n# In Neovim:\n:TSInstall! haskell\n```\n\n#### Node.js/JavaScript/TypeScript Development\n```bash\n# Install Node.js via nvm (if not already installed)\ncurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash\nsource ~/.bashrc  # or restart terminal\nnvm install --lts\nnvm use --lts\n\n# Install global development tools\nnpm install -g typescript eslint prettier @typescript-eslint/parser @typescript-eslint/eslint-plugin\nnpm install -g ts-node jest @types/node\nnpm install -g js-debug-adapter  # For debugging support\nnpm install -g cspell           # Optional: spell checker\n\n# In Neovim:\n:PackerSync\n:Mason\n# Install: typescript-language-server, eslint-lsp (if not auto-installed)\n:TSInstall! javascript typescript tsx\n```\n\n#### Python Development\n```bash\n# Install Python development tools\npip install --upgrade pip\npip install debugpy pytest black ruff pyright\npip install jupytext  # Optional: for Jupyter notebook support\n\n# Framework-specific installations (optional)\npip install django      # For Django development\npip install fastapi uvicorn  # For FastAPI development\npip install flask       # For Flask development\n\n# In Neovim:\n:PackerSync\n:Mason\n# Install: pyright, ruff-lsp (if not auto-installed)\n:TSInstall! python\n```\n\n#### Java Development\n```bash\n# Install Java JDK (11 or higher recommended)\n# macOS: brew install openjdk@17\n# Ubuntu: sudo apt install openjdk-17-jdk\n# Windows: Download from Oracle or use OpenJDK\n\n# Set JAVA_HOME environment variable\nexport JAVA_HOME=/path/to/your/java/installation\n\n# Install build tools (optional but recommended)\n# Maven:\n# macOS: brew install maven\n# Ubuntu: sudo apt install maven\n\n# Gradle:\n# macOS: brew install gradle\n# Ubuntu: sudo apt install gradle\n\n# In Neovim:\n:PackerSync\n:Mason\n# Install: jdtls (Java LSP server will be auto-configured)\n:TSInstall! java\n```\n\n### Final Setup Steps\n1. **Start Neovim** and run `:PackerSync`\n2. **Install LSP servers** via `:Mason`\n3. **Install Treesitter parsers** as needed\n4. **Restart Neovim** to ensure all configurations load properly\n\n### Troubleshooting\n\n#### Common Issues\n- **\"module not found\" errors**: Run `:PackerSync` and restart Neovim\n- **LSP not working**: Check `:Mason` for missing language servers\n- **Treesitter parser failures**: Run `:TSUpdate` to refresh parsers\n- **Features not working**: Some features only activate after installing their corresponding plugins\n\n#### Error-Free Loading\nThis configuration uses **safe module loading** with `pcall()` to prevent crashes:\n- Missing plugins won't break Neovim startup\n- Features gracefully degrade when dependencies aren't available\n- Keybindings only register for installed plugins\n- You can run `:PackerSync` without errors even before plugins are installed\n\n#### Feature Availability\n| Feature | Requires Plugin | Auto-detects |\n|---------|----------------|--------------|\n| Package.json management | `package-info.nvim` | ✅ |\n| Prettier formatting | `prettier.nvim` | ✅ |\n| Debug support | `nvim-dap` | ✅ |\n| Test runners | `neotest-*` | ✅ |\n| Linting/formatting | `null-ls.nvim` | ✅ |\n\n## Notes\n- The leader key in this configuration is set to `,`\n- Some commands may require specific plugins to be installed\n- Visual mode keybindings can be used after selecting text (v)\n- Run `:PackerSync` after adding new plugins\n- Run `:GoInstallBinaries` to install Go development tools\n- Run `:TSInstall! haskell` to ensure Haskell treesitter parser\n- Run `:TSInstall! javascript typescript tsx` for Node.js development\n- Run `:TSInstall! python` for Python development\n- Run `:TSInstall! java` for Java development\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedwinhere%2Fnvim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedwinhere%2Fnvim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedwinhere%2Fnvim/lists"}