{"id":44060525,"url":"https://github.com/joelazar/nvim-config","last_synced_at":"2026-02-08T01:34:56.145Z","repository":{"id":37244169,"uuid":"392049022","full_name":"joelazar/nvim-config","owner":"joelazar","description":"My neovim config","archived":false,"fork":false,"pushed_at":"2026-01-30T09:02:29.000Z","size":3668,"stargazers_count":126,"open_issues_count":1,"forks_count":5,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-01-30T11:46:42.278Z","etag":null,"topics":["autocompletion","config","configuration","configuration-files","copilot","developer-tools","development","golang","lazy","lazyvim","lsp","lua","neovim","neovim-plugin","nvim","programming","python","typescript","vim","yazi"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joelazar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-08-02T18:09:02.000Z","updated_at":"2026-01-30T09:02:46.000Z","dependencies_parsed_at":"2024-01-14T09:38:50.778Z","dependency_job_id":"0eeba4db-4357-4f3c-bfa3-d2bda82a7b4c","html_url":"https://github.com/joelazar/nvim-config","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/joelazar/nvim-config","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joelazar%2Fnvim-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joelazar%2Fnvim-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joelazar%2Fnvim-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joelazar%2Fnvim-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joelazar","download_url":"https://codeload.github.com/joelazar/nvim-config/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joelazar%2Fnvim-config/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29216088,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-08T00:10:47.190Z","status":"ssl_error","status_checked_at":"2026-02-08T00:10:43.589Z","response_time":63,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["autocompletion","config","configuration","configuration-files","copilot","developer-tools","development","golang","lazy","lazyvim","lsp","lua","neovim","neovim-plugin","nvim","programming","python","typescript","vim","yazi"],"created_at":"2026-02-08T01:34:56.067Z","updated_at":"2026-02-08T01:34:56.138Z","avatar_url":"https://github.com/joelazar.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# nvim-config 🚀\n\nMy Neovim configuration based on [LazyVim](https://github.com/LazyVim/LazyVim) with additional plugins and customizations for enhanced productivity.\n\n![dashboard](https://github.com/user-attachments/assets/12d0997a-9869-4825-8b4c-7e399b1d4728)\n\n![which-key](https://github.com/user-attachments/assets/506ccb08-70c1-442e-bed5-a2bd7eeca19f)\n\n![ai](https://github.com/user-attachments/assets/b35889ee-685f-40d5-8fc7-edab76df48c5)\n\n![grep](https://github.com/user-attachments/assets/01e22664-290a-4f6b-a369-365244d15b3e)\n\n## 📦 Install\n\n```sh\ngit clone https://github.com/joelazar/nvim-config.git ~/.config/nvim\nnvim\n```\n\nAt first run, Neovim will install all necessary plugins, LSPs, formatters, and DAP adapters.\n\nAnd you are done! 🎉\n\n## ✨ Features\n\n### 🧠 AI \u0026 Assistance\n\n- **Copilot Native** [`lazyvim.json`](./lazyvim.json) - GitHub Copilot completions via the LazyVim extra, automatically paused in Markdown buffers for distraction-free writing.\n- **Sidekick.nvim** [`lua/plugins/sidekick.lua`](./lua/plugins/sidekick.lua) - Tmux-backed Sidekick CLI bridge with ready-to-use Claude, Copilot, Gemini, and Crush adapters.\n\n### 📝 Writing \u0026 Knowledge Management\n\n- **Obsidian.nvim** [`lua/plugins/obsidian.lua`](./lua/plugins/obsidian.lua) - Dual-vault workflow with Blink completion, templates, checkboxes, and a full `\u003cleader\u003ez` command suite.\n- **URL → Markdown helper** [`lua/plugins/url-to-markdown.lua`](./lua/plugins/url-to-markdown.lua) - Convert the URL under the cursor into a titled Markdown link with `\u003cD-S-a\u003e`.\n- **Word count in Lualine** [`lua/plugins/lualine.lua`](./lua/plugins/lualine.lua) - Live word counts for Markdown, LaTeX, and other writing formats.\n\n### 📂 File \u0026 Workspace Navigation\n\n- **Yazi.nvim** [`lua/plugins/yazi.lua`](./lua/plugins/yazi.lua) - Toggle the Yazi terminal file manager (`\u003cleader\u003ey` / `\u003cleader\u003eY`) without leaving Neovim.\n- **Snacks.nvim** [`lua/plugins/snacks.lua`](./lua/plugins/snacks.lua) - Dashboard, file picker with filename-first formatting, project-aware sources, and a `\u003cC-p\u003e` shortcut.\n- **Project.nvim** [`lua/plugins/project.lua`](./lua/plugins/project.lua) - Automatically switch roots based on Go modules, Git repos, and Obsidian vaults.\n- **Orphans.nvim** [`lua/plugins/orphans.lua`](./lua/plugins/orphans.lua) - Spot orphaned files and dead code paths with a single `:Orphans` command.\n\n### 🧰 Development Tools\n\n- **Blink.cmp** [`lua/plugins/blink.lua`](./lua/plugins/blink.lua) - Modern completion engine wired to Git history, dictionary, and a custom calculator source.\n- **Go.nvim** [`lua/plugins/go.lua`](./lua/plugins/go.lua) - Extra Go tooling, syntax, and LSP helpers.\n- **Mason.nvim** [`lua/plugins/mason.lua`](./lua/plugins/mason.lua) - Ensures `ruff`, `sqlfluff`, and `harper-ls` are ready to go.\n- **Conform.nvim \u0026 nvim-lint** [`lua/plugins/conform.lua`](./lua/plugins/conform.lua), [`lua/plugins/nvim-lint.lua`](./lua/plugins/nvim-lint.lua) - Formatter and linter setup for SQL, Mojo, Markdown, and more.\n- **LSP tuning** [`lua/plugins/lspconfig.lua`](./lua/plugins/lspconfig.lua) - Refined keymaps, enriched `gopls` defaults, optional `harper_ls`, inc-rename integration, and `\u003cleader\u003eca` code actions mapping.\n- **Treesitter** [`lua/plugins/treesitter.lua`](./lua/plugins/treesitter.lua) - Extra parsers for SQL, Go templates, LaTeX, CSS, and comment blocks.\n- **Diffview** [`lua/plugins/diffview.lua`](./lua/plugins/diffview.lua) - Merge-ready diff layouts and history views on demand.\n- **Blame.nvim** [`lua/plugins/blame.lua`](./lua/plugins/blame.lua) - Toggle inline Git blame annotations with `:BlameToggle`.\n- **Text-case.nvim** [`lua/plugins/text-case.lua`](./lua/plugins/text-case.lua) - Fast case conversions for symbols and selections.\n\n### 🎨 UI \u0026 Insights\n\n- **Tokyo Night** [`lua/plugins/tokyonight.lua`](./lua/plugins/tokyonight.lua) - Sleek \"night\" palette tuned for long sessions.\n- **Bufferline** [`lua/plugins/bufferline.lua`](./lua/plugins/bufferline.lua) - Minimal tabline with sensible Alt-based navigation and pinning.\n- **Snacks UI polish** [`lua/plugins/snacks.lua`](./lua/plugins/snacks.lua) - Custom header, trimmed indent guides, and quiet scrolling defaults.\n- **Which-key.nvim** [`lua/plugins/which-key.lua`](./lua/plugins/which-key.lua) - Helix-style key-hints with shortcuts for elevated writes.\n- **WakaTime** [`lua/plugins/wakatime.lua`](./lua/plugins/wakatime.lua) - Automatic coding activity tracking.\n\n## ⚙️ Custom Configuration\n\n### Core Files\n\n- **Main Neovim options** [`lua/config/options.lua`](./lua/config/options.lua) - Sets up Neovim behavior\n- **Key mappings** [`lua/config/keymaps.lua`](./lua/config/keymaps.lua) - Custom keyboard shortcuts\n- **Auto commands** [`lua/config/autocmds.lua`](./lua/config/autocmds.lua) - Custom automated behaviors\n- **Lazy plugin manager** [`lua/config/lazy.lua`](./lua/config/lazy.lua) - Plugin setup and management\n- **Utility functions** [`lua/config/utils.lua`](./lua/config/utils.lua) - Helper functions including sudo write\n\n### Key Customizations\n\nThis config modifies several LazyVim defaults (see [`lua/config/keymaps.lua`](./lua/config/keymaps.lua)):\n\n- `Q` - Close window instead of entering Ex mode\n- `gy`, `gp` - System clipboard operations\n- `\u003cC-S\u003e` - Save file\n- `\u003cC-d\u003e`, `\u003cC-u\u003e` - Better page navigation with centering\n- Smart `dd` that preserves your last yank when deleting empty lines\n- `\u003cCMD\u003e+j` - Toggle terminal in current directory\n- `\u003cleader\u003eus` - Toggle the `harper_ls` grammar assistant\n- `\u003cleader\u003eca` - Code actions menu (via LSP)\n\n### Additional Features\n\n- **Sudo Integration** [`lua/config/utils.lua`](./lua/config/utils.lua) - Write with sudo privileges (`\u003cleader\u003eW`)\n- **Wrapped Lines** [`lua/config/keymaps.lua`](./lua/config/keymaps.lua) - Comfortable navigation in wrapped text files\n- **Custom Spell Checking** [`lua/config/autocmds.lua`](./lua/config/autocmds.lua) - Targeted spell checking for specific file types (and auto-pauses Copilot in Markdown)\n- **Absolute Line Numbers** [`lua/config/options.lua`](./lua/config/options.lua) - Uses absolute instead of relative line numbers\n- **Clipboard Handling** [`lua/config/options.lua`](./lua/config/options.lua) - Doesn't use system clipboard by default for better control\n- **URL to Markdown command** [`lua/utils/url-to-markdown.lua`](./lua/utils/url-to-markdown.lua) - `:UrlToMarkdown` and `\u003cD-S-a\u003e` turn raw links into titled Markdown references\n- **Snacks picker shortcut** [`lua/plugins/snacks.lua`](./lua/plugins/snacks.lua) - `\u003cC-p\u003e` launches a hidden-friendly file picker\n\n## 📋 [LazyVim Extras](https://www.lazyvim.org/extras)\n\nThis configuration includes numerous LazyVim extras (see [`lazyvim.json`](./lazyvim.json)):\n\n- **AI**: copilot-native, sidekick\n- **Coding**: mini-surround, yanky\n- **DAP**: core, nlua\n- **Editor**: dial, inc-rename, snacks_explorer, snacks_picker\n- **Formatting**: black, prettier\n- **Languages**: ansible, docker, git, go, json, markdown, python, rust, tailwind, terraform, toml, typescript, yaml, zig\n- **Linting**: eslint\n- **Testing**: core\n- **UI**: edgy\n- **Utilities**: chezmoi, dot, mini-hipatterns\n- **Interoperability**: vscode\n\n## 🔧 File Structure\n\n- `init.lua` - Entry point that loads the configuration\n- `lua/config/` - Core configuration files\n- `lua/plugins/` - Custom plugin configurations\n- `stylua.toml` - Formatting rules for Lua files\n\n## 🎨 Theme\n\nUsing [Tokyo Night](https://github.com/folke/tokyonight.nvim) with the \"night\" style for a clean, modern look. See [`lua/plugins/tokyonight.lua`](./lua/plugins/tokyonight.lua) for configuration.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoelazar%2Fnvim-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoelazar%2Fnvim-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoelazar%2Fnvim-config/lists"}