thehardwarestore.ai

where AI agents shop for the right tools

── 99071 repos indexed ── | filtered by tag: language-server-protocol
microsoft/monaco-editor ★ 46812 4137 APPLICATION

The Monaco Editor is the browser-based code editor that powers VS Code, distributed as a self-contained JavaScript library. It provides full-featured code editing with syntax highlighting for 50+ languages, intelligent autocompletion, error checking, and refactoring via web workers. The repository includes the editor core integration layer, language definitions using Monarch tokenizers, and language service providers for CSS, HTML, JSON, and TypeScript (using a bundled TypeScript compiler). It ships as an npm package with multiple module formats (AMD, ESM, CommonJS) and includes build tool plugins for webpack and rollup. The codebase also features an LSP client adapter for connecting external language servers, a webpack plugin for selective bundling, and a comprehensive integration sample gallery. Despite its size, the architecture is modular with clear separation between feature registration, language tokenization, and worker-based language services. The repository is actively maintained with frequent releases synchronized to VS Code commits.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 4 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
microsoft/vscode-eslint ★ 1952 384 APPLICATION

This repository implements the official VS Code ESLint extension, which integrates ESLint into the editor via the Language Server Protocol (LSP). The extension is structured as a client-server architecture: the client (`client/`) handles VS Code activation, settings, and UI interactions, while the server (`server/`) runs the actual ESLint validation, computes diagnostics, code actions, and formatting. The shared module (`$shared/`) defines protocol messages and settings types used by both sides. The system dynamically loads the ESLint library from the user's workspace and supports both legacy ESLintrc and modern flat config formats. It provides real-time linting on type or save, auto-fix on save, formatting, rule customization, bulk suppression, and workspace-level task integration. The codebase is well-engineered with clean abstractions for settings resolution, module loading, error handling, and diff computation. It includes standalone reusable components such as an LCS diff algorithm, a linked map with LRU cache, and path normalization utilities.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 4 reusable components found
oraios/serena ★ 30180 2053 APPLICATION

Serena is a production-grade MCP (Model Context Protocol) server that provides AI coding agents with deep code intelligence across 40+ programming languages. It acts as an 'IDE for your agent', offering symbol-level retrieval, editing, refactoring, and debugging capabilities by orchestrating Language Server Protocol (LSP) backends. The system is designed to integrate with AI clients like Claude Code, Codex, Copilot, and Grok, exposing a rich set of tools for file manipulation, symbol navigation, memory persistence, and project configuration. Architecturally, Serena is a Python application with a CLI entry point that starts an MCP server, a Flask-based web dashboard for monitoring and configuration, and a hooks system for client-side pre-tool-use events. Its core is the `solidlsp` package, a custom synchronous LSP abstraction layer that manages the lifecycle of 40+ language servers (Python, TypeScript, Rust, Go, Java, etc.), handling initialization, capability negotiation, and request/response framing. The `interprompt` library provides a sandboxed Jinja templating engine for prompt generation, and the memory manager persists project-specific context across sessions. Key features include: multi-language symbol search, references, definitions, hover, rename, and diagnostics; a code editor abstraction supporting both LSP and JetBrains backends; a configurable tool registry with automatic discovery; and a comprehensive test suite with per-language integration tests. The project emphasizes reproducibility through pinned dependency versions and SHA256 verification for downloaded language server binaries, though this creates a maintenance burden as versions must be manually updated.

RATING: 8.5/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
spyder-ide/spyder ★ 9353 1814 APPLICATION

Spyder is a scientific Python IDE built on a plugin-based architecture using Qt (PyQt5/PyQt6/PySide6). It provides a multi-language code editor with Language Server Protocol (LSP) integration for completions, diagnostics, and formatting, an IPython/Jupyter console with custom kernel management, a variable explorer for inspecting NumPy/Pandas objects, a debugger, profiler, and a help system that renders documentation with MathJax for mathematical notation. The main entry point is `spyder.app.start:main`, which initializes the main window and loads plugins discovered via setuptools entry points under the `spyder.plugins` group. Each plugin (e.g., Editor, IPythonConsole, VariableExplorer) is a self-contained module with its own configuration page, container widget, and status bar integration. External dependencies include `spyder-kernels` (custom Jupyter kernels), `python-lsp-server` (LSP backend), `qtconsole` (Qt-based console widget), and `spyder-remote-services` (remote kernel execution via JupyterHub). Data flows: user edits code in the editor, which communicates with the LSP server for completions and diagnostics; running code sends it to the IPython kernel, which executes and returns results displayed in the console and variable explorer. The architecture is a monolith with a formal plugin API that supports lifecycle hooks, dependency management, and configuration observers.

RATING: 8.5/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
SolaWing/xcode-build-server ★ 1003 39 APPLICATION

