unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* YouCompleteMe available as a Server
@ 2014-08-05  6:27 Tom
  2014-08-05  8:08 ` Daniel Colascione
  0 siblings, 1 reply; 9+ messages in thread
From: Tom @ 2014-08-05  6:27 UTC (permalink / raw)
  To: emacs-devel

It may be of interest of emacs code completion developers.
The developers of this VIM plugin separated the semantic
part from the VIM frontend, so the backend can be used 
by other editors. It's a much more sensible approach than 
reinventing the semantic wheel separately for each editor
and thus duplicating the work and wasting developer 
resources.



The YouCompleteMe (YCM) code-completion plugin for Vim has been a
resounding success. It’s one of the most popular Vim plugins, if
not the most popular one.1 The main YCM logic is now available as
ycmd, an independent HTTP+JSON server. Client plugins for
different editors can easily be written.

http://val.markovic.io/articles/youcompleteme-as-a-server




^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: YouCompleteMe available as a Server
  2014-08-05  6:27 YouCompleteMe available as a Server Tom
@ 2014-08-05  8:08 ` Daniel Colascione
  2014-08-05 12:22   ` John Yates
                     ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Daniel Colascione @ 2014-08-05  8:08 UTC (permalink / raw)
  To: Tom, emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1082 bytes --]

On 08/04/2014 11:27 PM, Tom wrote:
> independent HTTP+JSON server.

It's 2014: of course we're using JSON over HTTP over TCP over IP to get
two programs running on the same machine as the same user to talk to
each other. There's even an HMAC system to avoid the usual attacks. At
the very least, I'd want a non-IP securable transport before using this
thing --- preferably one that doesn't rely on HTTP (which, based on the
source, seems to be used only to discriminate between short text commands).

(Does this program really start 30 threads to handle requests?)

Emacs has existing out-of-tree completion backends that talk to the same
modules ycm uses internally (e.g., clang and jedi), so I'm not sure ycm
is much of a win for us.

Also, the list of supported languages for identifier completion (along
with one regex that tries to match all kinds of comment) appears to be
hardcoded in ycm's C++ codebase; this design choice would make it
difficult to add support for new languages.  (GNU Global has the same
flaw.) Doesn't dabbrev fill the same niche?


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 884 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: YouCompleteMe available as a Server
  2014-08-05  8:08 ` Daniel Colascione
@ 2014-08-05 12:22   ` John Yates
  2014-08-05 13:01     ` Danil Orlov
  2014-08-05 22:22   ` Richard Stallman
  2014-08-06 13:59   ` Dmitry
  2 siblings, 1 reply; 9+ messages in thread
From: John Yates @ 2014-08-05 12:22 UTC (permalink / raw)
  To: Daniel Colascione; +Cc: Tom, Emacs developers

[-- Attachment #1: Type: text/plain, Size: 1355 bytes --]

Agreed that YCM seems to bring little to the table.  OTOH the reference web
page includes a link to an impressive snippet engine:

https://github.com/SirVer/ultisnips

/john


On Tue, Aug 5, 2014 at 4:08 AM, Daniel Colascione <dancol@dancol.org> wrote:

> On 08/04/2014 11:27 PM, Tom wrote:
> > independent HTTP+JSON server.
>
> It's 2014: of course we're using JSON over HTTP over TCP over IP to get
> two programs running on the same machine as the same user to talk to
> each other. There's even an HMAC system to avoid the usual attacks. At
> the very least, I'd want a non-IP securable transport before using this
> thing --- preferably one that doesn't rely on HTTP (which, based on the
> source, seems to be used only to discriminate between short text commands).
>
> (Does this program really start 30 threads to handle requests?)
>
> Emacs has existing out-of-tree completion backends that talk to the same
> modules ycm uses internally (e.g., clang and jedi), so I'm not sure ycm
> is much of a win for us.
>
> Also, the list of supported languages for identifier completion (along
> with one regex that tries to match all kinds of comment) appears to be
> hardcoded in ycm's C++ codebase; this design choice would make it
> difficult to add support for new languages.  (GNU Global has the same
> flaw.) Doesn't dabbrev fill the same niche?
>
>

