[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
- [elpa] externals/elpa 3e0f1c3 122/139: Misc little adjustments for readability, (continued)
- [elpa] externals/elpa 3e0f1c3 122/139: Misc little adjustments for readability, João Távora, 2018/05/14
- [elpa] externals/elpa 9bf3166 136/139: Don't define a menu if nothing to show there for now, João Távora, 2018/05/14
- [elpa] externals/elpa 1fb2bcb 132/139: Ask server for textDocument/signatureHelp if it supports it, João Távora, 2018/05/14
- [elpa] externals/elpa c7bd095 118/139: Improve eglot-eldoc-function, João Távora, 2018/05/14
- [elpa] externals/elpa ab575d2 120/139: Rename functions. eglot--request is now the synchronous one, João Távora, 2018/05/14
- [elpa] externals/elpa 8448d9b 133/139: Work with any old directory, no formal project needed, João Távora, 2018/05/14
- [elpa] externals/elpa 589e1ea 138/139: Remove an unused variable, João Távora, 2018/05/14
- [elpa] externals/elpa 571b08f 076/139: Fix the odd bug here and there, João Távora, 2018/05/14
- [elpa] externals/elpa c4ffabc 083/139: Half-decent completion support, João Távora, 2018/05/14
- [elpa] externals/elpa 71e47d2 102/139: Fix odd bugs and tweak stuff, João Távora, 2018/05/14
- [elpa] externals/elpa ecd334f 101/139: Update README,
João Távora <=
- [elpa] externals/elpa dda11dd 095/139: Try to fix some textDocument/completion bugs, João Távora, 2018/05/14
- [elpa] externals/elpa bfd82b5 108/139: Fancier RLS spinner, João Távora, 2018/05/14
- [elpa] externals/elpa c7b9002 116/139: Only call deferred actions after a full message has been received, João Távora, 2018/05/14
- [elpa] externals/elpa dc08e8e 134/139: Fix automatic project creation, João Távora, 2018/05/14
- [elpa] externals/elpa e63dad0 092/139: Simplify mode-line code with a helper., João Távora, 2018/05/14
- [elpa] externals/elpa e964abe 091/139: Get rid of eglot--buffer-open-count, João Távora, 2018/05/14
- [elpa] externals/elpa 37b7329 098/139: Reasonable textDocument/documentHighlight support, João Távora, 2018/05/14
- [elpa] externals/elpa 29f6b4c 129/139: Tweak README.md, João Távora, 2018/05/14
- [elpa] externals/elpa 764347d 128/139: New command eglot-help-at-point and a README update, João Távora, 2018/05/14