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.
This repository provides a comprehensive VHDL language toolchain written in Rust, centered around a Language Server Protocol (LSP) implementation. It includes a lossless concrete syntax tree (CST) parser (`vhdl_syntax`), a semantic analysis library (`vhdl_lang`) with name resolution, type checking, and overload resolution, a standalone linter (`vhdl-lint`) with rule selection and auto-fix, a formatter, and a CLI for AST dumping. The architecture is modular, with separate crates for parsing, analysis, linting, and the LSP server, enabling reuse of components like the CST framework and diagnostic system. The codebase demonstrates high craftsmanship with extensive test coverage (including fuzzing and snapshot tests), code generation from a grammar model, and careful handling of VHDL's Latin-1 encoding and source positions. However, it suffers from a dual-parser architecture (the older hand-written parser in `vhdl_lang` coexists with the newer CST parser in `vhdl_syntax`), which introduces duplication and potential drift. Some VHDL-2019 features are partially supported, and the project tracks the latest Rust stable, imposing a high maintenance burden. Overall, it is a production-quality tool for VHDL developers, with several reusable components that could be extracted for other VHDL tooling projects.
This is the idris2-lsp language server, a monolithic LSP server implementation for the Idris2 programming language. It provides standard IDE features such as go-to-definition, hover information, code completions, document symbols, semantic tokens, diagnostics, and various code actions including case splitting, expression search, and refactoring. It runs as a single process reading JSON-RPC messages from stdin and writing responses to stdout, leveraging the Idris2 compiler's API to load modules, resolve names, and perform type-checking. The server is built with Idris2 itself and depends on the lsp-lib library for LSP message types and encoding. While the codebase is well-crafted for its domain, it is tightly coupled to Idris2 internals and the LSP protocol, making it highly specific to the Idris ecosystem and not easily reusable outside that context.