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