From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Vibhav Pant Newsgroups: gmane.emacs.devel Subject: Re: Language Servers and Emacs Date: Wed, 12 Apr 2017 14:33:07 +0530 Message-ID: References: <20170411122816.751a130f@jabberwock.cb.piermont.com> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-Trace: blaine.gmane.org 1491987825 21918 195.159.176.226 (12 Apr 2017 09:03:45 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Wed, 12 Apr 2017 09:03:45 +0000 (UTC) Cc: "emacs-devel@gnu.org" To: "Perry E. Metzger" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Apr 12 11:03:40 2017 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cyEBc-0005VY-O7 for ged-emacs-devel@m.gmane.org; Wed, 12 Apr 2017 11:03:36 +0200 Original-Received: from localhost ([::1]:43036 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cyEBi-0007tk-Mp for ged-emacs-devel@m.gmane.org; Wed, 12 Apr 2017 05:03:42 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:40047) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cyEBX-0007sJ-La for emacs-devel@gnu.org; Wed, 12 Apr 2017 05:03:32 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cyEBW-0005aQ-IV for emacs-devel@gnu.org; Wed, 12 Apr 2017 05:03:31 -0400 Original-Received: from mail-yw0-x230.google.com ([2607:f8b0:4002:c05::230]:36555) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cyEBW-0005a2-E4 for emacs-devel@gnu.org; Wed, 12 Apr 2017 05:03:30 -0400 Original-Received: by mail-yw0-x230.google.com with SMTP id j9so9036551ywj.3 for ; Wed, 12 Apr 2017 02:03:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=4vPeOOruUU6eLcML+ikJ0Ltt1irlHGLNV7dWnXWDfJg=; b=qrZQsrOxwNHmbMVpvFl7rWzz76VRapKS79nfzcbCI/fdNBcLTs0eqQMGJs67RuZiYc rlZU2wdD2wHfmjTe/jRttLO5IClzIsRmttukxAOpmorkhJTn2AcA1RuedHpRxlShq8gr pKSvI8uEsq25BjplyFD/jDwu+KwmP2dfcUnSNB8ZdK/vSLxIFSMEXc4dbHpMOSwfA8C7 itJxXAWLSyTbaTRCsMZ9rlthrO+xQMCzxGggM9dK+PMbV8XFdS531IMVdSz35ZMzPZJS eApmQXeh3WmwF5hGsicJvf/R5XYj9cmpJwCq1xuIMcc5fFG+cNyGbHBxEIgvnxx1rI+g afZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=4vPeOOruUU6eLcML+ikJ0Ltt1irlHGLNV7dWnXWDfJg=; b=fB2EY27r4D93jUwSRauOGRpCgTP69LtMQgpCN/C1AbiRbPGgTE1Siv4ufqfQr8hre3 151socy9p/jbt8QvhrRXKFSwghplBLoWN2irnf8KKHpcYJmY3K7EATY128OnXxISrI1X tHJC0jQ+V4lANgosxwku2MEVOUBJBfPcgDeOk2Dm/HBzYQf0ggYYpie7VwcfE0gy/ayH dlOjzWikC/zAx4TtnTW/v/HqBHaEM5nX4RWeRj19/Kvk5uHIzFgr9a0t7PCtbh369kB7 zG/P0sRXNp+dmdIA3G/50I6NOLaqN2IIJNqzTb7xHhL58jJQ+fW6OoRtJbSPQQp8elr0 t7aw== X-Gm-Message-State: AFeK/H2BZADKuiW/vTu6fuzBaZX6ZQi/7Onur9/UMe3IwH9Hp3qQK3FVfC660RSmzf93nCSmRRwZ+I3i/UeCLg== X-Received: by 10.129.169.202 with SMTP id g193mr44825471ywh.15.1491987808282; Wed, 12 Apr 2017 02:03:28 -0700 (PDT) Original-Received: by 10.129.117.85 with HTTP; Wed, 12 Apr 2017 02:03:07 -0700 (PDT) In-Reply-To: <20170411122816.751a130f@jabberwock.cb.piermont.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2607:f8b0:4002:c05::230 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 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.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:213897 Archived-At: I have been working on an emacs implementation for the past few months: https://github.com/vibhavp/emacs-lsp It integrates with eldoc, completion-at-point, xref and flycheck. Coupling it with various CEDET components (ECB comes to mind) is planned for the future. At some point, I'd like to get this into ELPA. Regards, Vibhav On Tue, Apr 11, 2017 at 9:58 PM, Perry E. Metzger wrote: > Microsoft has invented an interesting new protocol for IDEs > and code editors to talk to language tools (like compilers) to do > things like smart autocompletion, jumping to code definitions, and the > like. > > The idea is that compilers and similar tools generally know a lot > about the structure of a language and can provide help to an editor as > an external service, so the editor doesn't need to handle parsing, > symbol tables, etc. for the language on its own. The editor can just > ask the compiler or language tool for the information when it needs > it. > > The protocol is open and they have no intellectual property claims on > it. It is JSON based and should be straightforward to support. > > A general description is at: > > http://langserver.org/ > > And detailed protocol information is at: > > https://github.com/Microsoft/language-server-protocol > > It was originally designed for their "Roslyn" C# compiler (which is > free software, it's Apache licensed) to integrate with their own > editors and IDEs, but other compiler projects and editors seem to be > adopting the thing. There are now language servers people have built > for a lot of languages, and there's support appearing for the > protocol in a bunch of editors. > > I'm mentioning this here because I think the Emacs community would be > interested in this capability, though I suspect that it would also be > really neat if GCC developed a language server for C and C++. > > I recall that a while ago, RMS had a lot of problems with the idea > of opening up GCC in ways that might have made it possible for people > to use it too much for proprietary compilers. Using the Language > Server Protocol, it should be possible for GCC and other free > language tools to talk to a variety of IDEs and Editors (including, I > hope, Emacs) to allow advanced modern code editing _without_ the > sorts of risks he was worried about. > > Perry > -- > Perry E. Metzger perry@piermont.com > -- Vibhav Pant vibhavp@gmail.com