From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Philipp Stephani Newsgroups: gmane.emacs.devel Subject: Re: Language Servers and Emacs Date: Thu, 20 Apr 2017 10:52:07 +0000 Message-ID: References: <20170411122816.751a130f@jabberwock.cb.piermont.com> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=f403045f572e3f8539054d96efcf X-Trace: blaine.gmane.org 1492685552 30113 195.159.176.226 (20 Apr 2017 10:52:32 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Thu, 20 Apr 2017 10:52:32 +0000 (UTC) To: "Perry E. Metzger" , emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Apr 20 12:52:26 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 1d19hJ-0007g0-T9 for ged-emacs-devel@m.gmane.org; Thu, 20 Apr 2017 12:52:26 +0200 Original-Received: from localhost ([::1]:52910 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d19hP-00012S-Cq for ged-emacs-devel@m.gmane.org; Thu, 20 Apr 2017 06:52:31 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:47742) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d19hF-000129-3d for emacs-devel@gnu.org; Thu, 20 Apr 2017 06:52:22 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d19hD-0006Yu-Gx for emacs-devel@gnu.org; Thu, 20 Apr 2017 06:52:21 -0400 Original-Received: from mail-wr0-x234.google.com ([2a00:1450:400c:c0c::234]:34137) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1d19hD-0006Yh-6r for emacs-devel@gnu.org; Thu, 20 Apr 2017 06:52:19 -0400 Original-Received: by mail-wr0-x234.google.com with SMTP id z109so32949156wrb.1 for ; Thu, 20 Apr 2017 03:52:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=SDu7EDvIEjWqxf9kzve+bRd5yGeLxLOtn5PO+KN1md0=; b=eFMXe/ySeLFSbHT/CQH8zoM0uPYckWuk1wIVVEPojPYW1U76ruPM6vMXEKSMkRJhD7 AmIB5UfD3DFyzuoRlU5yftk7U1yXymicnCJm03noZdDe88Od406iIlSBby8nvQku6qni 4a2sRyVfUsahZIyeiKyT7ghk8MhWpvJgsq1YoeGc/9aakjUe/krpAZD8rMafNKOKeEFc 3dZ55zE3RakLmnOiGhkIiYF1uKcmZDDvtPqixnq9LMiHeXrT8lzQB0vPO48LnYRWfAEA jEMSV+oDCued9PvIk2nEZ8yeIewHGKembfP5viyY55Mi54EWAdiS/mA2mrSGAwvxP5/D 7vbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=SDu7EDvIEjWqxf9kzve+bRd5yGeLxLOtn5PO+KN1md0=; b=klLdgbgt9+TGZS2uzQa5+rr6XU9cda4u+PCFgwvc71z/I530r0I9l5Hg8b5c0OFHaf Hs/8iyH3VMAiixAlMzX6pgZWmjg4O0C1kl5Mo4926mraLMQ+il3cwA0UBm7U9YTtmTZv EgRizEIR+DfZ+/j8hPeqPitd+Gd2Y16GBVQDyK9iOmfInTaRTHjQFdWLz7aQgJtBU0Ur rVJPYf1N3BxDLX22w7yr8mVXoUXXAJCmUOPWuqrWdAftc6PJrpLP7IwlpGuWxM/TRdlJ BUWdGKiZ+uebmA29RZKffkvRFnWX3h2gjjgkF424Zz2HWKw7adZ6sV6pCd7BEGiCFskM KyZQ== X-Gm-Message-State: AN3rC/5zSr7gVmxx1NZtSMFe0NrYTZm/ZZyx0F0XJ2zbMuTXVDU1GovZ HmXHiVI52a1XLSt5wiF/CZIN5kKAxZOA X-Received: by 10.223.154.40 with SMTP id z37mr913497wrb.136.1492685537901; Thu, 20 Apr 2017 03:52:17 -0700 (PDT) In-Reply-To: <20170411122816.751a130f@jabberwock.cb.piermont.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::234 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:214146 Archived-At: --f403045f572e3f8539054d96efcf Content-Type: text/plain; charset=UTF-8 Perry E. Metzger schrieb am Di., 11. Apr. 2017 um 18:28 Uhr: > 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. > I agree and think that language servers are very promising and we should have strong support for the protocol in Emacs (preferably even in core). They neatly solve the problem of having to implement support for each and every language in Elisp. --f403045f572e3f8539054d96efcf Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable


Perry = E. Metzger <perry@piermont.com= > schrieb am Di., 11. Apr. 2017 um 18:28=C2=A0Uhr:
Microsoft has invented an interesting new protocol for I= DEs
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:

htt= p://langserver.org/

And detailed protocol information is at:

https://github.com/Microsoft/language-server-pr= otocol

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.

I agree and think that language servers ar= e very promising and we should have strong support for the protocol in Emac= s (preferably even in core). They neatly solve the problem of having to imp= lement support for each and every language in Elisp.=C2=A0
--f403045f572e3f8539054d96efcf--