# "Why isn't there an LSP for Crystal?"

**URL:** <https://forum.crystal-lang.org/t/why-isnt-there-an-lsp-for-crystal/7687>\
**Category:** Tooling\
**Created:** [February 3, 2025, 3:43am UTC](https://forum.crystal-lang.org/t/why-isnt-there-an-lsp-for-crystal/7687 "2025-02-03T03:43:54Z")\
**Posts on this page:** 1\
**Showing post:** 13

<div class="post-metadata">

**Author:** ![nobodywasishere](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.crystal-lang.org/nobodywasishere/32/1983_2.png) [@nobodywasishere](https://forum.crystal-lang.org/u/nobodywasishere)\
**Post date:** [February 7, 2025, 4:24pm UTC](https://forum.crystal-lang.org/t/why-isnt-there-an-lsp-for-crystal/7687/13 "2025-02-07T16:24:15Z")

</div>

> [@Proposal: Interfaces for more generic code](https://forum.crystal-lang.org/t/proposal-interfaces-for-more-generic-code/2103/2):
>
> This is a great idea, and I’d like this to happen. The problem is that interfaces are typed, but in the rest of the language it’s not mandatory to type your methods. So a user will create a type with def to\_i without an explicit return type, and the compiler won’t consider that type. For example BigDecimal has to\_i without a return type. Same goes for BigFloat, Complex and maybe others. The problem is that when you create an interface expecting to “capture” existing types with it, that might…

---

_[View the full topic](https://forum.crystal-lang.org/t/why-isnt-there-an-lsp-for-crystal/7687)._
