From mboxrd@z Thu Jan  1 00:00:00 1970
Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail
From: Christine Lemmer-Webber <cwebber@dustycloud.org>
Newsgroups: gmane.lisp.guile.user
Subject: Re: Guile outside of Emacs + Geiser
Date: Sat, 30 Sep 2023 08:42:26 -0400
Message-ID: <875y3rn6x6.fsf@dustycloud.org>
References: <87jzsbv387.fsf@dustycloud.org>
 <e2f067cb85f449621626097e2151f9b4@posteo.de>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214";
	logging-data="1818"; mail-complaints-to="usenet@ciao.gmane.io"
User-Agent: mu4e 1.10.5; emacs 28.2
Cc: guile-user@gnu.org
To: "Ricardo G. Herdt" <r.herdt@posteo.de>
Original-X-From: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Sat Sep 30 17:58:43 2023
Return-path: <guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org>
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 <guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org>)
	id 1qmcMb-000AeW-5w
	for guile-user@m.gmane-mx.org; Sat, 30 Sep 2023 17:58:42 +0200
Original-Received: from localhost ([::1] helo=lists1p.gnu.org)
	by lists.gnu.org with esmtp (Exim 4.90_1)
	(envelope-from <guile-user-bounces@gnu.org>)
	id 1qmcM9-0002Nf-IY; Sat, 30 Sep 2023 11:58:13 -0400
Original-Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <cwebber@dustycloud.org>)
 id 1qmcM7-0002NH-VK
 for guile-user@gnu.org; Sat, 30 Sep 2023 11:58:12 -0400
Original-Received: from out3-smtp.messagingengine.com ([66.111.4.27])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <cwebber@dustycloud.org>)
 id 1qmcM0-0006pW-0O
 for guile-user@gnu.org; Sat, 30 Sep 2023 11:58:11 -0400
Original-Received: from compute3.internal (compute3.nyi.internal [10.202.2.43])
 by mailout.nyi.internal (Postfix) with ESMTP id CCA9E5C0130;
 Sat, 30 Sep 2023 11:58:00 -0400 (EDT)
Original-Received: from mailfrontend2 ([10.202.2.163])
 by compute3.internal (MEProxy); Sat, 30 Sep 2023 11:58:00 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dustycloud.org;
 h=cc:cc:content-type:content-type:date:date:from:from
 :in-reply-to:in-reply-to:message-id:mime-version:references
 :reply-to:sender:subject:subject:to:to; s=fm2; t=1696089480; x=
 1696175880; bh=+HPQcdF0y5ay9mcv/C+vccfFmdhn9ZT7zjrqDGBJRjk=; b=J
 HmvQNGeJLjl59NmUkJQKPjRq7BxvRZQVnRSuh9dqL+gye0b14QXc+d36wl7A2xLd
 wIaBrH2S5fDnUJZhu8Klc/7YAkFUamw3YW+kNtHTAp/rNq0nTvBoXkuVjkaYQ6tg
 WyqZHjgwilCpJE/lhmpbac5s9+iLeCvz1CZDtBkCuG5wtRZx2hi33OPll5fonYk1
 EhxrGi02+dFhaPWOvjbcfkOn/7JvQ2W+64hWfIqJmZ5tCiSEwHEOtZJsaBH1jf8E
 ANjnbwuUh6bNlUQ51QOq6hKpnN6tuwmqSSkhyjFu0GsG/IlZinljuXxJumNIztDU
 Q0TE4hP/6zxzXixksxYng==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:cc:content-type:content-type:date:date
 :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
 :message-id:mime-version:references:reply-to:sender:subject
 :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender
 :x-sasl-enc; s=fm2; t=1696089480; x=1696175880; bh=+HPQcdF0y5ay9
 mcv/C+vccfFmdhn9ZT7zjrqDGBJRjk=; b=WsjjFIkX9fbtiiPdau2YgZigf40cu
 QdQsBSOSB1vIGnGLImAO/t9QZKCUjY3RStAJeAwlorhnRNmSGmiua9ppuHElmXDk
 QRGhc4LklTSAp1J9P20AjfqabBtuHsFY4QTV2RwVrjT6tfQhzlW7yoagw7QGkSoT
 o4TCQxeTBLVTqCqM90LPWZTY1Q5RVVb3SNdd56ixsP/CFa7vjbjKLHMWpTmeOy8Y
 3x+2S/U6EHbY0v1Dj6YaF8g9d8p5xnGOwEPY93/nCvydkST4v78vCSVh8I76g5VZ
 NzvoKvmrXsYk392TDgHg02hyhL+Fv2xtwu+2yXXdwcHfC9c2SkmqUSw0Q==
X-ME-Sender: <xms:iEUYZaZazQOJYvIOmzUbf6aB32Z4XmRFHtWnmN5FvnkXV4qnLLLuWw>
 <xme:iEUYZdbY3upyBdaVQ-DBMQl0pYufZIvEjxtPLajbunK7ImewV0jOWvPw3_u6876l9
 R0TAwtUrmdTTmkabW8>
