From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Ag Ibragimov Newsgroups: gmane.emacs.devel Subject: Re: Elisp LSP Server Date: Sun, 10 Oct 2021 07:48:56 -0500 Message-ID: References: <16338bdc2497fc51c6fb6d54ab370bfb@webmail.orcon.net.nz> <87ee99dv34.fsf@gmail.com> <07cf50ddddb5a9556aa94201a7ac88c9@webmail.orcon.net.nz> <87r1d0562u.fsf@yahoo.com> <87r1cz7qcd.fsf@posteo.net> <87bl4367av.fsf@yahoo.com> <87fstf7kz4.fsf@posteo.net> <87o8814q1v.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="40014"; mail-complaints-to="usenet@ciao.gmane.io" Cc: psainty@orcon.net.nz, Philip Kaludercic , joaotavora@gmail.com, emacs-devel@gnu.org To: Po Lu , Richard Stallman Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Oct 10 14:49:43 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 1mZYGs-000AE2-Ku for ged-emacs-devel@m.gmane-mx.org; Sun, 10 Oct 2021 14:49:42 +0200 Original-Received: from localhost ([::1]:41458 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mZYGr-0000Es-67 for ged-emacs-devel@m.gmane-mx.org; Sun, 10 Oct 2021 08:49:41 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:43458) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mZYGE-0007wY-FI for emacs-devel@gnu.org; Sun, 10 Oct 2021 08:49:02 -0400 Original-Received: from mail-ot1-x334.google.com ([2607:f8b0:4864:20::334]:41723) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mZYGD-0000sN-0T; Sun, 10 Oct 2021 08:49:02 -0400 Original-Received: by mail-ot1-x334.google.com with SMTP id v2-20020a05683018c200b0054e3acddd91so13471959ote.8; Sun, 10 Oct 2021 05:48:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:in-reply-to:references:date:message-id :mime-version; bh=jrjD2bm3f/rX2FE5PxC9tzksjAjP4A5PMhHDcq4+y9U=; b=ZejpFeQ0T9qurpuS0oHLAw/waLxUqLiKDOE3Esj5ZabxZrHpN8nZ5WTvQc8kK9g5NV pmGRovSPtnC85dQTK4dL+mXcATtktfjDcHvwpxLHHPO/ev/orRv4CZxrCj0Xx7YbS3x4 aMplZ5kcI1Fsrgzp6WOw8DvDsdzsxnsV2/xDLwGIHi+hsUAj1IvoG8cAzijSe8dZzgdZ +j2aIt1lecciM/7smgVT8USqoUpcDvHr3AAo+6QIGNCTKxOsjLOMmfeyoNFnN0TfaXLj MH/wP2iOS8aSuHRWAy0us3R8YEAPau95TrGzzwq9n++huNwp/9v1R8RxEnpPu431FMpp JiBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:in-reply-to:references:date :message-id:mime-version; bh=jrjD2bm3f/rX2FE5PxC9tzksjAjP4A5PMhHDcq4+y9U=; b=qgd/fTQDKNB3CI8UhAX52h90vKgP9tmMkioz8/DBpkxct5k1+1hg+s1C2au5kPZhyu HsW1RkZPEeg6yHvUOpqGD6H+GSakJH7XnrEzNcVS1n/rmEw5kYIi+wvhyDrnIcLF7Wlh 84rzBX/y2wsogHwBBL0eWa34L5MYmimNn6aG3gPCbcCBsiMNBL+CmbCzQvlgAMYoVPZS D6xKmndQXG6uhR+mSD1TJLaEeTN/noAKx/bh9LrJNZHtYEogUGCH2Ak6mQgrCX/DhMep oP1zcWVGxPEl+5ueQ4i0RjDNJjGIAUfl4+vmeZfNmyTtuSB9nmibQOupX4ES6QaJUwhz 2RUQ== X-Gm-Message-State: AOAM530jljaB/Zpo4uOu+od+wXKzqSEruZ+6IYHBi8YL1w8tBQ8NvuTs RHNpoDGwxb091C6j2/Z1ibMMAFumcE1HBw== X-Google-Smtp-Source: ABdhPJxcTv/xAHTeC/wl5pBNfo8bdE2TD3T2ViA+8awtOq3GnRKHmHvfxN0pPOS6q4Yw9AGGbKrRTA== X-Received: by 2002:a9d:3e09:: with SMTP id a9mr16992138otd.22.1633870138498; Sun, 10 Oct 2021 05:48:58 -0700 (PDT) Original-Received: from AIBRAGIM-M-J8Z8 (99-97-209-112.lightspeed.rcsntx.sbcglobal.net. [99.97.209.112]) by smtp.gmail.com with ESMTPSA id q12sm1111625oth.79.2021.10.10.05.48.57 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 10 Oct 2021 05:48:57 -0700 (PDT) In-Reply-To: <87o8814q1v.fsf@yahoo.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::334; envelope-from=agzam.ibragimov@gmail.com; helo=mail-ot1-x334.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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:276663 Archived-At: Po Lu writes: > The OP was proposing that Emacs integrate (by providing imenu > functionality to Visual Studio Code through LSP) with a particular > feature of GitHub, where, through proprietary JavaScript and a > proprietary plugin, anyone can press "." to immediately view code from > GitHub in VS Code. Not quite. I'm not suggesting at all integrating with proprietary software. I'm merely curious if anyone has ever thought about implementing an LSP server for Emacs Lisp. LSP is a standard and an open specification. There already exist several dozen implementations of Language Protocol servers for many different languages. And many of them are perfectly usable in Emacs, thanks to eglot and lsp-mode. And that's great because adhering to the standard makes it a smooth experience for the user. One of the main reasons people leave Emacs, sometimes even after many years of using it, is the substandard language support. They often have to start programming in another language, and it takes too much effort to make Emacs work for a specific language. Simple things like goto definition and autocomplete often won't work as expected. People often have to learn a bunch of independent Elisp packages and figure out ways to make them work together nicely. So many times I've heard: "I love Emacs, used it for almost [so many years] but I had to work with a language [X] and moved to [another] IDE that has first-class support for it." LSP, for many Emacsen has become a true game-changer. You don't have to re-invent the wheel for every single different language, no need to map and re-map the keys (separately for every language) or struggle when a language mode package authors fail to include some features. Wouldn't it be ironic if soon, Emacs gets truly fantastic support for dozens of languages (btw, that list is still growing), yet Elisp would have to ride like a second-class passenger? I think creating Elisp LSP server would provide consistency with all other languages already supported. And as a side effect, that would also make it possible for better navigation and code introspection of Elisp outside of Emacs. Personally, I don't care if a proprietary software vendor like GitHub introduces better features for a language that is the ultimate epitome of free software. Their non-free software would still be written in Emacs (at least some parts of it) - the ultimate tool with unmatched support for programming languages. -- Thanks, Ag