[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
LSP Server for CHICKEN (and more ...)
From: |
Ricardo G. Herdt |
Subject: |
LSP Server for CHICKEN (and more ...) |
Date: |
Sat, 11 Jun 2022 12:09:05 +0000 |
Hi folks!
I mentioned my work on an LSP server for Scheme a while ago. For those
that don't know the Language Server Protocol (LSP), it is meant for
adding programming language support for IDEs and editors that implement
the protocol (nowadays most of them support it). After a long pause
period due to private reasons, I finally managed to get it into a
working state, so here my results:
1) You can find the server here:
https://codeberg.org/rgherdt/scheme-lsp-server
For now I am focusing on Guile 3 and CHICKEN 5. The idea is to write as
much R7RS for common code as possible (like representing documents,
fetching word under cursor etc.) and leave implementation specific code
to dedicated files. So far I managed to implement auto-completion, fetch
signature, fetch documentation and jump to definition. "Jump to
definition" has some particularities in the CHICKEN case (I basically
scan some paths for scheme files and keep track of changes) see
https://codeberg.org/rgherdt/emacs-lsp-scheme#chicken.
note: salmonella's Testing is failing, although chicken-install -test
works. I'm investigating it.
2) An LSP server without a client is quite useless, so I'm also sharing
an emacs-lsp client:
Repo: https://codeberg.org/rgherdt/emacs-lsp-scheme
I will create a PR to melpa for this. Until it is merged, you can clone
the repo somewhere, 'load' it and follow the instructions in the README
to activate it.
3) The whole idea behind LSP is to improve language support across
multiple IDEs/editors. So I started a proof of concept in VS Code:
https://codeberg.org/rgherdt/vscode-scheme-lsp
Since I don't use VS Code, I don't know how similar extensions typically
work and don't have a clear idea how a lispy LSP client should/could
look like in it. If you have ideas, or want to contribute, feel free to
contact me. It is not documented nor published yet, but already works
for the functionality mentioned (there are a couple of commands to
launch a REPL and load files on it). I will investigate how to automate
installation of the LSP server before publishing it and let you know.
Everything is on an early stage of development, and APIs may change. I
tested it using following software:
- CHICKEN 5.3.0
- Guile 3.0.8
- Emacs 27.1 and 28.1
- Debian Bullseye and Ubuntu 18.04
Any questions, suggestions, critics and contributions are welcome. You
can also reach me on @libera's #chicken, #scheme channels (rgherdt).
Have a nice weekend!
Ricardo
- LSP Server for CHICKEN (and more ...),
Ricardo G. Herdt <=
- Re: LSP Server for CHICKEN (and more ...), Mario Domenech Goulart, 2022/06/11
- Re: LSP Server for CHICKEN (and more ...), Ricardo G. Herdt, 2022/06/12
- Re: LSP Server for CHICKEN (and more ...), Mario Domenech Goulart, 2022/06/13
- Re: LSP Server for CHICKEN (and more ...), r . herdt, 2022/06/13
- Re: LSP Server for CHICKEN (and more ...), Mario Domenech Goulart, 2022/06/13
- Re: LSP Server for CHICKEN (and more ...), Ricardo G. Herdt, 2022/06/13
- Re: LSP Server for CHICKEN (and more ...), Mario Domenech Goulart, 2022/06/13
Re: LSP Server for CHICKEN (and more ...), Richard Huxton, 2022/06/12