A Language Server Protocol implementation for Crystal providing code diagnostics, autocompletion, and go-to-definition.
Crystalline is a Language Server Protocol (LSP) implementation for the Crystal programming language. It provides IDE-like features such as code diagnostics, autocompletion, go-to-definition, and formatting within compatible code editors. It solves the problem of lacking robust language tooling for Crystal developers.
Crystal developers who use editors like VSCode, Vim/Neovim, or Emacs and want enhanced coding assistance like autocompletion and error checking.
Developers choose Crystalline because it is the primary open-source LSP for Crystal, offering essential language features despite the compiler's limitations. It integrates seamlessly with popular editors and is built specifically for the Crystal ecosystem.
A Language Server Protocol implementation for Crystal. 🔮
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides essential tools like syntax checking, formatting, and go-to-definition, specifically designed for Crystal's compiler workflow as outlined in the features section.
Integrates seamlessly with VSCode, Vim/Neovim, and Emacs through standard LSP configurations, detailed in the usage guide for each editor.
Written in Crystal itself, ensuring accurate language semantics and deep integration with the compiler's type inference and limitations.
Offers flexible entry point and project configuration via shard.yml, adapting to monorepos and custom compilation flags, as shown in the setup instructions.
The maintainer has stated they are not actively developing new features or fixing bugs, which limits long-term reliability and support, as highlighted in the project status.
High memory usage and long compilation times for large projects, admitted in the limitations, can hinder responsiveness and editor integration.
Lacks advanced LSP capabilities like refactoring or incremental parsing, due to the constraints of the Crystal compiler and non-permissive parser.