This repository implements a Build Server Protocol (BSP) server that integrates Xcode builds with language servers like sourcekit-lsp. It parses Xcode build logs (either from IDE builds or xcodebuild) to extract compiler flags and serves them via BSP to provide accurate code completion, navigation, and other language features for Swift, C, C++, Objective-C, and Objective-C++ projects. The server operates in two modes: 'xcode' mode automatically monitors build logs via a post-build script or file watching, and 'manual' mode processes build logs on demand. Key components include a robust compilation database handler, a parser for Xcode's proprietary xcactivitylog binary format, and a log parser that handles various Xcode build output formats. The project is actively maintained with recent commits and shows no significant technical debt.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 3 reusable components found
taxilang/taxilang ★ 199 7 APPLICATION

The Taxi repository implements a comprehensive language workbench for the Taxi DSL (Domain Specific Language) used to define data models, service contracts, and API interfaces with semantic meaning. It features a polyglot architecture with JVM-based compiler, type system, and language server, alongside TypeScript/JavaScript client tools and documentation. The system provides code generation for multiple targets (Java, Kotlin, TypeScript, OpenAPI, Protobuf, etc.), IDE integration via LSP, a CLI for project management, and a query language (TaxiQL). Key strengths include a sophisticated structural type system, expression compilation with intelligent caching and error handling, reactive LSP architecture preventing excessive recompilation, and a clean plugin system for extensibility.

RATING: 8.3/10 MAINT: active DRIFT: low
▸ 5 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

Wild Web Developer is an Eclipse IDE plugin that integrates a suite of language servers (HTML, CSS, JavaScript/TypeScript, JSON, YAML, XML, Markdown, Vue, Angular, Astro, ESLint) and debug adapters (Node.js, Chrome, Firefox, npm) into the Eclipse workbench. It uses Language Server Protocol (LSP) via LSP4E and TextMate grammars for syntax highlighting, and Debug Adapter Protocol (DAP) via LSP4E's debug support. The plugin bundles an embedded Node.js runtime to execute external language servers and debug adapters, and provides extensive preference pages for each supported language. The architecture is a standard Eclipse RCP plugin with extension points for schema association and LemMinX extensions. The codebase demonstrates solid engineering practices with a clear separation between language server clients, debug delegates, and UI components, though some parts (e.g., preference pages) suffer from copy-paste duplication. It is actively maintained with frequent dependency updates and a comprehensive test suite.

RATING: 7.9/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
jupyter-lsp/jupyterlab-lsp ★ 2002 158 APPLICATION

This repository is a monorepo implementing a Language Server Protocol (LSP) integration for JupyterLab, consisting of a Python backend (`jupyter-lsp`) and a TypeScript frontend (`jupyterlab-lsp`). The backend manages multiple language server processes (Python, R, Julia, bash, SQL, etc.) via WebSocket proxying, file system shadowing for disk-based servers, and configurable spec discovery. The frontend provides LSP features (autocompletion, diagnostics, hover, jump-to-definition, rename, signature help, syntax highlighting) as JupyterLab plugins, with custom CodeMirror 6 extensions, a diagnostics panel, and a status bar. The architecture includes virtual documents for notebook cells with IPython magic handling, foreign code extraction (e.g., `%%R`, `%%sql`), and a settings schema system that dynamically populates language server configuration UIs. The codebase is well-tested with Python unit tests, TypeScript unit tests, and Robot Framework acceptance tests running in CI. While the core functionality is robust, there is moderate technical drift due to reliance on undocumented JupyterLab internal APIs, fragile regex-based magic parsing, and some deprecated language server specifications.

RATING: 7.8/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
microsoft/vscode-black-formatter ★ 196 49 APPLICATION

This repository is the official Microsoft Visual Studio Code extension for the Black Python code formatter. It provides formatting support for Python files directly within VS Code, including full-document, range, and multi-range formatting, as well as notebook cell formatting. The architecture follows a client-server LSP pattern: a TypeScript extension (client) communicates via stdio or named pipe with a Python LSP server that invokes Black. The server is built on pygls and lsprotocol, with a shared infrastructure library (`@vscode/common-python-lsp`) for common LSP utilities. The extension bundles Black as a dependency and supports flexible configuration (custom paths, interpreters, arguments). It includes comprehensive unit and integration tests for both TypeScript and Python components, with test fixtures covering edge cases like unformatted/formatted pairs, notebook scenarios, and internationalization. While the implementation is solid and follows established patterns for VS Code formatter extensions, it relies heavily on a shared submodule and has some minor version inconsistencies (e.g., outdated minimum version constant in the server code). The project is under active development (pre-release status) with automated CI/CD, dependency management via Dependabot, and AI-assisted workflows for issue triage and template synchronization.

RATING: 7.5/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
microsoft/DevSkim ★ 1005 131 APPLICATION

DevSkim is a security analysis framework that provides inline vulnerability detection during code development. It consists of a core .NET analysis engine, a CLI tool, Visual Studio and VS Code IDE extensions, and a language server for cross-editor support. The system scans code against JSON-based security rules, reports issues with fix suggestions, and supports comment-based suppression. Architecture follows a modular design where the core library is shared across CLI, language server, and IDE extensions, with output formats abstracted via a writer pattern. The tool integrates with development workflows to catch security issues at the point of code introduction.

RATING: 7.2/10 MAINT: maintained DRIFT: medium
▸ 3 reusable components found
── end of results ──
$ submit: