emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/elpa ecd334f 101/139: Update README


From: João Távora
Subject: [elpa] externals/elpa ecd334f 101/139: Update README
Date: Mon, 14 May 2018 09:53:44 -0400 (EDT)

branch: externals/elpa
commit ecd334f6466b0a1488735e4cb6d41ab4fa65660f
Author: João Távora <address@hidden>
Commit: João Távora <address@hidden>

    Update README
---
 README.md | 115 +++++++++++++++++++++++++++++++++++++++++++++-----------------
 1 file changed, 84 insertions(+), 31 deletions(-)

diff --git a/README.md b/README.md
index a8d1c8b..faf2dea 100644
--- a/README.md
+++ b/README.md
@@ -2,19 +2,21 @@
 Eglot
 -----
 
-*E*macs Poly*glot*. An Emacs client to Language Server Protocol servers.
+*E*macs Poly*glot*. An Emacs client to [Language Server Protocol][lsp] servers.
 
 ```
 (add-to-list 'load-path "/path/to/eglot")
-(require 'eglot)
+(require 'eglot) ; Requires emacs 26!
 
+;; Now find some project file inside some Git-controlled dir
 M-x eglot
 ```
 
-*That's it*. Either this guesses the local LSP program to start for
-the language of your choice or it prompts you for such a
-thing. Currently, if you have these programs installed, it works
-out-of-the-box for:
+*That's it*. Either this guesses the LSP executable to start for the
+language of your choice, or it prompts you to enter the program.
+
+If you have these programs installed, `M-x eglot` works out-of-the-box
+with:
 
 * Javascript's [javascript-typescript-stdio][javascript-typescript-langserver]
 * Rust's [rls][rls]
@@ -25,60 +27,111 @@ server. To skip the guess and always be prompted use `C-u 
M-x eglot`.
 
 # Supported Protocol features
 
-- [x] textDocument/didChange (incremental)
-- [x] textDocument/didClose
+## General
+- [x] initialize
+- [x] initalized
+- [x] shutdown
+- [x] exit
+- [ ] $/cancelRequest
+
+## Window
+- [x] window/showMessage
+- [x] window/showMessageRequest
+- [x] window/logMessage
+- [x] telemetry/event
+
+## Client
+- [ ] client/registerCapability
+- [ ] client/unregisterCapability
+
+## Workspace
+- [ ] workspace/workspaceFolders (3.6.0)
+- [ ] workspace/didChangeWorkspaceFolders (3.6.0)
+- [ ] workspace/didChangeConfiguration
+- [ ] workspace/configuration (3.6.0)
+- [ ] workspace/didChangeWatchedFiles
+- [x] workspace/symbol
+- [x] workspace/applyEdit
+
+## Text Synchronization
 - [x] textDocument/didOpen
+- [x] textDocument/didChange (incremental or full)
+- [x] textDocument/willSave
+- [ ] textDocument/willSaveWaitUntil
 - [x] textDocument/didSave
+- [x] textDocument/didClose
 
-- [ ] textDocument/codeAction
+## Diagnostics
+- [x] textDocument/publishDiagnostics
+
+## Language features
 - [x] textDocument/completion
 - [ ] completionItem/resolve
+- [x] textDocument/hover
+- [ ] textDocument/signatureHelp
 - [x] textDocument/definition
+- [ ] textDocument/typeDefinition (3.6.0)
+- [ ] textDocument/implementation (3.6.0)
+- [x] textDocument/references
 - [x] textDocument/documentHighlight
 - [x] textDocument/documentSymbol
-- [ ] textDocument/executeCommand
-- [ ] textDocument/format
-- [x] textDocument/hover
+- [ ] textDocument/codeAction
+- [ ] textDocument/codeLens
+- [ ] codeLens/resolve
+- [ ] textDocument/documentLink
+- [ ] documentLink/resolve
+- [ ] textDocument/documentColor
+- [ ] textDocument/colorPresentation (3.6.0)
+- [ ] textDocument/formatting 
+- [ ] textDocument/rangeFormatting
+- [ ] textDocument/onTypeFormatting
 - [x] textDocument/rename
-- [x] textDocument/references
-- [ ] textDocument/signatureHelp
-- [x] workspace/symbol
 
 # Differences to lsp-mode.el
 
-This is really beta and currently does a little less than
-[lsp-mode.el][emacs-lsp] which is more mature. Though I think
-`eglot.el` will eventually beat it, you could be better served with
+Eglot is **really beta** and may currently underperform
+[lsp-mode.el][emacs-lsp], which is more mature and has a host of
+[plugins][emacs-lsp-plugins] for bells and whistles.  If you think the 
minimalist approach
+of `eglot.el` is not for you, you could be better served with
 `lsp-mode.el` for now.
 
 User-visible differences:
 
-- Single entry point, `M-x eglot` to enable LSP in a project.
-  Automatically detects current and future opened files under that
+- Single entry point `M-x eglot`, not `M-x eglot-<language>`. Also no
+  `eglot-<language>` extra packages.
+- No "whitelisting" or "blacklisting" directories to languages. `M-x
+  eglot` starts servers to handle major modes inside a specific
+  project. Uses Emacs's built-in `project.el` library to discover
+  projects. Automatically detects current and future opened files under that
   project and syncs with server.
 - Easy way to quit/restart a server, just middle/right click on the
   connection name.
 - Pretty interactive mode-line section for live tracking of server
   communication.
+- Automatically restarts frequently crashing servers (like RLS).
+- Server-initiated edits are confirmed with the user.
+- Diagnostics work out-of-the-box (no `flycheck.el` needed).
    
-Differences under the hood:
-
-- Message parser is much much simpler
-- Easier to read and maintain elisp. Yeah I know, subjective... But
-  judge for yourself.
-- No external dependencies apart from Emacs (no `flycheck.el`, no
-  `projectile.el`, no Cask, etc).
-- Uses project.el, flymake.el
-- Requires the upcoming emacs 26
+Under the hood:
+
+- Message parser is much much simpler.
+- Easier to read and maintain elisp. Yeah I know, *extremely
+  subjective*, so judge for yourself.
+- About 1k LOC lighter.
+- Development doesn't require Cask, just Emacs.
+- Project support doesn't need `projectile.el`, uses Emacs's `project.el`
+- Requires the upcoming Emacs 26
 - Contained in one file
-- send `textDocument/didChange` for groups of edits, not one per each
-  tiny change. 
+- Sends `textDocument/didChange` for groups of edits, not one per each
+  tiny change.
 - Its missing tests! This is *not good*
 
+[lsp]: https://microsoft.github.io/language-server-protocol/
 [rls]: https://github.com/rust-lang-nursery/rls
 [pyls]: https://github.com/palantir/python-language-server
 [javascript-typescript-langserver]: 
https://github.com/sourcegraph/javascript-typescript-langserver
 [emacs-lsp]: https://github.com/emacs-lsp/lsp-mode
+[emacs-lsp-plugins]: https://github.com/emacs-lsp
 
 
    



reply via email to

[Prev in Thread] Current Thread [Next in Thread]