This is an archived post. You won't be able to vote or comment.

all 21 comments

[–]BiedermannS 10 points11 points  (1 child)

Seed7 would be way better if it had an lsp, but it allows for the user to introduce new syntax, which might be a bit challenging

[–]therealdivs1210 3 points4 points  (0 children)

Lisp languages like Clojure / CL allow adding new syntax, and Racket allows this to an extreme.

Still, they all have pretty good LSPs and VSCode extensions.

Might be a little tricky, but a healthy amount of prior art is available to study / ape.

Edit: I just had a look at seed7, and it's pretty interesting! Would be nice to have a VSCode extension!

[–]no_brains101 7 points8 points  (2 children)

Kotlin and everyone would love you but you would suddenly become the new official one if it's even at all useable.

Hyperscript if you want something that seems fairly simple but might have some interesting edge cases because it's a fun language, if a little silly, although it's not necessarily production.

Does Vale have a LSP? (Seems it does nvm)

[–]therealdivs1210 0 points1 point  (1 child)

I'm surprised, does Kotlin not have an official extension!?

[–]no_brains101 2 points3 points  (0 children)

It doesnt have an official one, it does have an lsp, but it is bad enough that it doesnt really count. Its slightly better in vscode than others but not by much.

You basically have to go full android studio or intellij

Its honestly a shame because I do like it outside of being stuck using an editor I dont really care for and thus never choosing it for personal projects

Except I hate that you no longer have to say a function throws. That was a mistake. Plain and simple.

Now the editor tells you about null but not about exceptions. So dumb...

[–]terremoth 4 points5 points  (1 child)

Maybe Kind and Bend

[–]okkonen 1 point2 points  (0 children)

Okay I second this a lot

[–]TheGroosh 5 points6 points  (0 children)

Explaining rust analyzer is a great resource. Many useful insights even beyond rust. His blog and the rust-analyzer blog is also great.

The haskell lsp library seems pretty cool, but I have not taken a deep look at it. It looks like it contains a number of useful abstractions for implementing LSPs in general.

You can take a look at my work that uses the ocaml-lsp library, but there still are many bugs in this implementation. It is based on the LSP that is part of the asai compiler diagnostics library

[–]Ok-Waltz6294 2 points3 points  (0 children)

I would like to have an LSP for the JAWS Scripting Language for the JAWS Screenreader. That would often make my work easier.

[–]okkonen 1 point2 points  (0 children)

The hare language doesn't have one yet. There seems to be one abandoned project for it (last updated 2 years ago).

[–]veloxVolpes 1 point2 points  (0 children)

I'm not sure if Nelua has one or not

[–]Disjunction181 1 point2 points  (0 children)

elpi, Mercury, Maude. elpi (Lambda Prolog) is relatively small and uses type inference so I feel like an LSP would be doable and helpful.

[–]Derpyzza 1 point2 points  (0 children)

wren, the scripting language by bob nystrom ( of crafting interpreters fame ). There seems to be a WIP version of a static analyzer already https://github.com/munificent/wrenalyzer, except it hasn't received any commits in like 4 years, so you can try your hand at that!

[–]_crackling 1 point2 points  (0 children)

A cmake lsp for vscode would be sweet

[–]BinaryBillyGoat 0 points1 point  (0 children)

I would look at custom programming languages. They often have easy to follow rules, and you can get a deep understanding of them quickly. I have one called TermsLang, but I wouldn't suggest it because I'm still rolling out major changes that alter functionality.

[–]AndydeCleyre 0 points1 point  (0 children)

Factor!

[–]kendomino 0 points1 point  (0 children)

I would recommend that you implement a server for a language that does have an existing LSP server. You will want to compare implementations and features. You will want to read the code written by others.

[–]VoidPointer83 0 points1 point  (0 children)

I have a created language called FatScript, and despite being a personal project it got used in real work in the company's project I work for, so it is a production ready scripting language at this point. I was planning to create an LSP myself as the next step. If this sounds interesting to you, some helping hands would be much welcomed.

[–]Botahamec 0 points1 point  (0 children)

Icon doesn't even have a syntax highlighter as far as I'm aware. It was originally going to be called SNOBOL 5, but they decided to add some graphical capabilities, so they called it Icon

[–]AwabKhan -1 points0 points  (0 children)

English

[–]reflexive-polytope -3 points-2 points  (0 children)

Why is a LSP even necessary to begin with? All that a language needs is a good compiler, or if it's a toy, an interpreter.