X-ME-Received: <xmr:iEUYZU_vWqgBXVYdKXbraCMtzepx2-4aOwhGFHTEyzNYfvMuWBuLPOdxOW11KX-NsWU7Io3DI6VbJ-gTcMr57OO1>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedruddvgddtudcutefuodetggdotefrodftvf
 curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
 uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc
 fjughrpehffgfhvfevufffjgfkgggtsehttdertddtredtnecuhfhrohhmpeevhhhrihhs
 thhinhgvucfnvghmmhgvrhdqhggvsggsvghruceotgifvggssggvrhesughushhthigtlh
 houhgurdhorhhgqeenucggtffrrghtthgvrhhnpeegudduueeuieelieeufeevgefgffdu
 uedvkeeiudejveffgeehfeefjeeulefhudenucffohhmrghinheptghouggvsggvrhhgrd
 horhhgpdhgnhhurdhorhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehm
 rghilhhfrhhomheptgifvggssggvrhesughushhthigtlhhouhgurdhorhhg
X-ME-Proxy: <xmx:iEUYZcpKcMUBL5FVfZmYgt_gn9kWERxixET-dBOpofRMngFToao3QQ>
 <xmx:iEUYZVoYfU5FXNVBjEsq_cfQJXYDRB4D_0vRRIKEpvvVILwgVgqvRQ>
 <xmx:iEUYZaTWAs-xd5twFjk3UVudk1qV5267BdpaDb1sU5J_1Aw0e2Ac0A>
 <xmx:iEUYZUQHE_6Ciz_cKomkLK5oi_oifNkTTFxvI5L_m1MdpVPFa9hShA>
Feedback-ID: i006446df:Fastmail
Original-Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat,
 30 Sep 2023 11:58:00 -0400 (EDT)
In-reply-to: <e2f067cb85f449621626097e2151f9b4@posteo.de>
Received-SPF: pass client-ip=66.111.4.27; envelope-from=cwebber@dustycloud.org;
 helo=out3-smtp.messagingengine.com
X-Spam_score_int: -11
X-Spam_score: -1.2
X-Spam_bar: -
X-Spam_report: (-1.2 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_03_06=1.592,
 DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
 RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001,
 SPF_PASS=-0.001 autolearn=no 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 <guile-user.gnu.org>
List-Unsubscribe: <https://lists.gnu.org/mailman/options/guile-user>,
 <mailto:guile-user-request@gnu.org?subject=unsubscribe>
List-Archive: <https://lists.gnu.org/archive/html/guile-user>
List-Post: <mailto:guile-user@gnu.org>
List-Help: <mailto:guile-user-request@gnu.org?subject=help>
List-Subscribe: <https://lists.gnu.org/mailman/listinfo/guile-user>,
 <mailto:guile-user-request@gnu.org?subject=subscribe>
Errors-To: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org
Original-Sender: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org
Xref: news.gmane.io gmane.lisp.guile.user:19207
Archived-At: <http://permalink.gmane.org/gmane.lisp.guile.user/19207>

That's interesting.  Thank you for both the work and the observations
Ricardo!

It's interesting to hear, but maybe not surprising, that LSP seems to be
more oriented around a static programming mindset than a lispy
REPL-oriented development environment.

I guess it will be, as you say, more dedicated work to get proper Guile
support into these editors aside from "just using LSP", but that wasn't
obvious to me until I heard of your experiences!

 - Christine

"Ricardo G. Herdt" <r.herdt@posteo.de> writes:

> Hi Christine,
>
> I started writing a Guile LSP server a while ago
> (https://codeberg.org/rgherdt/scheme-lsp-server). Like you said it is
> incomplete, but I got following features so far:
>
> - show signature
> - show documentation
> - autocompletion
> - jump to definition
> - show diagnostics
>
> There is an open issue to integrate it into Guix:
> https://issues.guix.gnu.org/60286
>
> I also wrote a simple client for VS Code:
> https://codeberg.org/rgherdt/vscode-scheme-lsp
> This extension is focused on LSP support though, sort of a proof of
> concept. Syntax highlighting, REPL support etc could be integrated
> with other extensions. Or someone could implement a more involved
> extension to integrate these features, like what Magic Racket seems to
> do.
>
> Honestly I have mixed feelings towards LSP. It's kind of a different
> mindset compared to traditional lisp editors: you get a language
> server that typically analyses the project statically, providing
> information regardless of the user's interaction with the REPL. My
> implementation relies, at least for Guile, on Geiser, so it works by
> interaction with a running Guile instance in the background. It might
> be enough for users coming from other editors, but I still prefer the
> way Slime/Swank works, where the REPL is the same image that provides
> information to the editor.
>
> Regards,
>
> Ricardo
>
> Am 27.09.2023 21:07 schrieb Christine Lemmer-Webber:
>> There's a long thread on guix-devel which is related and touches on
>> many
>> things, but I thought I'd narrow in on this one thing.
>> Has anyone had a "good" experience programming with Guile without
>> using
>> Emacs?  If so, what was your development experience like?
>> Furthermore, what's the right direction to making non-Emacs users
>> have
>> as nice of an experience as Emacs users do?  Racket, for instance, has
>> lovely support in vscode with "Magic Racket".  What's the right path to
>> recommend for the present, and what's the best path to improve the
>> future?  LSP?  There are a few incomplete implementations I think but I
>> haven't tried them.
>> (Let's leave aside whether or not everyone should be using Emacs, or
>> other approaches to make Emacs easier for newcomers.  This thread is
>> specifically about making Guile useful to people who already have a
>> tool
>> they like and present experiences.)
>>  - Christine