Commit Graph

442 Commits

Author SHA1 Message Date
Gregory Anders
3e00d4f01c feat(lsp): make list handlers configurable (#15199)
The handlers for textDocument/references, textDocument/documentSymbol,
and workspace/symbol open their results in the quickfix list by default
and are not configurable. They are also incompatible with `vim.lsp.with`
as they do not accept a configuration parameter.

Add a `config` parameter to the handler for these three messages which
allows them to be configured with `vim.lsp.with`. Additionally, add a
new configuration option 'loclist' that, when true, causes these
handlers to open their results in the location list rather than the
quickfix list.
2021-07-26 11:39:50 -07:00
Marc Jakobi
a8c3d50fad lsp: add vim.lsp.diagnostic.set_qflist() function (#14831)
* Add vim.lsp.diagnostic.set_qflist() function
* replaces opts.open_loclist with unified opts.open
2021-07-22 08:48:28 -07:00
marvim
823412eda9 docs: regenerate 2021-07-19 21:24:46 +00:00
Ido Ariel
d8f5f4d090 doc(lsp): various small fixes (#15113)
- remove incorrect usage of docstrings
- fix make_formatting_params return type documentation to 'DocumentFormattingParams'
- make progress_handler private
- fix links
2021-07-17 11:15:57 +02:00
Mathias Fußenegger
7c61d9c3bf fix(lsp): Add separator between codelens in virttext (#15049)
Before:

  Lens1Lens2

After:

  Lens1 | Lens2

Fixes https://github.com/neovim/neovim/issues/15048
2021-07-10 21:35:38 +02:00
marvim
832e1708c2 docs: regenerate 2021-07-09 10:39:24 +00:00
marvim
6b313d68d0 docs: regenerate 2021-07-08 15:42:31 +00:00
Folke Lemaitre
af263711a3 feat(lsp): highlight active parameter in signature help (#15018) 2021-07-07 23:04:35 -07:00
Matthieu Coudron
3552916cb9 fix(doc): remove reference to vim.lsp.callbacks (#14576)
too old now, can be confusing
2021-06-28 23:02:17 +02:00
ckipp01
90bdb6e74d Add hl group docs for codelenses 2021-06-20 00:16:37 +02:00
Shadman
3df0e475e8 docs(lsp): Clarify opts for show_line_diagnostics() 2021-06-15 23:21:04 -07:00
marvim
45a7cd2c19 docs: regenerate 2021-06-15 06:20:14 +00:00
Mathias Fussenegger
2bdd553c9e feat(lsp): Add codelens support 2021-06-14 21:45:14 +02:00
Mathias Fussenegger
f03a4d616b feat(lsp): Split out a diagnostics_to_items function from set_loclist
Makes it easier to re-use the logic to populate the quickfix list
instead of the location list.
2021-06-07 18:24:32 +02:00
marvim
0819e1acf9 docs: regenerate 2021-06-06 10:23:07 +00:00
marvim
2ebc28018e docs: regenerate 2021-06-02 00:43:13 +00:00
shadmansaleh
68d48e25b6 docs(lsp): Fix opts param not captured by docgen
In the documentation for `vim.lsp.util.open_floating_preview`
the opts table keys were prefixed with `--` instead of `---`,
preventing capture by docgen.
2021-06-01 17:29:06 +06:00
Michael Lingelbach
638c29b7c9 fix(docs): delete duplicate tags 2021-05-31 11:51:02 -07:00
Karim Abou Zeid
07f81b3b05 docs: regenerate 2021-05-31 19:47:51 +02:00
Michael Bleuez
684b4ae736 doc : fixing missing @return in nvim_open_term doc 2021-04-24 12:47:52 +02:00
Thomas Vigouroux
d7a1bbd81a docs: add priority option in buf_set_extmark 2021-04-07 15:36:46 +02:00
Michael Lingelbach
2358e52fc4 lsp: set syntax instead of filetype for preview location highlighting 2021-03-19 12:55:58 -07:00
Mathias Fussenegger
16827817bb lsp: Use incremental sync by default
With the new implementation added in
https://github.com/neovim/neovim/pull/14079 I think this is now working
well enough to enable it by default.

There are high CPU usage issues popping up now and then and they might
at least partially be related to the full-text sync.
2021-03-11 20:13:52 +01:00
Mathias Fussenegger
02271009ca Update lsp, lua and api docs (gen_vimdoc.py) 2021-03-11 16:16:26 +01:00
TJ DeVries
564dd7d8db lsp: get_language_id (#14092)
* Allow specifying a languageId for a lsp

For some languages the filetype might not match the languageId the
language server accepts. In these cases the config for the language
server can contain a function which gets the current buffer and filetype
and returns a languageId. When it isn't provided the filetype is used
instead.

Example:
```lua
require'lspconfig'.sourcekit.setup{
    get_language_id = function(bufnr, ft)
        return 'swift'
    end;
}
```

Closes #13093

* lsp: Change to get_language_id

Co-authored-by: Jan Dammshäuser <mail@jandamm.de>
2021-03-10 16:53:23 -05:00
Michael Lingelbach
e4e51c69d7 lsp: add incremental text synchronization
* Implementation derived from and validated by vim-lsc authored by Nate
  Bosch
2021-03-09 20:14:08 -08:00
Mathias Fussenegger
b5292a047d Update lsp and api docs with gen_vimdoc changes
Applies the changes generated with ./scripts/gen_vimdoc.py to add
missing documentation.
2021-02-24 23:44:52 +01:00
Chris Kipp
7d82aaa6f5 [LSP] Add in more docs for highlight groups with document_highlight() (#13614)
Currently it's not 100% clear that without setting these, using the autocomds
to utilize the `textDocument/documentHighlight` functionality, nothing will
actually be visible since the highlight groups don't have any details. This
just adds in a couple simple extra notes to make sure that's done
2021-02-24 17:23:47 +01:00
Michael Lingelbach
3a3e6742f9 lsp: clear diagnostics on client shutdown (#13788) 2021-01-23 17:43:06 +01:00
Michael Lingelbach
f9b3110549 lsp: validate and document server settings (#13698)
* update lua documentation
* run docgen
2021-01-18 14:11:37 -05:00
Michael Lingelbach
77a6049e07 lsp: fix on_attach signature documentation (#13723)
* trim trailing whitespace from docs
2021-01-12 22:47:34 +01:00
Michael Lingelbach
953a548454 lsp: remove references to LspInstall (#13738)
and adjust sumneko setup instructions
2021-01-12 22:09:41 +01:00
TJ DeVries
9f3b2a757b lsp: Add severity_limit for other diagnostics features (#13528)
* lsp: Add severity_limit for other diagnostics

* docs and tests

* fix: lint

* Add to other types

* fix: lint
2021-01-12 12:58:50 -05:00
TJ DeVries
e0a4399adc fix(lsp): Allow subsequent text document edits to pass (#13534)
* fix: Allow subsequent text document edits to pass

* fixup: cleaner code

* add tests
2021-01-11 11:39:11 -05:00
Michael Lingelbach
fff4facdc4 LSP: fix messageRequest to not return nested title (#13674)
* LSP: fix window/showMessageRequest to not return nested title

* Add window/showMessageRequest handler to docs
2021-01-03 20:31:09 +01:00
Michael Lingelbach
e467d29390 LSP: Move workspace/configuration handler from nvim-lspconfig to core 2021-01-01 01:40:33 -08:00
Timmy Xiao
329547bf70 doc: Fix some spelling errors (#13636)
- Change 'conenvience' to 'convenient'
- Change 'lsp-handers' to 'lsp-handlers'
2020-12-30 23:39:05 +01:00
Mitchell Hanberg
fa46123998 doc: Fix vim.lsp.diagnostic.get_next (#13495) 2020-12-20 16:17:11 +01:00
Kevin Fleming
fb1c08a86f doc: Fix incorrect LSP diagnostic-related helptags (#13388) 2020-12-09 11:21:16 +01:00
Olivier Roques
222a0452fa doc: Add missing parameter end_pos for range_formatting (#13481) 2020-12-09 11:19:56 +01:00
TJ DeVries
08ec36efaf feat: Allow incremental sync & lsp flags (#13371) 2020-12-08 21:09:33 -05:00
Mathias Fußenegger
f5e0f17968 lsp: Change diagnosticg.get_all to return {bufnr: Diagnostic[]} (#13310)
Allows users to associate the diagnostics with the right bufnr.
2020-12-03 14:22:15 -05:00
Damien Rajon
dc6593a84a doc: fix lsp statusline examle (#13286)
Co-authored-by: Damien Rajon <damien@askmarty.io>
2020-11-29 14:24:52 +01:00
Michael Lingelbach
0d83a1c43f LSP: Feature/add workspace folders (#12638)
* First implementation of workspace folders
* Add completion for current directory
* Add tracking of workspace folders
* Add workspace folder listing
* Add checks on adding/removing workspaces
* Add appropriate initialization options
* Add documentation
* Make workspaceFolders available wherever client is
2020-11-25 21:07:02 +01:00
rockerBOO
fb19663851 docs: Follow conventions 2020-11-16 01:13:15 -05:00
rockerBOO
46ab054b1d docs: Update nvim_lsp to lspconfig 2020-11-16 01:10:55 -05:00
Mathias Fußenegger
0798ad3a3a lsp: Expose all diagnostics (#13285)
* lsp: Remove duplicate `diagnostics` fallback in diagnostic.display

* lsp: Expose all diagnostics

Before the changes in #12655 it was possible to retrieve all diagnostics
via `vim.lsp.util.diagnostics_by_buf`.

This adds a `diagnostic.get_all()` to enable users to retrieve all
diagnostics.

Use cases for that could include loading all diagnostics into the
quickfix list, or to build an enhanced goto_next that can move across
buffers.
2020-11-14 14:39:05 -05:00
TJ DeVries
35325ddac0 doc: fixup sign information (#13281)
Thanks to @sunzoje for finding the outdated documentation.
2020-11-13 00:02:40 -05:00
TJ DeVries
f75be5e9d5 lsp: vim.lsp.diagnostic (#12655)
Breaking Changes:
- Deprecated all `vim.lsp.util.{*diagnostics*}()` functions.
    - Instead, all functions must be found in vim.lsp.diagnostic
    - For now, they issue a warning ONCE per neovim session. In a
      "little while" we will remove them completely.
- `vim.lsp.callbacks` has moved to `vim.lsp.handlers`.
    - For a "little while" we will just redirect `vim.lsp.callbacks` to
      `vim.lsp.handlers`. However, we will remove this at some point, so
      it is recommended that you change all of your references to
      `callbacks` into `handlers`.
    - This also means that for functions like |vim.lsp.start_client()|
      and similar, keyword style arguments have moved from "callbacks"
      to "handlers". Once again, these are currently being forward, but
      will cease to be forwarded in a "little while".
- Changed the highlight groups for LspDiagnostic highlight as they were
  inconsistently named.
    - For more information, see |lsp-highlight-diagnostics|
- Changed the sign group names as well, to be consistent with
  |lsp-highlight-diagnostics|

General Enhancements:
- Rewrote much of the getting started help document for lsp. It also
  provides a much nicer configuration strategy, so as to not recommend
  globally overwriting builtin neovim mappings.

LSP Enhancements:
- Introduced the concept of |lsp-handlers| which will allow much better
  customization for users without having to copy & paste entire files /
  functions / etc.

Diagnostic Enhancements:
- "goto next diagnostic" |vim.lsp.diagnostic.goto_next()|
- "goto prev diagnostic" |vim.lsp.diagnostic.goto_prev()|
    - For each of the gotos, auto open diagnostics is available as a
      configuration option
- Configurable diagnostic handling:
    - See |vim.lsp.diagnostic.on_publish_diagnostics()|
    - Delay display until after insert mode
    - Configure signs
    - Configure virtual text
    - Configure underline
- Set the location list with the buffers diagnostics.
    - See |vim.lsp.diagnostic.set_loclist()|
- Better performance for getting counts and line diagnostics
    - They are now cached on save, to enhance lookups.
    - Particularly useful for checking in statusline, etc.
- Actual testing :)
    - See ./test/functional/plugin/lsp/diagnostic_spec.lua
- Added `guisp` for underline highlighting

NOTE: "a little while" means enough time to feel like most plugins and
plugin authors have had a chance to refactor their code to use the
updated calls. Then we will remove them completely. There is no need to
keep them, because we don't have any released version of neovim that
exposes these APIs. I'm trying to be nice to people following HEAD :)

Co-authored: [Twitch Chat 2020](https://twitch.tv/teej_dv)
2020-11-12 22:21:34 -05:00
Mathias Fußenegger
df726408d7 lsp: Fix "client has shut down" errors during initializing (#13103)
Language servers can already send log messages to the client while the
server is still being initialized.

This currently leads to "client has shut down" messages which are
confusing to the user as the server is properly starting.

To fix this this changes the `get_client_by_id` method to also return a
client if it is still initializing.
2020-10-22 14:59:17 -04:00