From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: "Perry E. Metzger" Newsgroups: gmane.emacs.devel Subject: Re: Language Servers and Emacs Date: Wed, 12 Apr 2017 08:59:09 -0400 Message-ID: <20170412085909.44faf429@jabberwock.cb.piermont.com> References: <20170411122816.751a130f@jabberwock.cb.piermont.com> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Trace: blaine.gmane.org 1492001994 31655 195.159.176.226 (12 Apr 2017 12:59:54 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Wed, 12 Apr 2017 12:59:54 +0000 (UTC) Cc: emacs-devel@gnu.org To: Helmut Eller Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Apr 12 14:59:47 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 1cyHs9-00087W-6t for ged-emacs-devel@m.gmane.org; Wed, 12 Apr 2017 14:59:45 +0200 Original-Received: from localhost ([::1]:44190 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cyHsF-00075R-8D for ged-emacs-devel@m.gmane.org; Wed, 12 Apr 2017 08:59:51 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:44969) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cyHrd-00075K-Bv for emacs-devel@gnu.org; Wed, 12 Apr 2017 08:59:14 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cyHra-0002EL-Bn for emacs-devel@gnu.org; Wed, 12 Apr 2017 08:59:13 -0400 Original-Received: from hacklheber.piermont.com ([166.84.7.14]:54579) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cyHra-0002EC-6t for emacs-devel@gnu.org; Wed, 12 Apr 2017 08:59:10 -0400 Original-Received: from snark.cb.piermont.com (localhost [127.0.0.1]) by hacklheber.piermont.com (Postfix) with ESMTP id 46673217; Wed, 12 Apr 2017 08:59:09 -0400 (EDT) Original-Received: from jabberwock.cb.piermont.com (jabberwock.cb.piermont.com [10.160.2.107]) by snark.cb.piermont.com (Postfix) with ESMTP id EFCB52DE021; Wed, 12 Apr 2017 08:59:08 -0400 (EDT) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 166.84.7.14 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:213910 Archived-At: On Wed, 12 Apr 2017 09:39:48 +0200 Helmut Eller wrote: > On Tue, Apr 11 2017, Perry E. Metzger wrote: > > > 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++. > > The client side of the protocol seems fairly easy to implement in > Emacs, so I think this is primarily a (big) task for GCC > developers. We could implement a server for Elisp on top of > bytecomp.el, but I doubt that anybody has time/motivation for that. > > I note that some Clang developers are working on a server: > http://lists.llvm.org/pipermail/cfe-dev/2017-January/052458.html > > So it seems likely that Clang will support the protocol long before > GCC does. It might also have political implications if Emacs > implements the client side if Clang is the only server for C/C++. There are servers for many other languages too, this is not a C/C++ only issue. (And I think GCC needs to gain this capability in any case, it appears that it is being rapidly adopted. There are now langserv implementations for dozens of languages -- Python, Java, PHP, Go, Rust, Swift, JavaScript, C#, Julia, Scala, and the list goes on, plus there are a bunch of IDEs adopting the protocol too, and support for the vim and Atom editors are coming.) Architecturally, this is certainly the right thing. One would generally far prefer to have the language implementation help the editor with parsing than have to re-implement parsing inside the editor. -- Perry E. Metzger perry@piermont.com