Sly: Sylvester the Cat's Common Lisp IDE
github.com
github.com
Slime is a full REPL, like Python's IDLE or Ruby's IRB, but 100x better.
LSP is just a generic way of doing autocomplete and source code referencing. Swank (the server side of Slime) does provide some functions that are used to do LSP-like things, but those are only a subset of the features.
It may be possible to rip out those parts and make them use LSP instead, but I doubt it's worth it because the LSP server would still have to run in the same Lisp image so that it could know about the dynamically defined symbols.
Slime is a full-blown IDE that just happens to be implemented in elisp.
That being said, LSP doesn't do anything for providing indentation rules to editors; editors not named "emacs" are at best poor at indenting lisp code, and many modern editors do not provide pluggable indentation. Because of the fewer distinct visual blocks in lisp, properly indented code is important for readability.
I think the main reason an LSP hasn't been implemented for lisp is that nobody that has the skills to make one has any use for one.
Exactly this. LSP is inferior to Slime and Sly and therefore next to useless to Lispers.
1. I've heard of an experimental microsof-sponsored DAP (Debugger Adpater Protocol) which is similar to LSP and uses some of its underlying transport mechanics.
2. I have another Emacs extension, Eglot (http://github.com/joaotavora/eglot) for LSP. It follows roughly the same implementation patterns as Sly, so if you like one you might like to try the other.
VSCode, for its main intended language (Js), totally pales in comparison to using Emacs (+SLIME and other tools) for Common Lisp. It isn't even funny.
I have been programming professionally for almost 15 years, and never used emacs nor lisp until a month ago. I have however used a lot of other languages, and have been using vim as my main editor for the last 10 years.
I tried emacs because of org-mode a month ago, and decided to use vim for writing code and emacs for managing my life, but after a few weeks, I ended up just using vim inside emacs (evil) and switching completely to emacs. Learning a bit of elisp to configure emacs, prompted me to give lisp a closer look, and now I'm full-steam-ahead learning Common Lisp and loving it!
That being said, I'm actually in the same camp with you, on both counts (this comment and your previous one).
My main problem with Emacs is that of mindshare. To clarify what that means, I'll use some examples.
Git has huge mindshare: if a new development tool appears, if it can integrate with Git, its makers will try to integrate it themselves. This generally provides the best and most maintained integration.
Emacs has low mindshare: if a new development tool appears, Emacs users have to integrate it themselves. Outside of the relatively small Lisp community, almost no upstream developer is bothering to offer Emacs integration.
In a certain sense a subclass of Emacs users are the makers since it is a traditional Free Software model not backed by a major corporation. But that can be seen as an advantage since there is no single point of failure, and if GNU doesn't do a good job it can be forked, and has in the past (remember XEmacs?).
Practically speaking, the major disadvantage of Emacs is poor asynchronous/ multithreaded support. That's not an easy problem to solve but I do think it will get better eventually, and I don't find it a major impediment in day-to-day use.
Look at any tool (except for GNU or Lisp stuff) and try to see how many of them have Emacs plugins made directly by the tool authors.
Eclipse, Visual Studio Code, Atom, etc., tend to have plugins made directly by the tool authors, in many cases.
>Emacs has low mindshare
You don't seem to speak like a programmer.
I feel like I should give emacs a download and try to wrap my brain around it, if for no other reason than to be more well-rounded.