Hi Ricardo, On Sat, 11 Jun 2022 12:09:05 +0000 "Ricardo G. Herdt" <r.he...@posteo.de> wrote:
> 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. Maybe http://wiki.call-cc.org/eggref/5/salmonella#testing-executable-files-installed-by-eggs can help. > 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! Many thanks for the update! All the best. Mario -- http://parenteses.org/mario