From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: Elisp LSP Server Date: Tue, 12 Oct 2021 08:22:06 -0400 Message-ID: References: <16338bdc2497fc51c6fb6d54ab370bfb@webmail.orcon.net.nz> <87ee99dv34.fsf@gmail.com> <07cf50ddddb5a9556aa94201a7ac88c9@webmail.orcon.net.nz> <87fstf3god.fsf@fastmail.fm> <87ily2947q.fsf@yahoo.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="8692"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) Cc: Po Lu , Joost Kremers , rms@gnu.org, emacs-devel@gnu.org To: Ag Ibragimov Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Oct 12 14:24:39 2021 Return-path: Envelope-to: ged-emacs-devel@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 1maGpi-0001wG-JF for ged-emacs-devel@m.gmane-mx.org; Tue, 12 Oct 2021 14:24:38 +0200 Original-Received: from localhost ([::1]:55840 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1maGph-0000lb-FX for ged-emacs-devel@m.gmane-mx.org; Tue, 12 Oct 2021 08:24:37 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:49734) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1maGnV-0007QO-AQ for emacs-devel@gnu.org; Tue, 12 Oct 2021 08:22:21 -0400 Original-Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:36261) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1maGnR-00016B-P6; Tue, 12 Oct 2021 08:22:19 -0400 Original-Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 0B73D44064F; Tue, 12 Oct 2021 08:22:14 -0400 (EDT) Original-Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 70722440460; Tue, 12 Oct 2021 08:22:08 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1634041328; bh=z6siCM/KY1lm3WeDccjaM2Vkdc5MN8MjQiRP0P31afM=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=O0/chOwCrAj8sijw8AG4q+etztvR2E7pQ+PJR13QX885/wrNZ0LOpD+Hx+/m2w2V5 NGKvYO00X1zJ4J8ZmtH6MhHD5UmhXDra4WinqGfckJo8GlZuR1McDOiTzwkVjg3M+i xPWVh46jGh+cfEaKLy6g3K06q1yREhc1BCjKiD43c1yejEVwNr7OsSXQA8Yq6/aUwe qz1AbrcwXYeuIZnUVi7Xcc7lQT7wQYyfOlQawypAWV+pON36W3svUToj+HX0jdJI4o xOQ/m+lUAqbFBSUX17UNviXY9prsI+linndcMGwOqq0D98mvw5MUWUpKlIKoQyjac5 ss4LCd4z3sViw== Original-Received: from milanesa (unknown [45.72.241.23]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 27288120187; Tue, 12 Oct 2021 08:22:08 -0400 (EDT) In-Reply-To: (Ag Ibragimov's message of "Tue, 12 Oct 2021 02:22:44 -0500") Received-SPF: pass client-ip=132.204.25.50; envelope-from=monnier@iro.umontreal.ca; helo=mailscanner.iro.umontreal.ca X-Spam_score_int: -42 X-Spam_score: -4.3 X-Spam_bar: ---- X-Spam_report: (-4.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:276784 Archived-At: > - Has anyone ever tried figuring out something similar? Surely, in 45 > years of Emacs, someone must have done something like that? The idea of an ELisp LSP server has been mentioned back when ELisp LSP clients (lsp-mode and eglot) got off the ground. I don't know of anyone having attempted to implement it, tho. > - If someone attempts to create a cli tool that potentially could > introspect, lint, format, and maybe even refactor elisp outside of > Emacs, where would they need to be looking? I don't understand what kind of answer you're looking for. AFAIK most of the pieces are readily available in Emacs itself. So I'd expect it's largely an effort of integrating those pieces (but there's probably a fair bit of code missing to implement the server part of the LSP protocol). > - Is it possible to build something like this by examining relevant > pieces of C in Emacs codebase? I'd expect an ELisp LSP server would be written 100% in ELisp. Stefan