From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: "Ricardo G. Herdt" Newsgroups: gmane.lisp.guile.user Subject: New release of LSP server; LSP clients for Emacs and VSCodium available Date: Wed, 03 Aug 2022 22:32:11 +0000 Message-ID: <5aa21528d8fb87686687252ef53cf8e4@posteo.de> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="31509"; mail-complaints-to="usenet@ciao.gmane.io" To: guile-user Original-X-From: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Thu Aug 04 00:32:48 2022 Return-path: Envelope-to: guile-user@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oJMv1-0007zt-Kz for guile-user@m.gmane-mx.org; Thu, 04 Aug 2022 00:32:47 +0200 Original-Received: from localhost ([::1]:46374 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oJMv0-0003nJ-G1 for guile-user@m.gmane-mx.org; Wed, 03 Aug 2022 18:32:46 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:40044) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oJMuX-0003mN-UT for guile-user@gnu.org; Wed, 03 Aug 2022 18:32:26 -0400 Original-Received: from mout01.posteo.de ([185.67.36.65]:51277) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oJMuV-00036p-JP for guile-user@gnu.org; Wed, 03 Aug 2022 18:32:17 -0400 Original-Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id 4C66F240028 for ; Thu, 4 Aug 2022 00:32:13 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.de; s=2017; t=1659565933; bh=D3Z+I/0oxL9jLxgFq8GrIJQ4QH9GnYCtw2eJZRTmJXc=; h=Date:From:To:Subject:From; b=eVM5QAowU538jHafFGXUoMCCoJVJ/MTT7//GXdjfh4JcB0IsgF8LDx63QqtKhoVY2 2uu04dffK/Yel9w2MTamyRg2bJL1fhKs++FF05wQtK4U5V8BYhz24N68KgV9zV3mbs uQaWlT0yalaRNVdFYFL1eBDeIT0qJ/jycFSBkugpBFV0rp5MTPGVAxr5/sxqP2RD+a KSgymKtYKpZR1OKye3iyyxPwiOA2VO+nAso99wnhbP/gtcjCq+rKyR3ypwsLkcxHKV Y7+asMRZNWKGstkzVjWX/aZSH9cLRzudRLGJSuKogEqQYzH6BvSkq9FC97uCPRiWEX qudwIOeZeJytA== Original-Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4LymnS69lmz6tr6 for ; Thu, 4 Aug 2022 00:32:11 +0200 (CEST) Received-SPF: pass client-ip=185.67.36.65; envelope-from=r.herdt@posteo.de; helo=mout01.posteo.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Original-Sender: "guile-user" Xref: news.gmane.io gmane.lisp.guile.user:18485 Archived-At: Hi all, I want to announce some releases related to LSP support for Scheme, focusing on Guile. * scheme-lsp-server 0.1.3 Besides bug fixes, here what's new: - scheme-lsp-server now selectively uses geiser code when doable. This is especially the case for Guile. The goal is to encourage myself and contributors to help improving Geiser, and directly benefit of its development. Obviously only Scheme code is reused. - previously scheme-lsp-server assumed an LSP client would fire up a REPL and let the user interact with it, showing LSP-related infos depending on things the user actively loaded. This is not the way most LSP-based tools expect an LSP-server to work though, and has some downsides: + implementing a client is not as trivial as it should be, since the developer has to figure out a way to integrate a REPL into the IDE/editor, and send commands to it to "guide" the LSP server. + developers used to other LSP-based tools can be surprised to see that they have to actively load stuff in order to get meaningful feedback from the IDE. Therefore I did a major design change: scheme-lsp-server now does it's best to automatically compile/import files opened by the user (including dependencies). This makes the task of implementing an LSP client much easier: just launch guile-lsp-server and call it a day. I added some notes regarding creating new LSP clients for other editors/IDE's: https://codeberg.org/rgherdt/scheme-lsp-server#creating-an-lsp-client One important note: for now, the LSP server needs to "see" library definitions in order to compile and import needed libraries. See https://codeberg.org/rgherdt/scheme-lsp-server/#user-content-known-issues. * emacs-lsp-scheme 0.1.0 (available on MELPA) The first versions of emacs-lsp-scheme had a custom REPL (based on Emacs' built-in scheme support) that was connected to the LSP server. Following the changes to the LSP server, I decoupled the emacs-lsp-scheme from the REPL. This seems to be a regression at first, but the idea is that one can simply use "run-scheme" to launch a REPL, and this does not interfere with the LSP server. For deeper integration of Guile and Emacs, Geiser is still the way to go. See the README file for instructions on how to configure it: https://codeberg.org/rgherdt/emacs-lsp-scheme * vscode-scheme-lsp 0.2.1 (available for VSCodium on open-vsx) Following the same ideas of emacs-lsp-scheme, this extension now focuses on basically providing LSP support. The user can install other extensions to get syntax highlighting and an integrated REPL. Here the code: https://codeberg.org/rgherdt/vscode-scheme-lsp. I only tested all this on Debian buster. Please let me know if you experience any trouble installing/using it. Regards, Ricardo G. Herdt