chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: LSP Server for CHICKEN (and more ...)


From: Mario Domenech Goulart
Subject: Re: LSP Server for CHICKEN (and more ...)
Date: Sat, 11 Jun 2022 17:18:42 +0200

Hi Ricardo,

On Sat, 11 Jun 2022 12:09:05 +0000 "Ricardo G. Herdt" <r.herdt@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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]