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

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

[elpa] externals/eglot 8d0c8de 05/69: Add NEWS.md file and rework README


From: João Távora
Subject: [elpa] externals/eglot 8d0c8de 05/69: Add NEWS.md file and rework README.md
Date: Sun, 20 Oct 2019 08:21:41 -0400 (EDT)

branch: externals/eglot
commit 8d0c8de6cde8e6956155c598e2d24da72ce15278
Author: João Távora <address@hidden>
Commit: João Távora <address@hidden>

    Add NEWS.md file and rework README.md
    
    * NEWS.md: New file.
    
    * README.md: Redesign.
---
 NEWS.md   | 153 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 README.md |  79 ++++++++++++++++++++++++--------
 2 files changed, 214 insertions(+), 18 deletions(-)

diff --git a/NEWS.md b/NEWS.md
new file mode 100644
index 0000000..33808ea
--- /dev/null
+++ b/NEWS.md
@@ -0,0 +1,153 @@
+# 1.5 (upcoming)
+
+##### Prevent Eldoc flicker when moving around ([#198][github#198])
+
+##### Show large docs in help buffer instead of echo area by default 
([#198][github#198])
+
+Also add two new customization variables
+`eglot-put-doc-in-help-buffer` and `eglot-auto-display-help-buffer`.
+
+# 1.4 (5/1/2019)
+
+##### Correct param highlighting in the first line of signature
+
+##### Display documentation strings with `gfm-view-mode`
+
+##### Remove hard dependencies on `flymake-mode`
+
+You can turn it off now in buffers managed by Eglot.
+
+##### Run connection hooks with proper directory local variables 
([#196][github#196])
+
+This fixes issues with suspiciously empty `didChangeConfiguration`
+messages that are supposed to communicate parameters from a
+directory-set `eglot-workspace-configuration`.
+
+##### Fix completion sorting ([#190][github#190])
+
+##### Take over Flymake and Eldoc completely while managing buffers
+
+No longer try to add Eglot's facilities to existing facilities in
+these two domains.
+
+# 1.3 (10/12/2018)
+
+##### Control strictness towards incoming LSP messages ([#144][github#144], 
[#156][github#156])
+
+##### Add brief context after `xref-find-references` when available 
([#52][github#52])
+
+##### Support `completionContext` to help servers like `ccls`.
+
+##### Use Flymake from GNU ELPA ([#178][github#178])
+
+# 1.2 (23/11/2018)
+
+##### Support snippet completions ([#50][github#50])
+
+Use `yasnippet.el` for this, if it is installed.
+
+##### Implement `workspace/didChangeConfiguration` ([#29][github#29])
+
+##### Handle experimental/unknown server methods gracefully ([#39][github#39])
+
+##### Accept functions as entries in `eglot-server-programs` ([#63][github#63])
+
+`CONTACT` in the `(MAJOR-MODE . CONTACT)` association in
+`eglot-server-programs` can now be a function of no arguments
+producing any value previously valid for contact.  Functions can be
+interactive on non-interactive.
+
+##### Snappier completions that don't hinder typing ([#61][github#61])
+
+##### Consider `:triggerCharacters` in company completion ([#80][github#80])
+
+##### Add support for `TextEdit`s in completion
+
+##### Prefer ccls over cquery for C/C++ ([#94][github#94])
+
+##### `eglot-ignored-server-capabilites` is more user-friendly 
([#126][github#126])
+
+##### Implement asynchronous server connection ([#68][github#68])
+
+A new defcustom `eglot-sync-connect` controls this feature.
+
+##### Add a generic `eglot-execute-command` API
+
+Work by Michał K.
+
+##### Prompt for server in `eglot-shutdown` ([#73][github#73])
+
+##### Add support for code action literals
+
+##### Add support for the Eclipse JDT language server ([#63][github#63])
+
+##### Add out-of-the-box support for Haskell, Kotlin, Go, Ocaml, R
+
+##### Add the ability to move to LSP-precise columns ([#124][github#124])
+
+Some servers like `clangd` follow the spec very closely here.
+
+##### Fix a potential security issue fontifying LSP doc ([#154][github#154])
+
+##### Fix many, many bugs
+
+[#44][github#44], [#48][github#48], [#54][github#54], [#58][github#58], 
[#64][github#64], [#74][github#74], [#81][github#81], [#82][github#82], 
[#86][github#86], [#87][github#87], [#83][github#83], [#93][github#93], 
[#100][github#100], [#115][github#115], [#120][github#120], [#121][github#121], 
[#126][github#126], [#138][github#138], [#144][github#144], [#158][github#158], 
[#160][github#160], [#167][github#167]
+
+# 1.1 (9/7/2018)
+
+##### Implement TCP autostart/autoconnect (and support Ruby's Solargraph)
+
+The `:autoport` symbol in the server incovation is replaced
+dynamically by a local port believed to be vacant, so that the ensuing
+TCP connection finds a listening server.
+
+##### Eglot now depends on Emacs library `jsonrpc.el`.
+
+##### Assorted bugfixes
+
+<!-- Now a million references -->
+
+[github#198]: https://github.com/joaotavora/eglot/issues/198
+[github#198]: https://github.com/joaotavora/eglot/issues/198
+[github#196]: https://github.com/joaotavora/eglot/issues/196
+[github#190]: https://github.com/joaotavora/eglot/issues/190
+[github#144]: https://github.com/joaotavora/eglot/issues/144
+[github#156]: https://github.com/joaotavora/eglot/issues/156
+[github#52]: https://github.com/joaotavora/eglot/issues/52
+[github#178]: https://github.com/joaotavora/eglot/issues/178
+[github#50]: https://github.com/joaotavora/eglot/issues/50
+[github#29]: https://github.com/joaotavora/eglot/issues/29
+[github#39]: https://github.com/joaotavora/eglot/issues/39
+[github#63]: https://github.com/joaotavora/eglot/issues/63
+[github#61]: https://github.com/joaotavora/eglot/issues/61
+[github#80]: https://github.com/joaotavora/eglot/issues/80
+[github#94]: https://github.com/joaotavora/eglot/issues/94
+[github#126]: https://github.com/joaotavora/eglot/issues/126
+[github#68]: https://github.com/joaotavora/eglot/issues/68
+[github#73]: https://github.com/joaotavora/eglot/issues/73
+[github#63]: https://github.com/joaotavora/eglot/issues/63
+[github#124]: https://github.com/joaotavora/eglot/issues/124
+[github#154]: https://github.com/joaotavora/eglot/issues/154
+[github#44]: https://github.com/joaotavora/eglot/issues/44
+[github#48]: https://github.com/joaotavora/eglot/issues/48
+[github#54]: https://github.com/joaotavora/eglot/issues/54
+[github#58]: https://github.com/joaotavora/eglot/issues/58
+[github#64]: https://github.com/joaotavora/eglot/issues/64
+[github#74]: https://github.com/joaotavora/eglot/issues/74
+[github#81]: https://github.com/joaotavora/eglot/issues/81
+[github#82]: https://github.com/joaotavora/eglot/issues/82
+[github#86]: https://github.com/joaotavora/eglot/issues/86
+[github#87]: https://github.com/joaotavora/eglot/issues/87
+[github#83]: https://github.com/joaotavora/eglot/issues/83
+[github#93]: https://github.com/joaotavora/eglot/issues/93
+[github#100]: https://github.com/joaotavora/eglot/issues/100
+[github#115]: https://github.com/joaotavora/eglot/issues/115
+[github#120]: https://github.com/joaotavora/eglot/issues/120
+[github#121]: https://github.com/joaotavora/eglot/issues/121
+[github#126]: https://github.com/joaotavora/eglot/issues/126
+[github#138]: https://github.com/joaotavora/eglot/issues/138
+[github#144]: https://github.com/joaotavora/eglot/issues/144
+[github#158]: https://github.com/joaotavora/eglot/issues/158
+[github#160]: https://github.com/joaotavora/eglot/issues/160
+[github#167]: https://github.com/joaotavora/eglot/issues/167
+
diff --git a/README.md b/README.md
index 078f1a1..3f66592 100644
--- a/README.md
+++ b/README.md
@@ -1,26 +1,28 @@
 [![Build 
Status](https://travis-ci.org/joaotavora/eglot.png?branch=master)](https://travis-ci.org/joaotavora/eglot)
 [![MELPA](http://melpa.org/packages/eglot-badge.svg)](http://melpa.org/#/eglot)
 
-M-x Eglot
----------
+# M-x Eglot
 
-*E*macs Poly*glot*. Emacs client to [Language Server Protocol][lsp]
-servers.  Scroll down this README for some
-[pretty gifs](#animated_gifs).
+*E*macs Poly*glot*: an Emacs [LSP][lsp] client that stays out of your
+way:
 
-# Installation and usage
+* 📽ï¸Scroll down this README for some [pretty gifs](#animated_gifs)
+* 📚 Read about [servers](#connecting), [commands and
+  keybindings](#commands), and [customization](#customization)
+* 📣 Read the [NEWS][news] file
 
-Eglot is in both [ELPA][gnuelpa] and [MELPA][melpa]. Installation is
-straightforward:
+# 1-2-3
 
-```
-(package-install 'eglot) ; Requires Emacs 26!
-;; Now find some source file, any source file
-M-x eglot
-```
+Install from [ELPA][gnuelpa] or [MELPA][melpa]. Just type `M-x
+package-install RET eglot RET`.
+
+Now find some source file, any source file, and type `M-x eglot`.
 
-*That's it*. If you're lucky, this guesses the LSP executable to start
-for the language of your choice. Otherwise, it prompts you to enter one:
+*That's it*. If you're lucky, this guesses the LSP program to start
+for the language you're using. Otherwise, it prompts you to enter one.
+
+<a name="connecting"></a>
+# Connecting to a server
 
 `M-x eglot` can guess and work out-of-the-box with these servers:
 
@@ -97,6 +99,7 @@ it be started as a server.  Notice the `:autoport` symbol in 
there: it
 is replaced dynamically by a local port believed to be vacant, so that
 the ensuing TCP connection finds a listening server.
 
+<a name="commands"></a>
 # Commands and keybindings
 
 Here's a summary of available commands:
@@ -118,8 +121,7 @@ Here's a summary of available commands:
   there are any there;
 
 - `M-x eglot-help-at-point` asks the server for help for symbol at
-  point. Currently this is what `eldoc-mode` displays in the echo
-  area;
+  point.
 
 - `M-x eglot-events-buffer` jumps to the events buffer for debugging
   communication with the server.
@@ -142,7 +144,47 @@ either:
 (define-key eglot-mode-map (kbd "<f6>") 'xref-find-definitions)
 ```
 
-# How does this work exactly?
+<a name="customization"></a>
+# Customization
+
+Here's a quick summary of the customization options.  In Eglot's
+customization group (`M-x customize-group`) there is more
+documentation on what these do.
+
+- `eglot-autoreconnect`: Control ability to reconnect automatically to
+  the LSP server;
+
+- `eglot-connect-timeout`: Number of seconds before timing out LSP
+  connection attempts;
+
+- `eglot-sync-connect`: Control blocking of LSP connection attempts;
+
+- `eglot-events-buffer-size`: Control the size of the Eglot events
+  buffer;
+
+- `eglot-ignored-server-capabilites`: LSP server capabilities that
+  Eglot could use, but won't;
+
+- `eglot-put-doc-in-help-buffer`: If non-nil, put eldoc docstrings in
+  separate `*eglot-help*' buffer;
+
+- `eglot-auto-display-help-buffer`: If non-nil, automatically display
+  `*eglot-help*' buffer;
+
+There are a couple more variables that you can customize via Emacs
+lisp:
+
+- `eglot-server-programs`: as described [above](#connecting);
+
+- `eglot-strict-mode`: Set to `nil` by default, meaning Eglot is
+  generally lenient about non-conforming servers.  Set this to
+  `(disallow-non-standard-keys enforce-required-keys)` when debugging
+  servers.
+
+- `eglot-server-initialized-hook`: Hook run after server is
+  successfully initialized;
+
+# How does Eglot work?
 
 `M-x eglot` starts a server via a shell-command guessed from
 `eglot-server-programs`, using the current major-mode (for whatever
@@ -308,3 +350,4 @@ Under the hood:
 [eclipse-jdt]: https://github.com/eclipse/eclipse.jdt.ls
 [ocaml-language-server]: https://github.com/freebroccolo/ocaml-language-server
 [r-languageserver]: https://cran.r-project.org/package=languageserver
+[news]: https://github.com/joaotavora/eglot/blob/master/NEWS.md



reply via email to

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