dotemacs

My Emacs configuration
git clone git://git.entf.net/dotemacs
Log | Files | Refs | LICENSE

NEWS.md (13608B)


      1 # 1.8 (12/1/2022)
      2 
      3 ##### Multiple servers supported out-of-box for same major mode ([#688][github#688])
      4 
      5 In practice, this removes the need for Eglot to "officially" bless one
      6 server over another.  Thanks to Felicián Németh for the original idea.
      7 
      8 ##### TRAMP support ([#637][github#637], [#463][github#463], [#84][github#84])
      9 
     10 Thanks to Brian Cully for the minimalist approach.
     11 
     12 (also thanks to Felipe Lema who conducted many early experiments in
     13 [#463][github#463])
     14 
     15 ##### `eglot-ignored-server-capabilities` now correctly spelled ([#724][github#724])
     16 
     17 This user-visible variable used to be spelled
     18 `eglot-ignored-server-capabilites`, which is still a valid but
     19 obsolete name.
     20 
     21 ##### Manage cross-referenced files outside project ([#76][github#76], [#686][github#686], [#695][github#695])
     22 
     23 This is activated by a new customization option
     24 `eglot-extend-to-xref`, which defaults to nil.
     25 
     26 Thanks to Michael Livshin for the investigation an elegant solution.
     27 
     28 ##### Code action shortcuts ([#411][github#411])
     29 
     30 `M-x eglot-code-actions` accepts an optional `action-kind` argument,
     31 specified interactively with `C-u`.  Other shortcuts call specific
     32 actions directly (`eglot-code-action-inline`,
     33 `eglot-code-action-extract`, `eglot-code-action-rewrite`,
     34 `eglot-code-action-organize-imports` and
     35 `eglot-code-action-quickfix`).  One can create own shortcuts for code
     36 actions with specific a kind by calling `eglot-code-actions` from
     37 elisp.
     38 
     39 ##### New command `eglot-shutdown-server` ([#643][github#643])
     40 
     41 ##### New variable `eglot-withhold-process-id` ([#722][github#722])
     42 If non-nil, Eglot will not send the Emacs process id to the language server.
     43 This can be useful when using docker to run a language server.
     44 
     45 ##### Several new servers have been added to `eglot-server-programs`.
     46 - cmake-language-server ([#787][github#787])
     47 - css-languageserver ([#204][github#204], [#769][github#769])
     48 - fortls ([#603][github#603])
     49 - html-languageserver ([#204][github#204], [#769][github#769])
     50 - json-languageserver ([#204][github#204], [#769][github#769])
     51 - lua-lsp ([#721][github#721])
     52 - mint ls ([#750][github#750])
     53 - pyright ([#742][github#742])
     54 - vim-language-server ([#787][github#787])
     55 - yaml-language-server ([#751][github#751])
     56 - zls ([#646][github#646])
     57 
     58 # 1.7 (16/12/2020)
     59 
     60 ##### Support hierarchical symbols in Imenu ([#303][github#303])
     61 
     62 Thanks to Ingo Lohmar for the original implementation.
     63 
     64 ##### Handle multiple "documentation at point" sources ([#439][github#439], [#494][github#494], [#481][github#481], [#454][github#454])
     65 
     66 Such sources include as LSP's signature, hover and also the Flymake
     67 diagnostic messages.  They can all be presented in the echo area
     68 (space permitting), or via `C-h .`.  For now, composition of different
     69 sources can be customized using `eldoc-documentation-strategy`,
     70 `eldoc-echo-area-use-multiline-p` and `eldoc-prefer-doc-buffer`.
     71 
     72 The variables `eglot-put-doc-in-help-buffer` and
     73 `eglot-auto-display-help-buffer` have been removed.
     74 
     75 # 1.6 (16/04/2020)
     76 
     77 ##### Column offset calculation is now LSP-conform ([#361][github#361])
     78 
     79 It seems the majority of servers now comply with the language server
     80 specification when it comes to handling non-ASCII texts.  Therefore
     81 the default values of `eglot-move-to-column-function` and
     82 `eglot-current-column-function` have been changed.  The documentations
     83 of these variables help to restore the old behavior.
     84 
     85 ##### Support workspace/configuration requests ([#326][github#326])
     86 
     87 Also a new section "Per-project server configuration" in the README.md
     88 should answer some faq's in this regard.
     89 
     90 # 1.5 (20/10/2019)
     91 
     92 Thanks a lot to Felicián Németh, Ingo Lohmar, and everyone else who
     93 helped out!
     94 
     95 ##### Take over Company configuration ([#324][github#324])
     96 
     97 Similar to what was already the case with Flymake, Eldoc and Xref, use
     98 just the backend that can do something useful in Eglot,
     99 `company-capf`.  See `eglot-stay-out-of` to opt out of this.
    100 
    101 ##### New option `eglot-autoshutdown` to disconnect after last buffer killed ([#217][github#217], [#270][github#270])
    102 
    103 ##### Fix completion support ([#235][github#235], [#313][github#313], [#311][github#311], [#279][github#279])
    104 
    105 Among other things, consider LSP's "filterText" cookies, which enables
    106 a kind of poor-man's flex-matching for some backends.
    107 
    108 ##### Support LSP's "goto declaration/implementation/typeDefinition" ([#302][github#302])
    109 
    110 ##### New option `eglot-send-changes-idle-time` ([#258][github#258])
    111 
    112 ##### Prevent Eldoc flicker when moving around ([#198][github#198])
    113 
    114 ##### Show large docs in help buffer instead of echo area by default ([#198][github#198])
    115 
    116 Also add two new customization variables
    117 `eglot-put-doc-in-help-buffer` and `eglot-auto-display-help-buffer`.
    118 
    119 ##### Add built-in support for Go, Elixir and Ada ([#304][github#304], [#264][github#264], [#316][github#316])
    120 
    121 # 1.4 (5/1/2019)
    122 
    123 ##### Correct param highlighting in the first line of signature
    124 
    125 ##### Display documentation strings with `gfm-view-mode`
    126 
    127 ##### Remove hard dependencies on `flymake-mode`
    128 
    129 You can turn it off now in buffers managed by Eglot.
    130 
    131 ##### Run connection hooks with proper directory local variables ([#196][github#196])
    132 
    133 This fixes issues with suspiciously empty `didChangeConfiguration`
    134 messages that are supposed to communicate parameters from a
    135 directory-set `eglot-workspace-configuration`.
    136 
    137 ##### Fix completion sorting ([#190][github#190])
    138 
    139 ##### Take over Flymake and Eldoc completely while managing buffers
    140 
    141 No longer try to add Eglot's facilities to existing facilities in
    142 these two domains.
    143 
    144 # 1.3 (10/12/2018)
    145 
    146 ##### Control strictness towards incoming LSP messages ([#144][github#144], [#156][github#156])
    147 
    148 ##### Add brief context after `xref-find-references` when available ([#52][github#52])
    149 
    150 ##### Support `completionContext` to help servers like `ccls`.
    151 
    152 ##### Use Flymake from GNU ELPA ([#178][github#178])
    153 
    154 # 1.2 (23/11/2018)
    155 
    156 ##### Support snippet completions ([#50][github#50])
    157 
    158 Use `yasnippet.el` for this, if it is installed.
    159 
    160 ##### Implement `workspace/didChangeConfiguration` ([#29][github#29])
    161 
    162 ##### Handle experimental/unknown server methods gracefully ([#39][github#39])
    163 
    164 ##### Accept functions as entries in `eglot-server-programs` ([#63][github#63])
    165 
    166 `CONTACT` in the `(MAJOR-MODE . CONTACT)` association in
    167 `eglot-server-programs` can now be a function of no arguments
    168 producing any value previously valid for contact.  Functions can be
    169 interactive on non-interactive.
    170 
    171 ##### Snappier completions that don't hinder typing ([#61][github#61])
    172 
    173 ##### Consider `:triggerCharacters` in company completion ([#80][github#80])
    174 
    175 ##### Add support for `TextEdit`s in completion
    176 
    177 ##### Prefer ccls over cquery for C/C++ ([#94][github#94])
    178 
    179 ##### `eglot-ignored-server-capabilites` is more user-friendly ([#126][github#126])
    180 
    181 ##### Implement asynchronous server connection ([#68][github#68])
    182 
    183 A new defcustom `eglot-sync-connect` controls this feature.
    184 
    185 ##### Add a generic `eglot-execute-command` API
    186 
    187 Work by Michał K.
    188 
    189 ##### Prompt for server in `eglot-shutdown` ([#73][github#73])
    190 
    191 ##### Add support for code action literals
    192 
    193 ##### Add support for the Eclipse JDT language server ([#63][github#63])
    194 
    195 ##### Add out-of-the-box support for Haskell, Kotlin, Go, Ocaml, R
    196 
    197 ##### Add the ability to move to LSP-precise columns ([#124][github#124])
    198 
    199 Some servers like `clangd` follow the spec very closely here.
    200 
    201 ##### Fix a potential security issue fontifying LSP doc ([#154][github#154])
    202 
    203 ##### Fix many, many bugs
    204 
    205 [#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]
    206 
    207 # 1.1 (9/7/2018)
    208 
    209 ##### Implement TCP autostart/autoconnect (and support Ruby's Solargraph)
    210 
    211 The `:autoport` symbol in the server incovation is replaced
    212 dynamically by a local port believed to be vacant, so that the ensuing
    213 TCP connection finds a listening server.
    214 
    215 ##### Eglot now depends on Emacs library `jsonrpc.el`.
    216 
    217 ##### Assorted bugfixes
    218 
    219 <!--- Now a bunch of references that I auto-generate with
    220 
    221 (cl-loop
    222    with pivot
    223    initially
    224    (goto-char (point-min))
    225    (search-forward-regexp "and now said bunch of references...\n")
    226    (setq pivot (point))
    227    (goto-char (point-min))
    228    while (and (search-forward-regexp "github#\\([0-9]+\\)" nil t)
    229               (< (point) pivot))
    230    collect (string-to-number (match-string 1)) into refs
    231    finally (setq refs (delete-dups refs))
    232    (goto-char pivot)
    233    (delete-region pivot (point-max))
    234    (cl-loop for ref in (sort refs #'<)
    235             do (insert (format "[github#%d]: https://github.com/joaotavora/eglot/issues/%d\n" ref ref))))
    236 
    237 and now said bunch of references-->
    238 [github#29]: https://github.com/joaotavora/eglot/issues/29
    239 [github#39]: https://github.com/joaotavora/eglot/issues/39
    240 [github#44]: https://github.com/joaotavora/eglot/issues/44
    241 [github#48]: https://github.com/joaotavora/eglot/issues/48
    242 [github#50]: https://github.com/joaotavora/eglot/issues/50
    243 [github#52]: https://github.com/joaotavora/eglot/issues/52
    244 [github#54]: https://github.com/joaotavora/eglot/issues/54
    245 [github#58]: https://github.com/joaotavora/eglot/issues/58
    246 [github#61]: https://github.com/joaotavora/eglot/issues/61
    247 [github#63]: https://github.com/joaotavora/eglot/issues/63
    248 [github#64]: https://github.com/joaotavora/eglot/issues/64
    249 [github#68]: https://github.com/joaotavora/eglot/issues/68
    250 [github#73]: https://github.com/joaotavora/eglot/issues/73
    251 [github#74]: https://github.com/joaotavora/eglot/issues/74
    252 [github#76]: https://github.com/joaotavora/eglot/issues/76
    253 [github#80]: https://github.com/joaotavora/eglot/issues/80
    254 [github#81]: https://github.com/joaotavora/eglot/issues/81
    255 [github#82]: https://github.com/joaotavora/eglot/issues/82
    256 [github#83]: https://github.com/joaotavora/eglot/issues/83
    257 [github#84]: https://github.com/joaotavora/eglot/issues/84
    258 [github#86]: https://github.com/joaotavora/eglot/issues/86
    259 [github#87]: https://github.com/joaotavora/eglot/issues/87
    260 [github#93]: https://github.com/joaotavora/eglot/issues/93
    261 [github#94]: https://github.com/joaotavora/eglot/issues/94
    262 [github#100]: https://github.com/joaotavora/eglot/issues/100
    263 [github#115]: https://github.com/joaotavora/eglot/issues/115
    264 [github#120]: https://github.com/joaotavora/eglot/issues/120
    265 [github#121]: https://github.com/joaotavora/eglot/issues/121
    266 [github#124]: https://github.com/joaotavora/eglot/issues/124
    267 [github#126]: https://github.com/joaotavora/eglot/issues/126
    268 [github#138]: https://github.com/joaotavora/eglot/issues/138
    269 [github#144]: https://github.com/joaotavora/eglot/issues/144
    270 [github#154]: https://github.com/joaotavora/eglot/issues/154
    271 [github#156]: https://github.com/joaotavora/eglot/issues/156
    272 [github#158]: https://github.com/joaotavora/eglot/issues/158
    273 [github#160]: https://github.com/joaotavora/eglot/issues/160
    274 [github#167]: https://github.com/joaotavora/eglot/issues/167
    275 [github#178]: https://github.com/joaotavora/eglot/issues/178
    276 [github#190]: https://github.com/joaotavora/eglot/issues/190
    277 [github#196]: https://github.com/joaotavora/eglot/issues/196
    278 [github#198]: https://github.com/joaotavora/eglot/issues/198
    279 [github#204]: https://github.com/joaotavora/eglot/issues/204
    280 [github#217]: https://github.com/joaotavora/eglot/issues/217
    281 [github#235]: https://github.com/joaotavora/eglot/issues/235
    282 [github#258]: https://github.com/joaotavora/eglot/issues/258
    283 [github#264]: https://github.com/joaotavora/eglot/issues/264
    284 [github#270]: https://github.com/joaotavora/eglot/issues/270
    285 [github#279]: https://github.com/joaotavora/eglot/issues/279
    286 [github#302]: https://github.com/joaotavora/eglot/issues/302
    287 [github#303]: https://github.com/joaotavora/eglot/issues/303
    288 [github#304]: https://github.com/joaotavora/eglot/issues/304
    289 [github#311]: https://github.com/joaotavora/eglot/issues/311
    290 [github#313]: https://github.com/joaotavora/eglot/issues/313
    291 [github#316]: https://github.com/joaotavora/eglot/issues/316
    292 [github#324]: https://github.com/joaotavora/eglot/issues/324
    293 [github#326]: https://github.com/joaotavora/eglot/issues/326
    294 [github#361]: https://github.com/joaotavora/eglot/issues/361
    295 [github#411]: https://github.com/joaotavora/eglot/issues/411
    296 [github#439]: https://github.com/joaotavora/eglot/issues/439
    297 [github#454]: https://github.com/joaotavora/eglot/issues/454
    298 [github#463]: https://github.com/joaotavora/eglot/issues/463
    299 [github#481]: https://github.com/joaotavora/eglot/issues/481
    300 [github#494]: https://github.com/joaotavora/eglot/issues/494
    301 [github#603]: https://github.com/joaotavora/eglot/issues/603
    302 [github#637]: https://github.com/joaotavora/eglot/issues/637
    303 [github#643]: https://github.com/joaotavora/eglot/issues/643
    304 [github#646]: https://github.com/joaotavora/eglot/issues/646
    305 [github#686]: https://github.com/joaotavora/eglot/issues/686
    306 [github#688]: https://github.com/joaotavora/eglot/issues/688
    307 [github#695]: https://github.com/joaotavora/eglot/issues/695
    308 [github#721]: https://github.com/joaotavora/eglot/issues/721
    309 [github#722]: https://github.com/joaotavora/eglot/issues/722
    310 [github#724]: https://github.com/joaotavora/eglot/issues/724
    311 [github#742]: https://github.com/joaotavora/eglot/issues/742
    312 [github#750]: https://github.com/joaotavora/eglot/issues/750
    313 [github#751]: https://github.com/joaotavora/eglot/issues/751
    314 [github#769]: https://github.com/joaotavora/eglot/issues/769
    315 [github#787]: https://github.com/joaotavora/eglot/issues/787