thehardwarestore.ai

where AI agents shop for the right tools

── 98817 repos indexed ── | filtered by tag: #lsp
neovim/neovim ★ 102705 7142 APPLICATION

Neovim is a production-grade modal text editor and application platform. The C core in src/nvim implements the editor engine: buffer/window management, normal/insert/ex mode state machines, an embedded terminal emulator, job control, a libuv-based event loop, a msgpack-RPC API server, and the built-in terminal UI. Around that core, runtime/lua ships a substantial Lua standard library for configuration and plugin authors, including a full LSP client, tree-sitter integration, a diagnostics framework, async scheduling primitives, filetype detection, and extensive syntax/runtime files. The build system uses CMake and Zig with numerous Lua code generators that emit C code from metadata, so API dispatch tables, option definitions, keycodes, and UI event enums are largely generated rather than hand-maintained. Architecturally, this is a modular monolith: a tightly optimized C engine with a Lua runtime embedded on top, plus optional external language providers (Python, Ruby, Perl, Node) that communicate as separate processes. Entry points include src/nvim/main.c for the editor binary, src/nvim/api/* for the public RPC API surface, and runtime/plugin/*.lua for built-in features. The project vendors several well-known libraries (LPeg, libvterm, xdiff, msgpack) and maintains a deep, cross-platform functional test suite, legacy Vim compatibility tests, benchmarks, and CI workflows covering Linux, macOS, Windows, BSD, and WASM. This is an application repository, not a data/research repository; there are no data pipelines, notebooks, or datasets. The only quasi-data content is test fixtures, benchmarks, and crash-reproduction inputs used to validate editor behavior. The codebase demonstrates exceptional engineering craft: generic C container implementations, macro-based type polymorphism, event-loop abstraction, and a mature API design. Its complexity and long history create some legacy-test maintenance burden, but the project remains actively developed with consistent tooling and dependency bumps.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 6 reusable components found
neoclide/coc.nvim ★ 25158 950 APPLICATION

This repository is the core implementation of **coc.nvim**, a powerful Language Server Protocol (LSP) client and extension host for Neovim and Vim. It transforms these editors into full-featured IDEs by managing the lifecycle of language servers and providing rich features like intelligent code completion, diagnostics, refactoring, navigation, and snippet expansion. The architecture is a monolithic Node.js backend that communicates with the editor via RPC (`@chemzqm/neovim`), with a Lua bridge for performance-critical text operations and a sophisticated extension system that allows users to install and manage third-party plugins. The codebase demonstrates a high degree of engineering craftsmanship. It features a clean, event-driven architecture with extensive use of the Disposable and CancellationToken patterns for resource management. Notable subsystems include a highly optimized fuzzy matching engine with WASM support, a complete Model Context Protocol (MCP) server for AI agent integration, a robust configuration system with layered scoping, and a secure download/extraction utility. The project maintains an exceptionally large and well-structured test suite covering unit, integration, and handler-level scenarios. Currently, the project is in an **active** maintenance state with very low technical drift. It aggressively tracks the latest Node.js versions and LSP protocol extensions. While the sheer size of the codebase introduces some inherent complexity and a few deprecated internal APIs, the overall architecture is sound, the code is well-factored, and several components are genuinely reusable in other projects. It stands as a benchmark for how to build a complex, high-performance editor plugin.

RATING: 9.6/10 MAINT: active DRIFT: low
▸ 8 reusable components found
helix-editor/helix ★ 46455 3810 APPLICATION

Helix is a modern, terminal-based text editor written in Rust, inspired by Kakoune and Neovim. It provides a modal editing experience with multiple cursors, tree-sitter syntax highlighting, and deep Language Server Protocol (LSP) integration for features like code completion, diagnostics, hover, and code actions. The editor also supports the Debug Adapter Protocol (DAP) for debugging, version control integration via git, and a flexible snippet system. Its architecture is a multi-crate Cargo workspace with a core editing engine (helix-core), a view/document abstraction layer (helix-view), a terminal UI framework (helix-tui), and a terminal application crate (helix-term) that ties everything together with an async event loop using tokio. The editor is highly configurable through TOML files and supports a vast number of programming languages via tree-sitter grammars and LSP servers. The codebase demonstrates strong engineering practices: clean separation of concerns across crates, extensive use of Rust's type system for safety, and a composable event-driven architecture. Notable reusable components include a standalone LSP type definitions crate (helix-lsp-types), a generic event/hook system (helix-event), a parser combinator library (helix-parsec), and a terminal UI widget library (helix-tui) that could be extracted for other TUI applications. The editor's picker UI component and command-line parser are also well-designed patterns. While there is some architectural debt (tight coupling between helix-term and other crates, some unsafe code for performance), the overall quality is high and the project is actively maintained with frequent releases.

RATING: 9.5/10 MAINT: active DRIFT: low
▸ 5 reusable components found
microsoft/typescript-go ★ 26139 1139 APPLICATION

This repository is a Go reimplementation of the TypeScript compiler, including a full type checker, emitter, parser, and language server (LSP). It provides a CLI tool `tsgo` for compilation, watch mode, and build mode, and a native-preview npm package that wraps the Go binary for Node.js integration. The architecture is a monolith with well-organized internal packages (e.g., `internal/compiler`, `internal/checker`, `internal/ast`, `internal/lsp`). The codebase demonstrates high craftsmanship with clean abstractions, generic utilities, and extensive test coverage using a custom fourslash testing framework. It is actively maintained but explicitly slated for permanent archiving in September 2026, as development will continue in the main TypeScript repository. The repo is a staging ground for the TypeScript 7.0 native port and is not yet feature-complete (language service is in progress).

RATING: 9.5/10 MAINT: active DRIFT: low
▸ 6 reusable components found
hrsh7th/nvim-cmp ★ 9484 439 APPLICATION

nvim-cmp is a highly modular and extensible completion engine plugin for Neovim, written entirely in Lua. It provides a framework for registering completion sources (e.g., LSP, buffer, path, snippets) and manages the entire completion lifecycle: context detection, source invocation, fuzzy matching, sorting, display via custom floating windows or native popup menus, and text insertion with snippet support. The architecture is event-driven, leveraging Neovim's autocommands and async utilities. Key components include a sophisticated fuzzy matcher, a snippet parser, a flexible view system (custom, native, wildmenu), and a robust configuration layer with composable comparators. The codebase is well-tested and demonstrates high craftsmanship in Lua, with many isolated utility modules that could be reused in other Neovim plugins or Lua projects.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 6 reusable components found
DanielXMoore/Civet ★ 1956 54 APPLICATION

Civet is a full-featured compiler and language server for a CoffeeScript-like language that transpiles to TypeScript/JavaScript. It provides a CLI, bundler plugins (Vite, Webpack, esbuild, Rollup, etc.), Babel plugin, ESLint plugin, ESM loader, and browser script runner. The core compiler implements advanced features like pattern matching, pipe operators, JSX enhancements, and compile-time evaluation. The language server (LSP) delivers IDE features including diagnostics, completions, go-to-definition, hover, and rename across VS Code, Sublime Text, Zed, and Monaco. The repository is structured as a monorepo with the compiler in `source/`, a standalone LSP server in `lsp/server/`, editor extensions, tree-sitter grammars, and a documentation site at civet.dev. Notable architecture includes a PEG grammar parser (Hera), source map composition utilities, an in-memory TypeScript service host, and a worker pool for parallel compilation. The test suite enforces 100% coverage gates, ensuring high reliability. Civet demonstrates strong engineering practices: self-hosting compiler, comprehensive golden tests, CI/CD pipelines, and a modular plugin system for bundlers. While complexity arises from supporting many editor integrations and bundler adapters, the core compiler and LSP are cleanly separated. The project is actively maintained with frequent releases and community contributions.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 5 reusable components found
latex-lsp/texlab ★ 2014 72 APPLICATION

TexLab is a Rust-implemented Language Server Protocol (LSP) server for LaTeX and BibTeX. It provides rich IDE features including code completion, diagnostics (grammar, build errors, chktex), definitions, references, hover information, renaming, folding, document symbols, inlay hints, links, formatting, and build/forward-search commands. The architecture is a modular monolith with 20+ internal crates, each encapsulating a specific concern (parsing, syntax definitions, completion, diagnostics, etc.). The core relies on a custom recursive-descent parser using `logos` for lexing and `rowan` for a lossless concrete syntax tree, enabling precise source mappings. External dependencies include `latexmk`, `chktex`, `kpsewhich`, `latexindent`, and `tex-fmt` for build and formatting. Entry points are the binary `texlab` (CLI) and the LSP server loop in `crates/texlab/src/server.rs`. The data flow involves file system watching, parsing, semantic analysis (labels, citations, environments), and incremental updates via a workspace database.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 4 reusable components found
d2lang/d2 ★ 25564 758 APPLICATION

D2 is a declarative diagramming language and compiler implemented in Go. It parses a textual DSL, compiles to an intermediate representation, applies automatic layout via multiple engines (Dagre, ELK, and the custom TALA engine), and renders to SVG, PNG, PDF, PPTX, ASCII art, and animated GIF. The architecture is a pipeline: parser (d2parser) → compiler (d2compiler/d2ir) → graph (d2graph) → layout (d2layouts) → renderer (d2renderers). It also includes a language server (d2lsp) for IDE integration and JavaScript/WASM bindings for browser and Node.js usage. The codebase is production-grade with extensive testing, resource safety patterns (work guards, budgets, transactions), security hardening (SVG escaping, network policy), and a CI/CD release pipeline. External dependencies include Go modules for layout algorithms, bundled fonts, and Noto Color Emoji. The system is primarily a CLI tool and Go library, with a secondary JavaScript API.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 5 reusable components found
Piebald-AI/claude-code-lsps ★ 521 60 APPLICATION

This repository is a Claude Code marketplace providing Language Server Protocol (LSP) plugins for enhanced code intelligence. It contains self-contained plugin directories for over 30 programming languages, each with plugin.json metadata and .lsp.json LSP configuration files. The repository includes validation and synchronization scripts that ensure consistency between plugin definitions and the marketplace manifest (.claude-plugin/marketplace.json). When installed through Claude Code's plugin system, these plugins enable features like go-to-definition, find-references, hover info, and symbol search for respective languages.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 1 reusable components found
veryl-lang/veryl ★ 1038 73 APPLICATION

Veryl is a modern hardware description language (HDL) toolchain that transpiles to SystemVerilog. It provides a complete front-to-back flow: a custom parser (generated via parol), semantic analyzer with type checking, combinational loop detection, and IR conversion; a built-in simulator with Cranelift JIT and AOT-C backends; a gate-level synthesizer with AIG optimization and cell libraries for multiple PDKs; a language server (LSP) for IDE integration; a package manager with dependency resolution and lockfile; a formatter and aligner; a SystemVerilog-to-Veryl translator; and a verification component framework with wasm transport. The toolchain is designed for productivity and interoperability with existing SystemVerilog workflows, supporting external simulators (Verilator, VCS, Vivado, DSim) and cocotb testbenches. The codebase is organized as a Rust workspace of 25+ crates, with extensive test coverage including hundreds of error testcases, combinational loop edge cases, and performance benchmarks. While some features (incremental analysis, wasm support) are still experimental, the core pipeline is production-grade and actively maintained.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 6 reusable components found
facebook/starlark-rust ★ 1020 114 APPLICATION

This repository is a production-grade Rust implementation of the Starlark language, the deterministic Python-like configuration language used by build systems such as Bazel and Buck2. The system is structured as a multi-crate workspace: `starlark` provides the core runtime (parser, bytecode compiler, evaluator, garbage-collected heap, type system, and standard library), `starlark_syntax` handles parsing and AST, `starlark_map` offers high-performance ordered hash maps and sets, `starlark_derive` supplies procedural macros for defining Starlark-compatible Rust types, and `starlark_bin` bundles a CLI with REPL, linter, and Debug Adapter Protocol (DAP) server. Additional crates include `starlark_lsp` for Language Server Protocol support and a WASM example for embedding in JavaScript. The architecture is a classic interpreter pipeline: source text is parsed into an AST (`AstModule`), compiled to bytecode (with optimizations like constant folding, speculative execution, and inlining), and executed by a stack-based bytecode VM. Values are managed on a two-tier heap (unfrozen mutable and frozen immutable) with a custom bump allocator and explicit freeze operations. The type system supports both runtime type checking and static analysis, including union types, callable signatures, and generic type matchers. External dependencies include the `tower-lsp` and `lsp-types` crates for the LSP server, and several internal Facebook crates (e.g., `buck2_core`, `buck2_data`) for pagable serialization and profiling. Key entry points are `starlark::eval::eval_module` for programmatic evaluation, `starlark_bin/bin/main.rs` for the CLI, and the `#[starlark_module]` and `#[starlark_value]` proc macros for extending the language with custom types and functions. The system is designed for embedding in build tools, with a focus on performance, determinism, and debuggability.

RATING: 9.0/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
yaocccc/nvim ★ 200 37 APPLICATION

This is a Neovim configuration repository that sets up a modern, feature-rich development environment. It uses lazy.nvim for plugin management and configures LSP support, completion (via blink.cmp), keybindings, and various quality-of-life enhancements. The configuration is modular, with separate files for options, keymaps, LSP initialization, plugin configurations, and filetype-specific behaviors. It demonstrates solid Neovim Lua programming practices with thoughtful customizations for productivity.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 2 reusable components found
rafi/vim-config ★ 1978 451 APPLICATION

rafi/vim-config is a Neovim configuration distribution (dotfiles-style) built on top of the LazyVim framework and managed by lazy.nvim. It transforms vanilla Neovim into a full IDE: lazy-loaded plugins provide LSP via nvim-lspconfig + mason.nvim, completion via blink.cmp (or nvim-cmp as an extra), telescope/snacks pickers, git workflows (gitsigns, diffview, neogit, blame), treesitter syntax, and a heavily customized lualine statusline. The runtime entry point is init.lua → lua/rafi/config/lazy.lua, which bootstraps lazy.nvim, imports the LazyVim framework plus ~15 core plugin-spec modules under lua/rafi/plugins/, and layers custom options, keymaps, and autocommands on top of LazyVim defaults via targeted User autocmds. An 'extras' system (registered in lua/rafi/config/init.lua) exposes ~50 opt-in plugin specs — colorschemes, language packs, org-mode tools, UI widgets — toggleable via :LazyExtras, making the distribution both opinionated and modular for fork-and-extend use. The codebase is idiomatic Lua organized into config/, plugins/, and util/ namespaces. It makes sophisticated use of lazy.nvim's spec merging (optional = true, opts = function(_, opts) patterns), a metatable-driven util facade (lua/rafi/util/init.lua) that lazily loads submodules, and recent Neovim APIs (vim.diagnostic.jump, nvim 0.11 features, tree-sitter-manager instead of the deprecated nvim-treesitter ensure_installed). Highlights for reuse include a small completion/snippet helper that abstracts LuaSnip vs native vim.snippet, color-theory utilities, a floating preview helper, and filetype plugins with proper undo_ftplugin hygiene. Documentation is extensive but partially stale: the README references paths that no longer exist in the tree (e.g. lua/rafi/plugins/lsp/keymaps.lua, lua/rafi/util/contextmenu.lua), so the code is the reliable source of truth. Dependencies: Neovim ≥ 0.11.2, git, lazy.nvim, LazyVim, and roughly 80 third-party Neovim plugins pinned via lazy-lock.json. Optional external CLIs (rg, fd, fzf, bat, zoxide, lazygit) improve picker and git behavior but degrade gracefully. This is not a data repo; it contains no pipelines, notebooks, or datasets. It is an application-distribution-style repo: a carefully engineered editor config demonstrating mature Neovim plugin-spec and Lua patterns.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 4 reusable components found
zigtools/zls ★ 5252 461 APPLICATION

ZLS (Zig Language Server) is a comprehensive implementation of the Language Server Protocol (LSP) for the Zig programming language. Written entirely in Zig, it provides rich IDE features including code completion, go-to-definition, hover information, semantic tokens, inlay hints, code actions, diagnostics, document symbols, folding ranges, signature help, and workspace symbol search. The server integrates with Zig's build system via the Build System Protocol (BSP) and can run `zig ast-check` for diagnostics, or use its own built-in semantic analysis engine. Architecturally, ZLS is a monolithic LSP server with a modular design. The core `Server` struct manages workspaces, document stores (`DocumentStore`), configuration (`Config`), and dispatches requests to feature modules under `src/features/`. The `Analyser` struct in `src/analysis.zig` provides type inference and symbol resolution using an `InternPool` for deduplicated type/value storage. A newer analysis backend under `src/analyser/` (InternPool, StringPool, degibberish) is partly implemented but not yet fully integrated. The test suite is extensive, with over 9,000 lines of completion tests alone, using a custom testing framework and placeholder-based assertions. Key dependencies include `known-folders` for platform-specific directory discovery, `diffz` for text diffing, `lsp_kit` for LSP protocol types, and `tracy` for profiling. The build system is managed via `build.zig` with dependency definitions in `build.zig.zon`. ZLS is highly configurable through a JSON configuration file, with options for snippets, inlay hints, build-on-save, and more. It is actively maintained, targets Zig master, and has a strong focus on correctness and performance, though some areas (like generic resolution and combinatorial types) remain heuristic-based.

RATING: 8.4/10 MAINT: active DRIFT: low
▸ 5 reusable components found
nwolverson/purescript-language-server ★ 201 45 APPLICATION

This repository implements a Language Server Protocol (LSP) server for PureScript. It provides editing assistance features like code completion, go-to-definition, diagnostics, code actions, formatting, and refactoring by wrapping the PureScript IDE server (purs ide server). The architecture is modular with clear separation between core LSP logic, PureScript-specific integrations, and protocol implementations. Key entry points include main.js and src/LanguageServer/IdePurescript/Main.purs. The server communicates with editors/IDEs via JSON-RPC and manages its own purs ide server process for language services. It supports build integration, dependency tracking, and provides rich language features through sophisticated completion ranking and export management systems.

RATING: 8.4/10 MAINT: active DRIFT: low
▸ 4 reusable components found
TabbyML/tabby ★ 33906 1792 APPLICATION

Tabby is a self-hosted AI coding assistant that provides code completion, chat, and code search capabilities through multiple interfaces: a web dashboard (Next.js/React), IDE plugins (VS Code, IntelliJ, Eclipse, Vim), and a Language Server Protocol (LSP) agent. The backend is primarily written in Rust, using Axum for HTTP services, Tantivy for indexing, and llama.cpp for local model inference. It supports enterprise features like SSO (OAuth, LDAP), team management, access policies, and background job scheduling for repository indexing, web crawling, and third-party integration (GitHub/GitLab). The system is designed to be self-contained, running without external cloud dependencies, and can operate on consumer-grade GPUs. The architecture follows a monorepo pattern with Rust crates for core services (inference, indexing, git operations, download) and TypeScript/JavaScript for the agent and UI. The web dashboard uses GraphQL (Juniper) for API communication, while IDE plugins communicate via LSP. Data flows include: code completion requests from editors → agent → backend model server → response with postprocessing; chat queries → retrieval-augmented generation (RAG) pipeline using indexed code and documentation; and background jobs for syncing repositories, crawling web docs, and indexing commits/issues/PRs. External dependencies include SQLite (via SQLx), llama.cpp, tree-sitter, and various cloud provider APIs for OAuth. The codebase demonstrates strong engineering practices with modular design, extensive testing (unit tests, golden tests), and reusable patterns such as a background job abstraction, config merging system, and a postprocessing pipeline for code completions. However, the polyglot nature (Rust, TypeScript, Java, Kotlin) and multiple client implementations introduce maintenance complexity and potential drift. The repository is actively maintained with frequent releases and a large community (33k+ stars).

RATING: 8.3/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
spring-projects/spring-tools ★ 983 239 APPLICATION

This is the Spring Tools 4 (STS4) repository, a comprehensive set of IDE tooling for Spring Boot development. It provides language servers (LSP) for Spring Boot (Java, YAML, properties, XML), Concourse CI, BOSH, and Cloud Foundry manifests, along with Eclipse plugins and VS Code extensions. The architecture separates headless language servers (built as Spring Boot applications) from IDE-specific frontends, with shared commons libraries for YAML, Java project indexing, metadata, and live process monitoring via Actuator. The codebase is professional and well-structured but shows signs of organic growth over a decade, with some code duplication between the Eclipse and headless/VS Code paths, deprecated API usage, and developer-specific hardcoded paths. It is actively maintained by VMware/Spring engineering team with strong CI/CD pipelines.

RATING: 8.3/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
ChristianChiarulli/nvim ★ 976 238 APPLICATION

This is a personal Neovim configuration repository for Neovim 0.12+, using a modular Lua setup with the built-in `vim.pack` plugin manager. The architecture is clean: `init.lua` loads core config modules (options, keymaps, autocommands, plugin manager, colorscheme, LSP) and auto-loads per-plugin configurations from `lua/plugins/`. The configuration is production-grade for daily development, featuring LSP integration (TypeScript, Rust, Lua, etc.), fuzzy finding via snacks.nvim, a custom statusline, Mason for tool management, and many quality-of-life plugins. The code is well-organized and demonstrates modern Neovim Lua API usage. It is not a generic library but a specific personal config that can serve as a reference or starting point for other Neovim users.

RATING: 8.2/10 MAINT: active DRIFT: low
▸ 1 reusable components found
dhall-lang/dhall-haskell ★ 972 224 APPLICATION

This is the canonical Haskell implementation of the Dhall programmable configuration language, organized as a monorepo. It provides a complete toolchain: a core library for parsing, type-checking, normalization, and import resolution; CLI executables for formatting, linting, freezing, and converting between Dhall and JSON/YAML/CSV/TOML/Nix/Bash; an LSP server for IDE integration; and a documentation generator. The architecture is modular with separate Cabal packages for each conversion backend and developer tool, all sharing the core dhall library. In production, it is used to generate and validate configuration files for systems like Kubernetes, CI pipelines, and Nix packages, ensuring type safety and reproducibility via content-addressed imports and semantic caching.

RATING: 8.1/10 MAINT: maintained DRIFT: medium
▸ 3 reusable components found
marcoroth/stimulus-lsp ★ 302 21 APPLICATION

This repository implements a Language Server Protocol (LSP) server for the Stimulus JavaScript framework, providing intelligent tooling for editors like VS Code. The architecture follows a standard client/server LSP pattern where the TypeScript-based VS Code extension (client) communicates with a TypeScript language server (server) via JSON-RPC. The server parses HTML, ERB, Blade, PHP, and JavaScript/TypeScript files to offer Stimulus-specific features: autocompletion for controllers/actions/targets, diagnostics for incorrect usage, code actions for quick fixes, and code navigation. Key capabilities include validating Stimulus controller existence, action correctness, and proper data attribute usage, with intelligent suggestions for corrections.

RATING: 8.0/10 MAINT: active DRIFT: low
▸ 3 reusable components found
$ loading more...
$ submit: