Add PLS to ponyup
It would be of great help to be able to install the Pony Language Server from the ponyup tool just like rust-analyzer from the rustup. Cloning and calling make is great, but not ideal in my humble opinion.
This would probably ease adoption. I am trying to set up a local Emacs development environment to start playing with Pony and would like to have eglot (Emacs default LSP client) auto complete things using the server (instead of the built-in mode with company auto complete).
@victorolinasc are you imagining that this would only be the language server binary or the vscode extension as well. I asume "only the language server", but I want to verify.
Step 1 for this would be creating nightly and release builds of the server and getting them into cloudsmith.
Yes! I meant only the pony-lsp binary.
That plus an up-to-date tree-sitter module would make many modern editors (not considering VSCode here) able to properly handle pony. Like... many editors... just to name a few: Emacs (29+ has eglot and tree-sitter built-in), Kate, Zed, Lapce and so on...
Talking specifically about Emacs, though pony has a complete major mode, it does so tied to external dependencies (like hydra, company, etc...). With lsp + tree-sitter we could provide a smaller and simpler package that would fix most of the identation issues there (because tree-sitter has more data about code than pure regexes) and allow other completion mechanisms (like corfu and so on).
Then, when something evolved here in the server, like, code actions for specific pony idioms, then all editors would benefit. This is how rust is doing it at least and in my opinion is a nice architecture.
THanks for replying so fast :)
Give it two weeks max and I can set up nightly and release builds in cloudsmith. Once we have this infrastructure in place, we could also swap this implementation (which is still very beta) with the great work done at https://github.com/chalcolith/eohippus
There is an up-to-date treesitter grammar for pony: https://github.com/tree-sitter-grammars/tree-sitter-pony @victorolinasc is this what you were referring to with "tree-sitter module"?
@mfelsche i can take setting up the builds if you can help out by testing them.
we could also swap this implementation (which is still very beta) with the great work done at https://github.com/chalcolith/eohippus
@chalcolith how would you feel about that in general? do you feel it is further along? would you be ok with moving all the required libraries over to the ponylang org? we only support ponylang org projects that aren't dependent on an individual and adding to ponyup would require such a move. that would also mean you in theory aren't the sole driver or a particular codebase.
Give it two weeks max and I can set up nightly and release builds in cloudsmith. Once we have this infrastructure in place, we could also swap this implementation (which is still very beta) with the great work done at https://github.com/chalcolith/eohippus
@mfelsche if we were planning on dropping this repository, i'd prefer to not spend any time adding support for it to ponyup etc. i think making a decision with @chalcolith and @jemc on the topic would be a good idea. can you attend a sync in the near future where we could have a synchronous discussion of the topic?
@mfelsche We discussed this during sync and @chalcolith says that eohippus isn't ready. It doesn't parse the entire language and is very inefficient. He says that this version should be the official one for now.
Given that I will try to get releases done for this starting this week unless you tell me to hold off.
Yes @mfelsche ! That is what I meant: tree-sitter grammar. I will add an issue for discussion on the ponylang-major-mode so that we don't deviate from the subject here.
Thanks for the links! It is nice to see that there is a more complete server. I agree with the current approach here (talk it up with @chalcolith ).
I can make it to the next sync on june 24th.
Please go on with the release-making @SeanTAllen