obsidian.nvim is a Neovim plugin that integrates Obsidian vault functionality directly into Neovim. It provides note creation, linking, completion, navigation, image handling, synchronization, and templating features for markdown-based notes. The plugin leverages Neovim's API for LSP integration, autocommands, buffer management, and picker interfaces (telescope, fzf, snacks, mini) to deliver an Obsidian-like experience within Neovim. It maintains a cache of note metadata for performance and supports multiple workspaces with per-workspace overrides. The architecture is modular, separating concerns into commands, LSP handlers, note management, workspace handling, caching, search, picker abstraction, and completion sources.
neovim-qt is a Qt-based graphical user interface for the Neovim text editor. It provides a full-featured GUI frontend that communicates with Neovim via the msgpack-RPC protocol, supporting all standard editing operations, multiple windows, tabs, popup menus, scrollbars, and a file tree view. The application is cross-platform (Windows, macOS, Linux) and integrates deeply with Neovim's extended UI features, including external popup menus, tablines, and grid-based rendering. The architecture is modular: the core library (neovim-qt) handles RPC communication via MsgpackIODevice and NeovimConnector, while the GUI layer (neovim-qt-gui) provides the main window, shell widget, input handling, and UI extensions. The ShellWidget is a standalone, reusable Qt widget that renders a terminal-like grid of cells with full color, font attributes, cursor blinking, and ligature support. Input events are converted to Neovim's key notation through platform-specific modules. The application also includes a VimL plugin (nvim_gui_shim.vim) that exposes GUI commands like GuiFont, GuiTabline, and GuiScrollBar. Key entry points include main.cpp (application startup), App class (command-line parsing and window management), MainWindow (orchestrates shell, tabline, scrollbar, treeview), and Shell (manages Neovim attachment and redraw notifications). External dependencies are Qt6, msgpack-c, and Neovim itself. The build system uses CMake with support for various package managers and CI pipelines (GitHub Actions, CircleCI, Azure Pipelines).
asyncomplete.vim is a Vim and Neovim plugin that provides asynchronous autocompletion using timers. It allows completion sources to be registered and triggered without blocking the editor. The architecture centers around a core completion engine that manages sources, triggers, and popup menu display. Key features include context-aware completion triggering, support for various change detection mechanisms (autocommands or timers), and a flexible source registration system. The plugin depends only on Vim 8+ or Neovim with timers feature, integrating with Vim's native complete() function for popup menu handling.
milli.nvim is a Neovim plugin for animated ASCII splash screens. It provides both pre-rendered splash animations (like fire, blackhole, skeleton) and live procedural shaders (plasma, rain, doomfire, starfield) all implemented in pure Lua using Neovimβs extmarks for coloring. The plugin integrates seamlessly with popular dashboard plugins (dashboard-nvim, alpha-nvim, snacks.nvim, mini.starter) via autocmds and preset functions. It also includes a community registry for sharing splash data, with a sandboxed loading mechanism to prevent arbitrary code execution. The codebase demonstrates careful engineering: anchor-based positioning to handle variable terminal sizes, color-run optimisation to stay within Neovimβs highlight-group limit (E849), and deterministic pseudorandom number generation in shaders to avoid corrupting math.random. The external CLI tool (npm package `milli`) allows users to generate their own splashes from images or GIFs, and the data format is simple and portable. Overall, it is a well-crafted, feature-rich plugin with clear architecture and several reusable patterns.
NvChad is a Neovim configuration framework written in Lua that provides a modular, lazy-loaded base setup for Neovim. It enhances the editor with UI improvements (statusline, tabufline, theme picker), plugin management via lazy.nvim, and integrations for LSP, treesitter, telescope, and other popular plugins. The codebase is organized into distinct modules for options, mappings, autocommands, and plugin configurations, allowing users to import it as a plugin and override settings as needed. Key features include fast startup times (~0.02-0.07s), 93% lazy loading of plugins, and a focus on aesthetic UI components like NvCheatsheet and modern theme picker. The project is actively maintained with recent commits and demonstrates strong engineering practices for Neovim Lua configuration.
This Neovim plugin renders indentation guides using virtual text, avoiding the 'conceal' feature. It provides highly configurable indentation guides, including support for tabs, mixed indentation, and multiple highlight groups. The architecture is modular: `config.lua` handles a hierarchical configuration system with merging, validation, and buffer-scoped overrides; `hooks.lua` implements an extensible type-safe hook system that allows other plugins or user configurations to modify every aspect of the rendering pipeline; `indent.lua` performs whitespace analysis and classifies each cell into an enum (TAB_START, TAB_FILL, etc.); `scope.lua` uses Treesitter to determine the current scope (e.g., function body) for highlighting; and `virt_text.lua` composes the final virtual text extmarks. The plugin refreshes on cursor movement, option changes, and scrolling, with built-in debouncing. It integrates with Neovim's `listchars` and supports repeat_linebreak for wrapped lines. Test coverage is moderate but exercise key components. The code demonstrates mature Lua engineering with careful Neovim version compatibility and a clean public API.
vim-which-key is a Vim/Neovim plugin that provides an interactive keybinding guide. When a leader key is pressed, it intercepts subsequent keystrokes and displays available mappings in a popup or split window. The plugin dynamically parses native Vim mappings for the given prefix and merges them with user-defined description dictionaries to show meaningful labels and group names. It supports both Vim's popup API and Neovim's floating windows, offering a modern, non-intrusive UI. The architecture is modular: mapping parsing, layout rendering, window management, and key input handling are separated into distinct autoload modules. The code demonstrates solid Vimscript engineering, with careful handling of edge cases like timeout, exit codes, special keys, and fallback to native mappings.
Solarized Osaka is a Neovim colorscheme plugin that implements a Solarized-inspired dark and light theme with extended colors for modern Neovim features and plugin support. The codebase is a monolithic Lua plugin with entry points in `colors/solarized-osaka.lua` and `lua/solarized-osaka/init.lua`. It works by defining a color palette via HSL/HPLUV color space conversions, then generating Neovim highlight groups and optionally producing theme files for external applications (terminals, tmux, fish, etc.) via a template system. The architecture is clean: a config module merges user options, a colors module computes the palette, groups modules define highlight groups per plugin, and a theme module applies them. The plugin has no runtime dependencies beyond Neovim 0.7.2+. Notably, the repository includes standalone implementations of HSL and HSLuv color space conversions (hsl.lua, hsluv.lua) and a utility function for perceptually brightening colors (util.brighten). These components are reusable in other Lua projects. The extras generation system is also well-structured, though tightly coupled to the theme.
quicker.nvim is a Neovim plugin that replaces the default quickfix and location list windows with an enhanced, feature-rich interface. It provides improved styling with syntax highlighting (treesitter and LSP), context line expansion around matched results, and an editable quickfix buffer that allows applying bulk text changes across multiple source files on save. The plugin is implemented as a single modular Lua library using Neovim's `quickfixtextfunc` hook for rendering and leverages async processing for highlighting performance. It includes a suite of helper APIs for toggling, opening, closing, refreshing, and configuring the quickfix window. The codebase is well-structured, thoroughly tested, and actively maintained by a prolific Neovim plugin author.
onedark.nvim is a Neovim 0.9+ colorscheme plugin implementing the Atom One Dark and One Light themes with Lua and TreeSitter support. The codebase provides 8 theme styles (dark, darker, cool, deep, warm, warmer, light), comprehensive TreeSitter highlight definitions (modern @-prefixed captures), LSP semantic token integration, and support for over 24 plugins (nvim-cmp, telescope, lualine, indent-blankline, etc.). It includes a robust test suite with automated highlight group verification and manual visual testing files. The architecture is modular: palette.lua defines raw color values per style, colors.lua selects and merges with user overrides, highlights.lua maps groups to colors with configurable code styles (italic, bold), and init.lua handles setup/loading/toggling. The utility module provides reusable color blending functions. The repository is actively maintained with frequent releases, detailed changelogs, and responsive issue triage. While primarily a Neovim plugin, its color handling and test patterns could inspire similar theme implementations.
nvim-test is a Neovim plugin that provides a unified interface for running tests across multiple programming languages. It integrates with Neovim's terminal system to execute test commands (like jest, pytest, etc.) and displays results in a split window. The plugin features language-specific runners that use tree-sitter queries to identify test functions and navigate to the nearest test from the cursor. Key components include a base Runner class for abstraction, utility functions for file path resolution, and terminal adapters for both built-in and toggleterm implementations. The plugin is actively maintained with recent commits and CI workflows, showing low technical debt as it relies on Neovim's stable APIs and external test runners without complex dependencies.
Sonokai is a high-contrast Vim/Neovim colorscheme based on Monokai Pro, offering multiple variants (default, atlantis, andromeda, shusia, maia, espresso). It provides extensive customization options, support for tree-sitter, semantic highlighting, and optimizations for dozens of plugins. The repository includes a sophisticated code generation system that extracts syntax highlights from its own source and places them in after/syntax directories for on-demand loading, improving startup performance. It also comes with themes for popular statusline plugins (airline, lightline, lualine). The code is well-structured Vimscript with clear separation of concerns.
GNvim is a GTK4-based Neovim GUI written in Rust. It communicates with Neovim via the MessagePack-RPC protocol, providing a native desktop experience with features like floating windows, popup menus, tabline, cmdline, and smooth animations for cursor and scrolling. The architecture is a single Rust binary split into a workspace: the main `ui` crate contains the GTK4 frontend with custom widgets (e.g., Grid, GridBuffer, Cursor, Fixedz, Popupmenu, Shell), and the `nvim-rs` library crate provides a reusable, async RPC client for Neovim with auto-generated API bindings. The system's entry point is `ui/src/main.rs`, which registers resources and launches the GTK application. Data flows bidirectionally: Neovim sends UI events (redraw, options, notifications) as RPC messages, which are deserialized into Rust types and applied to the GTK widget tree; user input (keyboard, mouse) is captured by GTK event controllers and sent back to Neovim as RPC calls. The codebase is well-structured, modular, and follows modern Rust async patterns, with extensive use of GTK4's property system and custom layout managers for complex UI composition.
This is a Neovim configuration distribution that provides a highly customized editing environment with a layer-based architecture inspired by Spacemacs. It implements a modular system where functionality is organized into layers (editor, ui, git, completion, devops) each containing their own configurations, keymappings, and plugins. The configuration uses lazy.nvim for plugin management, provides extensive LSP support, theme integration with dozens of color schemes, and keybindings following Spacemacs conventions using the spacebar as the leader key. The system loads user configuration from ~/.cosmos-nvim.lua with fallback to a sample configuration, processes layers to apply options and settings, registers keymappings with which-key.nvim, and manages plugins through lazy.nvim.
coc-snippets is a Neovim/Vim plugin that provides snippet completion and expansion for the coc.nvim completion framework. It supports multiple snippet formats including UltiSnips, snipmate, and VSCode snippets, allowing users to load snippets from various sources and use them as completion items in their code editing workflow. The extension follows a modular architecture where each snippet format is handled by a dedicated provider (e.g., UltiSnipsProvider, SnipmateProvider, TextmateProvider). A provider manager aggregates results from all active providers, filters and sorts them, and presents them as completion options. When a snippet is selected, it is expanded in the buffer with support for placeholders and tab stops. Key features include asynchronous loading of snippets to avoid blocking the UI, support for snippet context conditions (via UltiSnips context), and integration with coc.nvim's completion system. The extension also provides commands for editing snippets and listing available snippets. While the core functionality is well-implemented, the extension is tightly coupled to the coc.nvim API, which limits the reusability of individual components outside of the Neovim/Vim ecosystem. However, the utility module (src/util.ts) contains a collection of reusable functions for string manipulation, collections, and cryptographic operations that can be extracted with minimal modification.
SQLua.nvim is a Neovim plugin that transforms the editor into a SQL IDE. It provides a sidebar UI for browsing database schemas (tables, views, functions, procedures) across multiple DBMS (PostgreSQL, MySQL, MariaDB, Snowflake, SQLite). Connections are configured via a JSON file with JDBC-like URLs. The plugin executes queries by spawning CLI tools (psql, mysql, snowsql, etc.) asynchronously using Neovim's libuv integration, sending SQL via stdin and parsing the tabular output into a results pane. It supports executing the entire buffer, visual selections, or visual blocks, and offers DDL template statements (Data, Columns, Indexes, etc.) that generate queries on click. The architecture follows a modular Lua design: a base Connection class with DBMS-specific subclasses, separate query modules per database, a file abstraction for saved queries, and a UI module that manages windows, buffers, and keymaps. The entry point is the `:SQLua` command, which sets up the layout and loads connections. The plugin relies solely on Neovim 0.10+ built-in APIs and external CLI tools; no external Lua dependencies are required. The codebase demonstrates solid craftsmanship with clean OOP patterns, async I/O, and well-structured separation of concerns. However, the UI module is tightly coupled to the connection layer, and the project has seen no commits since March 2024, indicating a stale maintenance state. The core utility functions, particularly the JDBC URL parser in utils.lua, are self-contained and could be reused in other Lua projects.