Files
neovim/runtime/doc
Yi Ming 629483e24e feat(lsp): require offset_encoding param #31249
Problem:
Since [version 3.17](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocuments),
LSP supports specifying the position encoding (aka offset encoding) supported by
the client through `positionEncoding`. Since #31209, Nvim fully supports
`utf-8`, `utf-16`, and `utf-32` encodings.

Previously, nvim assumed all clients for a buffer had the same
`offset_encoding`, so:
* Nvim provides `vim.lsp._get_offset_encoding()` to get `offset_encoding`, but
  this function is incorrect because `offset_encoding` is per-client, not
  per-buffer.
* Based on the strategy of `vim.lsp._get_offset_encoding()`,
  `vim.lsp.util.make_position_params()`, `vim.lsp.util.make_range_params()`, and
  `vim.lsp.util.make_given_range_params()` do not require the caller to pass
  `offset_encoding`, which is invalid.
* https://github.com/neovim/neovim/issues/25272

Solution:
* Mark `vim.lsp._get_offset_encoding()` as `@deprecated`.
* Change the type annotations of `vim.lsp.util.make_position_params()`,
  `vim.lsp.util.make_range_params()`, `vim.lsp.util.make_given_range_params()`
  to require the `offset_encoding` param.
2024-11-20 12:19:07 -08:00
..
2023-07-25 05:07:13 -07:00
2024-11-09 08:10:56 +08:00
2023-10-29 16:02:32 +08:00
2024-10-23 14:13:42 +02:00
2024-05-15 23:19:26 +02:00
2024-10-23 14:13:42 +02:00
2021-09-10 08:48:27 +02:00
2023-06-25 17:14:28 +02:00
2023-10-29 16:02:32 +08:00
2024-09-01 13:01:24 -07:00
2024-04-11 07:39:29 +08:00
2024-07-15 06:54:45 +08:00
2024-11-09 08:10:56 +08:00
2023-05-13 21:33:22 +02:00
2024-03-12 13:51:53 +08:00
2024-02-22 10:07:04 +01:00
2022-10-14 08:01:13 -07:00
2023-11-14 23:29:09 +01:00
2024-05-11 18:14:03 +08:00
2023-11-06 19:03:08 +08:00
2024-01-18 00:14:48 -08:00
2024-04-30 04:30:21 -07:00
2023-01-01 15:05:13 +01:00
2023-06-19 08:40:33 -07:00
2024-09-24 04:46:50 -07:00
2024-11-09 08:10:56 +08:00
2023-08-10 17:28:02 +08:00
2024-04-23 08:20:36 +08:00
2024-05-11 18:14:03 +08:00
2023-04-23 15:22:55 +02:00
2023-01-03 10:07:43 +00:00
2023-06-25 17:14:28 +02:00
2023-06-19 08:40:33 -07:00
2023-06-25 17:14:28 +02:00
2023-06-25 17:14:28 +02:00
2021-05-01 22:29:03 -04:00
2023-06-25 17:14:28 +02:00
2018-10-29 10:01:44 +01:00
2021-04-29 09:27:19 -04:00
2023-06-25 17:14:28 +02:00
2024-04-30 05:54:03 +08:00
2021-04-29 20:42:16 -04:00
2023-06-26 11:29:12 +02:00
2023-07-25 05:07:13 -07:00
2021-04-27 09:21:34 -04:00
2023-06-19 08:40:33 -07:00
2023-06-25 17:14:28 +02:00