[-- Attachment #2: Type: text/html, Size: 1862 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: YouCompleteMe available as a Server
  2014-08-05 12:22   ` John Yates
@ 2014-08-05 13:01     ` Danil Orlov
  2014-08-05 13:20       ` John Yates
  0 siblings, 1 reply; 9+ messages in thread
From: Danil Orlov @ 2014-08-05 13:01 UTC (permalink / raw)
  To: John Yates; +Cc: Daniel Colascione, Tom, Emacs developers

It seems that ultisnips has totally same functionality as Yasnippet, the only
difference - last one uses elisp instead of python.

On Tue, Aug 05, 2014 at 08:22:39AM -0400, John Yates wrote:
> Agreed that YCM seems to bring little to the table.  OTOH the reference web
> page includes a link to an impressive snippet engine:
> 
> https://github.com/SirVer/ultisnips
> 
> /john
> 
> 
> On Tue, Aug 5, 2014 at 4:08 AM, Daniel Colascione <dancol@dancol.org> wrote:
> 
>     On 08/04/2014 11:27 PM, Tom wrote:
>     > independent HTTP+JSON server.
> 
>     It's 2014: of course we're using JSON over HTTP over TCP over IP to get
>     two programs running on the same machine as the same user to talk to
>     each other. There's even an HMAC system to avoid the usual attacks. At
>     the very least, I'd want a non-IP securable transport before using this
>     thing --- preferably one that doesn't rely on HTTP (which, based on the
>     source, seems to be used only to discriminate between short text commands).
> 
>     (Does this program really start 30 threads to handle requests?)
> 
>     Emacs has existing out-of-tree completion backends that talk to the same
>     modules ycm uses internally (e.g., clang and jedi), so I'm not sure ycm
>     is much of a win for us.
> 
>     Also, the list of supported languages for identifier completion (along
>     with one regex that tries to match all kinds of comment) appears to be
>     hardcoded in ycm's C++ codebase; this design choice would make it
>     difficult to add support for new languages.  (GNU Global has the same
>     flaw.) Doesn't dabbrev fill the same niche?
> 
> 
> 



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: YouCompleteMe available as a Server
  2014-08-05 13:01     ` Danil Orlov
@ 2014-08-05 13:20       ` John Yates
  2014-08-08 17:38         ` João Távora
  0 siblings, 1 reply; 9+ messages in thread
From: John Yates @ 2014-08-05 13:20 UTC (permalink / raw)
  To: Danil Orlov; +Cc: Daniel Colascione, Tom, Emacs developers

[-- Attachment #1: Type: text/plain, Size: 587 bytes --]

On Tue, Aug 5, 2014 at 9:01 AM, Danil Orlov <zargener@gmail.com> wrote:

> It seems that ultisnips has totally same functionality as Yasnippet, the
> only
> difference - last one uses elisp instead of python.
>

I am already a both a user and a fan of yasnippet.  That said I watched the
video on the github page and this one:

http://www.sirver.net/blog/2012/02/05/third-episode-of-ultisnips-screencast/

I see functionality that I believe does not exist in yasnippet.  In
particular the ability to jump into and out of snippet expansion is much
more flexible than in yasnippet.

/john

[-- Attachment #2: Type: text/html, Size: 1132 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: YouCompleteMe available as a Server
  2014-08-05  8:08 ` Daniel Colascione
  2014-08-05 12:22   ` John Yates
@ 2014-08-05 22:22   ` Richard Stallman
  2014-08-06 13:59   ` Dmitry
  2 siblings, 0 replies; 9+ messages in thread
From: Richard Stallman @ 2014-08-05 22:22 UTC (permalink / raw)
  To: Daniel Colascione; +Cc: adatgyujto, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

    Emacs has existing out-of-tree completion backends that talk to the same
    modules ycm uses internally (e.g., clang and jedi), so I'm not sure ycm
    is much of a win for us.

And we don't want to use Clang.

-- 
Dr Richard Stallman
President, Free Software Foundation
51 Franklin St
Boston MA 02110
USA
www.fsf.org  www.gnu.org
Skype: No way! That's nonfree (freedom-denying) software.
  Use Ekiga or an ordinary phone call.




^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: YouCompleteMe available as a Server
  2014-08-05  8:08 ` Daniel Colascione
  2014-08-05 12:22   ` John Yates
  2014-08-05 22:22   ` Richard Stallman
@ 2014-08-06 13:59   ` Dmitry
  2014-09-09 15:48     ` Tom
  2 siblings, 1 reply; 9+ messages in thread
From: Dmitry @ 2014-08-06 13:59 UTC (permalink / raw)
  To: Daniel Colascione; +Cc: Tom, emacs-devel

Daniel Colascione <dancol@dancol.org> writes:

> Emacs has existing out-of-tree completion backends that talk to the same
> modules ycm uses internally (e.g., clang and jedi), so I'm not sure ycm
> is much of a win for us.

I believe the main value proposition (aside from the "shared
infrastructure" the project advertises), would be its fuzzy matching
algorithm. Emacs has nothing comparable built-in, and flx
(https://github.com/lewang/flx) hasn't yet been integrated with any
completion engines.



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: YouCompleteMe available as a Server
  2014-08-05 13:20       ` John Yates
@ 2014-08-08 17:38         ` João Távora
  0 siblings, 0 replies; 9+ messages in thread
From: João Távora @ 2014-08-08 17:38 UTC (permalink / raw)
  To: John Yates; +Cc: Danil Orlov, Daniel Colascione, Tom, Emacs developers

John Yates <john@yates-sheets.org> writes:

> I am already a both a user and a fan of yasnippet. That said I watched
> the video on the github page and this one:
>
> http://www.sirver.net/blog/2012/02/05/third-episode-of-ultisnips-screencast/
>
> I see functionality that I believe does not exist in yasnippet. In
> particular the ability to jump into and out of snippet expansion is
> much more flexible than in yasnippet.

I can confirm this particular bit of functionality does not exist in
yasnippet.

Should it? If so, open an issue with a feature request in
https://github.com/capitaomorte/yasnippet/issues, as it shouldn't be
very hard to add. However, it would seem confusing if e.g. there are more
fields other than the active one you've just temporarily left (but still
stayed inside the whole snippet). 

If there are other such features you would like to see in yasnippet,
open issues for them as well.

Thanks,
João



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: YouCompleteMe available as a Server
  2014-08-06 13:59   ` Dmitry
@ 2014-09-09 15:48     ` Tom
  0 siblings, 0 replies; 9+ messages in thread
From: Tom @ 2014-09-09 15:48 UTC (permalink / raw)
  To: emacs-devel

Dmitry <dgutov <at> yandex.ru> writes:
> 
> I believe the main value proposition (aside from the "shared
> infrastructure" the project advertises), would be its fuzzy matching
> algorithm. Emacs has nothing comparable built-in, and flx
> (https://github.com/lewang/flx) hasn't yet been integrated with any
> completion engines.
> 

Looks like someone created an emacs client it for, so it can
be tried:

https://github.com/abingham/emacs-ycmd





^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2014-09-09 15:48 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-08-05  6:27 YouCompleteMe available as a Server Tom
2014-08-05  8:08 ` Daniel Colascione
2014-08-05 12:22   ` John Yates
2014-08-05 13:01     ` Danil Orlov
2014-08-05 13:20       ` John Yates
2014-08-08 17:38         ` João Távora
2014-08-05 22:22   ` Richard Stallman
2014-08-06 13:59   ` Dmitry
2014-09-09 15:48     ` Tom

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).