#
tokens: 72834/50000 1/294 files (page 14/14)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 14 of 14. Use http://codebase.md/oraios/serena?lines=true&page={x} to view the full context.

# Directory Structure

```
├── .devcontainer
│   └── devcontainer.json
├── .dockerignore
├── .env.example
├── .github
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE
│   │   ├── config.yml
│   │   ├── feature_request.md
│   │   └── issue--bug--performance-problem--question-.md
│   └── workflows
│       ├── codespell.yml
│       ├── docker.yml
│       ├── junie.yml
│       ├── lint_and_docs.yaml
│       ├── publish.yml
│       └── pytest.yml
├── .gitignore
├── .serena
│   ├── memories
│   │   ├── adding_new_language_support_guide.md
│   │   ├── serena_core_concepts_and_architecture.md
│   │   ├── serena_repository_structure.md
│   │   └── suggested_commands.md
│   └── project.yml
├── .vscode
│   └── settings.json
├── CHANGELOG.md
├── CLAUDE.md
├── compose.yaml
├── CONTRIBUTING.md
├── docker_build_and_run.sh
├── DOCKER.md
├── Dockerfile
├── docs
│   ├── custom_agent.md
│   └── serena_on_chatgpt.md
├── flake.lock
├── flake.nix
├── lessons_learned.md
├── LICENSE
├── llms-install.md
├── public
│   └── .gitignore
├── pyproject.toml
├── README.md
├── resources
│   ├── serena-icons.cdr
│   ├── serena-logo-dark-mode.svg
│   ├── serena-logo.cdr
│   ├── serena-logo.svg
│   └── vscode_sponsor_logo.png
├── roadmap.md
├── scripts
│   ├── agno_agent.py
│   ├── demo_run_tools.py
│   ├── gen_prompt_factory.py
│   ├── mcp_server.py
│   ├── print_mode_context_options.py
│   └── print_tool_overview.py
├── src
│   ├── interprompt
│   │   ├── __init__.py
│   │   ├── .syncCommitId.remote
│   │   ├── .syncCommitId.this
│   │   ├── jinja_template.py
│   │   ├── multilang_prompt.py
│   │   ├── prompt_factory.py
│   │   └── util
│   │       ├── __init__.py
│   │       └── class_decorators.py
│   ├── README.md
│   ├── serena
│   │   ├── __init__.py
│   │   ├── agent.py
│   │   ├── agno.py
│   │   ├── analytics.py
│   │   ├── cli.py
│   │   ├── code_editor.py
│   │   ├── config
│   │   │   ├── __init__.py
│   │   │   ├── context_mode.py
│   │   │   └── serena_config.py
│   │   ├── constants.py
│   │   ├── dashboard.py
│   │   ├── generated
│   │   │   └── generated_prompt_factory.py
│   │   ├── gui_log_viewer.py
│   │   ├── mcp.py
│   │   ├── project.py
│   │   ├── prompt_factory.py
│   │   ├── resources
│   │   │   ├── config
│   │   │   │   ├── contexts
│   │   │   │   │   ├── agent.yml
│   │   │   │   │   ├── chatgpt.yml
│   │   │   │   │   ├── codex.yml
│   │   │   │   │   ├── context.template.yml
│   │   │   │   │   ├── desktop-app.yml
│   │   │   │   │   ├── ide-assistant.yml
│   │   │   │   │   └── oaicompat-agent.yml
│   │   │   │   ├── internal_modes
│   │   │   │   │   └── jetbrains.yml
│   │   │   │   ├── modes
│   │   │   │   │   ├── editing.yml
│   │   │   │   │   ├── interactive.yml
│   │   │   │   │   ├── mode.template.yml
│   │   │   │   │   ├── no-onboarding.yml
│   │   │   │   │   ├── onboarding.yml
│   │   │   │   │   ├── one-shot.yml
│   │   │   │   │   └── planning.yml
│   │   │   │   └── prompt_templates
│   │   │   │       ├── simple_tool_outputs.yml
│   │   │   │       └── system_prompt.yml
│   │   │   ├── dashboard
│   │   │   │   ├── dashboard.js
│   │   │   │   ├── index.html
│   │   │   │   ├── jquery.min.js
│   │   │   │   ├── serena-icon-16.png
│   │   │   │   ├── serena-icon-32.png
│   │   │   │   ├── serena-icon-48.png
│   │   │   │   ├── serena-logs-dark-mode.png
│   │   │   │   └── serena-logs.png
│   │   │   ├── project.template.yml
│   │   │   └── serena_config.template.yml
│   │   ├── symbol.py
│   │   ├── text_utils.py
│   │   ├── tools
│   │   │   ├── __init__.py
│   │   │   ├── cmd_tools.py
│   │   │   ├── config_tools.py
│   │   │   ├── file_tools.py
│   │   │   ├── jetbrains_plugin_client.py
│   │   │   ├── jetbrains_tools.py
│   │   │   ├── memory_tools.py
│   │   │   ├── symbol_tools.py
│   │   │   ├── tools_base.py
│   │   │   └── workflow_tools.py
│   │   └── util
│   │       ├── class_decorators.py
│   │       ├── exception.py
│   │       ├── file_system.py
│   │       ├── general.py
│   │       ├── git.py
│   │       ├── inspection.py
│   │       ├── logging.py
│   │       ├── shell.py
│   │       └── thread.py
│   └── solidlsp
│       ├── __init__.py
│       ├── .gitignore
│       ├── language_servers
│       │   ├── al_language_server.py
│       │   ├── bash_language_server.py
│       │   ├── clangd_language_server.py
│       │   ├── clojure_lsp.py
│       │   ├── common.py
│       │   ├── csharp_language_server.py
│       │   ├── dart_language_server.py
│       │   ├── eclipse_jdtls.py
│       │   ├── elixir_tools
│       │   │   ├── __init__.py
│       │   │   ├── elixir_tools.py
│       │   │   └── README.md
│       │   ├── elm_language_server.py
│       │   ├── erlang_language_server.py
│       │   ├── gopls.py
│       │   ├── intelephense.py
│       │   ├── jedi_server.py
│       │   ├── kotlin_language_server.py
│       │   ├── lua_ls.py
│       │   ├── marksman.py
│       │   ├── nixd_ls.py
│       │   ├── omnisharp
│       │   │   ├── initialize_params.json
│       │   │   ├── runtime_dependencies.json
│       │   │   └── workspace_did_change_configuration.json
│       │   ├── omnisharp.py
│       │   ├── perl_language_server.py
│       │   ├── pyright_server.py
│       │   ├── r_language_server.py
│       │   ├── ruby_lsp.py
│       │   ├── rust_analyzer.py
│       │   ├── solargraph.py
│       │   ├── sourcekit_lsp.py
│       │   ├── terraform_ls.py
│       │   ├── typescript_language_server.py
│       │   ├── vts_language_server.py
│       │   └── zls.py
│       ├── ls_config.py
│       ├── ls_exceptions.py
│       ├── ls_handler.py
│       ├── ls_logger.py
│       ├── ls_request.py
│       ├── ls_types.py
│       ├── ls_utils.py
│       ├── ls.py
│       ├── lsp_protocol_handler
│       │   ├── lsp_constants.py
│       │   ├── lsp_requests.py
│       │   ├── lsp_types.py
│       │   └── server.py
│       ├── settings.py
│       └── util
│           ├── subprocess_util.py
│           └── zip.py
├── test
│   ├── __init__.py
│   ├── conftest.py
│   ├── resources
│   │   └── repos
│   │       ├── al
│   │       │   └── test_repo
│   │       │       ├── app.json
│   │       │       └── src
│   │       │           ├── Codeunits
│   │       │           │   ├── CustomerMgt.Codeunit.al
│   │       │           │   └── PaymentProcessorImpl.Codeunit.al
│   │       │           ├── Enums
│   │       │           │   └── CustomerType.Enum.al
│   │       │           ├── Interfaces
│   │       │           │   └── IPaymentProcessor.Interface.al
│   │       │           ├── Pages
│   │       │           │   ├── CustomerCard.Page.al
│   │       │           │   └── CustomerList.Page.al
│   │       │           ├── TableExtensions
│   │       │           │   └── Item.TableExt.al
│   │       │           └── Tables
│   │       │               └── Customer.Table.al
│   │       ├── bash
│   │       │   └── test_repo
│   │       │       ├── config.sh
│   │       │       ├── main.sh
│   │       │       └── utils.sh
│   │       ├── clojure
│   │       │   └── test_repo
│   │       │       ├── deps.edn
│   │       │       └── src
│   │       │           └── test_app
│   │       │               ├── core.clj
│   │       │               └── utils.clj
│   │       ├── csharp
│   │       │   └── test_repo
│   │       │       ├── .gitignore
│   │       │       ├── Models
│   │       │       │   └── Person.cs
│   │       │       ├── Program.cs
│   │       │       ├── serena.sln
│   │       │       └── TestProject.csproj
│   │       ├── dart
│   │       │   └── test_repo
│   │       │       ├── .gitignore
│   │       │       ├── lib
│   │       │       │   ├── helper.dart
│   │       │       │   ├── main.dart
│   │       │       │   └── models.dart
│   │       │       └── pubspec.yaml
│   │       ├── elixir
│   │       │   └── test_repo
│   │       │       ├── .gitignore
│   │       │       ├── lib
│   │       │       │   ├── examples.ex
│   │       │       │   ├── ignored_dir
│   │       │       │   │   └── ignored_module.ex
│   │       │       │   ├── models.ex
│   │       │       │   ├── services.ex
│   │       │       │   ├── test_repo.ex
│   │       │       │   └── utils.ex
│   │       │       ├── mix.exs
│   │       │       ├── mix.lock
│   │       │       ├── scripts
│   │       │       │   └── build_script.ex
│   │       │       └── test
│   │       │           ├── models_test.exs
│   │       │           └── test_repo_test.exs
│   │       ├── elm
│   │       │   └── test_repo
│   │       │       ├── elm.json
│   │       │       ├── Main.elm
│   │       │       └── Utils.elm
│   │       ├── erlang
│   │       │   └── test_repo
│   │       │       ├── hello.erl
│   │       │       ├── ignored_dir
│   │       │       │   └── ignored_module.erl
│   │       │       ├── include
│   │       │       │   ├── records.hrl
│   │       │       │   └── types.hrl
│   │       │       ├── math_utils.erl
│   │       │       ├── rebar.config
│   │       │       ├── src
│   │       │       │   ├── app.erl
│   │       │       │   ├── models.erl
│   │       │       │   ├── services.erl
│   │       │       │   └── utils.erl
│   │       │       └── test
│   │       │           ├── models_tests.erl
│   │       │           └── utils_tests.erl
│   │       ├── go
│   │       │   └── test_repo
│   │       │       └── main.go
│   │       ├── java
│   │       │   └── test_repo
│   │       │       ├── pom.xml
│   │       │       └── src
│   │       │           └── main
│   │       │               └── java
│   │       │                   └── test_repo
│   │       │                       ├── Main.java
│   │       │                       ├── Model.java
│   │       │                       ├── ModelUser.java
│   │       │                       └── Utils.java
│   │       ├── kotlin
│   │       │   └── test_repo
│   │       │       ├── .gitignore
│   │       │       ├── build.gradle.kts
│   │       │       └── src
│   │       │           └── main
│   │       │               └── kotlin
│   │       │                   └── test_repo
│   │       │                       ├── Main.kt
│   │       │                       ├── Model.kt
│   │       │                       ├── ModelUser.kt
│   │       │                       └── Utils.kt
│   │       ├── lua
│   │       │   └── test_repo
│   │       │       ├── .gitignore
│   │       │       ├── main.lua
│   │       │       ├── src
│   │       │       │   ├── calculator.lua
│   │       │       │   └── utils.lua
│   │       │       └── tests
│   │       │           └── test_calculator.lua
│   │       ├── markdown
│   │       │   └── test_repo
│   │       │       ├── api.md
│   │       │       ├── CONTRIBUTING.md
│   │       │       ├── guide.md
│   │       │       └── README.md
│   │       ├── nix
│   │       │   └── test_repo
│   │       │       ├── .gitignore
│   │       │       ├── default.nix
│   │       │       ├── flake.nix
│   │       │       ├── lib
│   │       │       │   └── utils.nix
│   │       │       ├── modules
│   │       │       │   └── example.nix
│   │       │       └── scripts
│   │       │           └── hello.sh
│   │       ├── perl
│   │       │   └── test_repo
│   │       │       ├── helper.pl
│   │       │       └── main.pl
│   │       ├── php
│   │       │   └── test_repo
│   │       │       ├── helper.php
│   │       │       ├── index.php
│   │       │       └── simple_var.php
│   │       ├── python
│   │       │   └── test_repo
│   │       │       ├── .gitignore
│   │       │       ├── custom_test
│   │       │       │   ├── __init__.py
│   │       │       │   └── advanced_features.py
│   │       │       ├── examples
│   │       │       │   ├── __init__.py
│   │       │       │   └── user_management.py
│   │       │       ├── ignore_this_dir_with_postfix
│   │       │       │   └── ignored_module.py
│   │       │       ├── scripts
│   │       │       │   ├── __init__.py
│   │       │       │   └── run_app.py
│   │       │       └── test_repo
│   │       │           ├── __init__.py
│   │       │           ├── complex_types.py
│   │       │           ├── models.py
│   │       │           ├── name_collisions.py
│   │       │           ├── nested_base.py
│   │       │           ├── nested.py
│   │       │           ├── overloaded.py
│   │       │           ├── services.py
│   │       │           ├── utils.py
│   │       │           └── variables.py
│   │       ├── r
│   │       │   └── test_repo
│   │       │       ├── .Rbuildignore
│   │       │       ├── DESCRIPTION
│   │       │       ├── examples
│   │       │       │   └── analysis.R
│   │       │       ├── NAMESPACE
│   │       │       └── R
│   │       │           ├── models.R
│   │       │           └── utils.R
│   │       ├── ruby
│   │       │   └── test_repo
│   │       │       ├── .solargraph.yml
│   │       │       ├── examples
│   │       │       │   └── user_management.rb
│   │       │       ├── lib.rb
│   │       │       ├── main.rb
│   │       │       ├── models.rb
│   │       │       ├── nested.rb
│   │       │       ├── services.rb
│   │       │       └── variables.rb
│   │       ├── rust
│   │       │   ├── test_repo
│   │       │   │   ├── Cargo.lock
│   │       │   │   ├── Cargo.toml
│   │       │   │   └── src
│   │       │   │       ├── lib.rs
│   │       │   │       └── main.rs
│   │       │   └── test_repo_2024
│   │       │       ├── Cargo.lock
│   │       │       ├── Cargo.toml
│   │       │       └── src
│   │       │           ├── lib.rs
│   │       │           └── main.rs
│   │       ├── swift
│   │       │   └── test_repo
│   │       │       ├── Package.swift
│   │       │       └── src
│   │       │           ├── main.swift
│   │       │           └── utils.swift
│   │       ├── terraform
│   │       │   └── test_repo
│   │       │       ├── data.tf
│   │       │       ├── main.tf
│   │       │       ├── outputs.tf
│   │       │       └── variables.tf
│   │       ├── typescript
│   │       │   └── test_repo
│   │       │       ├── .serena
│   │       │       │   └── project.yml
│   │       │       ├── index.ts
│   │       │       ├── tsconfig.json
│   │       │       └── use_helper.ts
│   │       └── zig
│   │           └── test_repo
│   │               ├── .gitignore
│   │               ├── build.zig
│   │               ├── src
│   │               │   ├── calculator.zig
│   │               │   ├── main.zig
│   │               │   └── math_utils.zig
│   │               └── zls.json
│   ├── serena
│   │   ├── __init__.py
│   │   ├── __snapshots__
│   │   │   └── test_symbol_editing.ambr
│   │   ├── config
│   │   │   ├── __init__.py
│   │   │   └── test_serena_config.py
│   │   ├── test_edit_marker.py
│   │   ├── test_mcp.py
│   │   ├── test_serena_agent.py
│   │   ├── test_symbol_editing.py
│   │   ├── test_symbol.py
│   │   ├── test_text_utils.py
│   │   ├── test_tool_parameter_types.py
│   │   └── util
│   │       ├── test_exception.py
│   │       └── test_file_system.py
│   └── solidlsp
│       ├── al
│       │   └── test_al_basic.py
│       ├── bash
│       │   ├── __init__.py
│       │   └── test_bash_basic.py
│       ├── clojure
│       │   ├── __init__.py
│       │   └── test_clojure_basic.py
│       ├── csharp
│       │   └── test_csharp_basic.py
│       ├── dart
│       │   ├── __init__.py
│       │   └── test_dart_basic.py
│       ├── elixir
│       │   ├── __init__.py
│       │   ├── conftest.py
│       │   ├── test_elixir_basic.py
│       │   ├── test_elixir_ignored_dirs.py
│       │   ├── test_elixir_integration.py
│       │   └── test_elixir_symbol_retrieval.py
│       ├── elm
│       │   └── test_elm_basic.py
│       ├── erlang
│       │   ├── __init__.py
│       │   ├── conftest.py
│       │   ├── test_erlang_basic.py
│       │   ├── test_erlang_ignored_dirs.py
│       │   └── test_erlang_symbol_retrieval.py
│       ├── go
│       │   └── test_go_basic.py
│       ├── java
│       │   └── test_java_basic.py
│       ├── kotlin
│       │   └── test_kotlin_basic.py
│       ├── lua
│       │   └── test_lua_basic.py
│       ├── markdown
│       │   ├── __init__.py
│       │   └── test_markdown_basic.py
│       ├── nix
│       │   └── test_nix_basic.py
│       ├── perl
│       │   └── test_perl_basic.py
│       ├── php
│       │   └── test_php_basic.py
│       ├── python
│       │   ├── test_python_basic.py
│       │   ├── test_retrieval_with_ignored_dirs.py
│       │   └── test_symbol_retrieval.py
│       ├── r
│       │   ├── __init__.py
│       │   └── test_r_basic.py
│       ├── ruby
│       │   ├── test_ruby_basic.py
│       │   └── test_ruby_symbol_retrieval.py
│       ├── rust
│       │   ├── test_rust_2024_edition.py
│       │   └── test_rust_basic.py
│       ├── swift
│       │   └── test_swift_basic.py
│       ├── terraform
│       │   └── test_terraform_basic.py
│       ├── typescript
│       │   └── test_typescript_basic.py
│       ├── util
│       │   └── test_zip.py
│       └── zig
│           └── test_zig_basic.py
└── uv.lock
```

# Files

--------------------------------------------------------------------------------
/src/solidlsp/lsp_protocol_handler/lsp_types.py:
--------------------------------------------------------------------------------

```python
   1 | # Code generated. DO NOT EDIT.
   2 | # LSP v3.17.0
   3 | # TODO: Look into use of https://pypi.org/project/ts2python/ to generate the types for https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/
   4 | 
   5 | """
   6 | This file provides the Python types corresponding to the Typescript types defined in the language server protocol.
   7 | This file is obtained from https://github.com/predragnikolic/OLSP under the MIT License with the following terms:
   8 | 
   9 | MIT License
  10 | 
  11 | Copyright (c) 2023 Предраг Николић
  12 | 
  13 | Permission is hereby granted, free of charge, to any person obtaining a copy
  14 | of this software and associated documentation files (the "Software"), to deal
  15 | in the Software without restriction, including without limitation the rights
  16 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  17 | copies of the Software, and to permit persons to whom the Software is
  18 | furnished to do so, subject to the following conditions:
  19 | 
  20 | The above copyright notice and this permission notice shall be included in all
  21 | copies or substantial portions of the Software.
  22 | 
  23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  24 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  25 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  26 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  27 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  28 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  29 | SOFTWARE.
  30 | """
  31 | 
  32 | from enum import Enum, IntEnum, IntFlag
  33 | from typing import Literal, NotRequired, Union
  34 | 
  35 | from typing_extensions import TypedDict
  36 | 
  37 | URI = str
  38 | DocumentUri = str
  39 | Uint = int
  40 | RegExp = str
  41 | 
  42 | 
  43 | class SemanticTokenTypes(Enum):
  44 |     """A set of predefined token types. This set is not fixed
  45 |     an clients can specify additional token types via the
  46 |     corresponding client capabilities.
  47 | 
  48 |     @since 3.16.0
  49 |     """
  50 | 
  51 |     Namespace = "namespace"
  52 |     Type = "type"
  53 |     """ Represents a generic type. Acts as a fallback for types which can't be mapped to
  54 |     a specific type like class or enum. """
  55 |     Class = "class"
  56 |     Enum = "enum"
  57 |     Interface = "interface"
  58 |     Struct = "struct"
  59 |     TypeParameter = "typeParameter"
  60 |     Parameter = "parameter"
  61 |     Variable = "variable"
  62 |     Property = "property"
  63 |     EnumMember = "enumMember"
  64 |     Event = "event"
  65 |     Function = "function"
  66 |     Method = "method"
  67 |     Macro = "macro"
  68 |     Keyword = "keyword"
  69 |     Modifier = "modifier"
  70 |     Comment = "comment"
  71 |     String = "string"
  72 |     Number = "number"
  73 |     Regexp = "regexp"
  74 |     Operator = "operator"
  75 |     Decorator = "decorator"
  76 |     """ @since 3.17.0 """
  77 | 
  78 | 
  79 | class SemanticTokenModifiers(Enum):
  80 |     """A set of predefined token modifiers. This set is not fixed
  81 |     an clients can specify additional token types via the
  82 |     corresponding client capabilities.
  83 | 
  84 |     @since 3.16.0
  85 |     """
  86 | 
  87 |     Declaration = "declaration"
  88 |     Definition = "definition"
  89 |     Readonly = "readonly"
  90 |     Static = "static"
  91 |     Deprecated = "deprecated"
  92 |     Abstract = "abstract"
  93 |     Async = "async"
  94 |     Modification = "modification"
  95 |     Documentation = "documentation"
  96 |     DefaultLibrary = "defaultLibrary"
  97 | 
  98 | 
  99 | class DocumentDiagnosticReportKind(Enum):
 100 |     """The document diagnostic report kinds.
 101 | 
 102 |     @since 3.17.0
 103 |     """
 104 | 
 105 |     Full = "full"
 106 |     """ A diagnostic report with a full
 107 |     set of problems. """
 108 |     Unchanged = "unchanged"
 109 |     """ A report indicating that the last
 110 |     returned report is still accurate. """
 111 | 
 112 | 
 113 | class ErrorCodes(IntEnum):
 114 |     """Predefined error codes."""
 115 | 
 116 |     ParseError = -32700
 117 |     InvalidRequest = -32600
 118 |     MethodNotFound = -32601
 119 |     InvalidParams = -32602
 120 |     InternalError = -32603
 121 |     ServerNotInitialized = -32002
 122 |     """ Error code indicating that a server received a notification or
 123 |     request before the server has received the `initialize` request. """
 124 |     UnknownErrorCode = -32001
 125 | 
 126 | 
 127 | class LSPErrorCodes(IntEnum):
 128 |     RequestFailed = -32803
 129 |     """ A request failed but it was syntactically correct, e.g the
 130 |     method name was known and the parameters were valid. The error
 131 |     message should contain human readable information about why
 132 |     the request failed.
 133 | 
 134 |     @since 3.17.0 """
 135 |     ServerCancelled = -32802
 136 |     """ The server cancelled the request. This error code should
 137 |     only be used for requests that explicitly support being
 138 |     server cancellable.
 139 | 
 140 |     @since 3.17.0 """
 141 |     ContentModified = -32801
 142 |     """ The server detected that the content of a document got
 143 |     modified outside normal conditions. A server should
 144 |     NOT send this error code if it detects a content change
 145 |     in it unprocessed messages. The result even computed
 146 |     on an older state might still be useful for the client.
 147 | 
 148 |     If a client decides that a result is not of any use anymore
 149 |     the client should cancel the request. """
 150 |     RequestCancelled = -32800
 151 |     """ The client has canceled a request and a server as detected
 152 |     the cancel. """
 153 | 
 154 | 
 155 | class FoldingRangeKind(Enum):
 156 |     """A set of predefined range kinds."""
 157 | 
 158 |     Comment = "comment"
 159 |     """ Folding range for a comment """
 160 |     Imports = "imports"
 161 |     """ Folding range for an import or include """
 162 |     Region = "region"
 163 |     """ Folding range for a region (e.g. `#region`) """
 164 | 
 165 | 
 166 | class SymbolKind(IntEnum):
 167 |     """A symbol kind."""
 168 | 
 169 |     File = 1
 170 |     Module = 2
 171 |     Namespace = 3
 172 |     Package = 4
 173 |     """
 174 |     Represents a package or simply a directory in the filesystem
 175 |     """
 176 |     Class = 5
 177 |     Method = 6
 178 |     Property = 7
 179 |     Field = 8
 180 |     Constructor = 9
 181 |     Enum = 10
 182 |     Interface = 11
 183 |     Function = 12
 184 |     Variable = 13
 185 |     Constant = 14
 186 |     String = 15
 187 |     Number = 16
 188 |     Boolean = 17
 189 |     Array = 18
 190 |     Object = 19
 191 |     Key = 20
 192 |     Null = 21
 193 |     EnumMember = 22
 194 |     Struct = 23
 195 |     Event = 24
 196 |     Operator = 25
 197 |     TypeParameter = 26
 198 | 
 199 |     @classmethod
 200 |     def from_int(cls, value: int) -> "SymbolKind":
 201 |         for symbol_kind in cls:
 202 |             if symbol_kind.value == value:
 203 |                 return symbol_kind
 204 |         raise ValueError(f"Invalid symbol kind: {value}")
 205 | 
 206 | 
 207 | class SymbolTag(IntEnum):
 208 |     """Symbol tags are extra annotations that tweak the rendering of a symbol.
 209 | 
 210 |     @since 3.16
 211 |     """
 212 | 
 213 |     Deprecated = 1
 214 |     """ Render a symbol as obsolete, usually using a strike-out. """
 215 | 
 216 | 
 217 | class UniquenessLevel(Enum):
 218 |     """Moniker uniqueness level to define scope of the moniker.
 219 | 
 220 |     @since 3.16.0
 221 |     """
 222 | 
 223 |     Document = "document"
 224 |     """ The moniker is only unique inside a document """
 225 |     Project = "project"
 226 |     """ The moniker is unique inside a project for which a dump got created """
 227 |     Group = "group"
 228 |     """ The moniker is unique inside the group to which a project belongs """
 229 |     Scheme = "scheme"
 230 |     """ The moniker is unique inside the moniker scheme. """
 231 |     Global = "global"
 232 |     """ The moniker is globally unique """
 233 | 
 234 | 
 235 | class MonikerKind(Enum):
 236 |     """The moniker kind.
 237 | 
 238 |     @since 3.16.0
 239 |     """
 240 | 
 241 |     Import = "import"
 242 |     """ The moniker represent a symbol that is imported into a project """
 243 |     Export = "export"
 244 |     """ The moniker represents a symbol that is exported from a project """
 245 |     Local = "local"
 246 |     """ The moniker represents a symbol that is local to a project (e.g. a local
 247 |     variable of a function, a class not visible outside the project, ...) """
 248 | 
 249 | 
 250 | class InlayHintKind(IntEnum):
 251 |     """Inlay hint kinds.
 252 | 
 253 |     @since 3.17.0
 254 |     """
 255 | 
 256 |     Type = 1
 257 |     """ An inlay hint that for a type annotation. """
 258 |     Parameter = 2
 259 |     """ An inlay hint that is for a parameter. """
 260 | 
 261 | 
 262 | class MessageType(IntEnum):
 263 |     """The message type"""
 264 | 
 265 |     Error = 1
 266 |     """ An error message. """
 267 |     Warning = 2
 268 |     """ A warning message. """
 269 |     Info = 3
 270 |     """ An information message. """
 271 |     Log = 4
 272 |     """ A log message. """
 273 | 
 274 | 
 275 | class TextDocumentSyncKind(IntEnum):
 276 |     """Defines how the host (editor) should sync
 277 |     document changes to the language server.
 278 |     """
 279 | 
 280 |     None_ = 0
 281 |     """ Documents should not be synced at all. """
 282 |     Full = 1
 283 |     """ Documents are synced by always sending the full content
 284 |     of the document. """
 285 |     Incremental = 2
 286 |     """ Documents are synced by sending the full content on open.
 287 |     After that only incremental updates to the document are
 288 |     send. """
 289 | 
 290 | 
 291 | class TextDocumentSaveReason(IntEnum):
 292 |     """Represents reasons why a text document is saved."""
 293 | 
 294 |     Manual = 1
 295 |     """ Manually triggered, e.g. by the user pressing save, by starting debugging,
 296 |     or by an API call. """
 297 |     AfterDelay = 2
 298 |     """ Automatic after a delay. """
 299 |     FocusOut = 3
 300 |     """ When the editor lost focus. """
 301 | 
 302 | 
 303 | class CompletionItemKind(IntEnum):
 304 |     """The kind of a completion entry."""
 305 | 
 306 |     Text = 1
 307 |     Method = 2
 308 |     Function = 3
 309 |     Constructor = 4
 310 |     Field = 5
 311 |     Variable = 6
 312 |     Class = 7
 313 |     Interface = 8
 314 |     Module = 9
 315 |     Property = 10
 316 |     Unit = 11
 317 |     Value = 12
 318 |     Enum = 13
 319 |     Keyword = 14
 320 |     Snippet = 15
 321 |     Color = 16
 322 |     File = 17
 323 |     Reference = 18
 324 |     Folder = 19
 325 |     EnumMember = 20
 326 |     Constant = 21
 327 |     Struct = 22
 328 |     Event = 23
 329 |     Operator = 24
 330 |     TypeParameter = 25
 331 | 
 332 | 
 333 | class CompletionItemTag(IntEnum):
 334 |     """Completion item tags are extra annotations that tweak the rendering of a completion
 335 |     item.
 336 | 
 337 |     @since 3.15.0
 338 |     """
 339 | 
 340 |     Deprecated = 1
 341 |     """ Render a completion as obsolete, usually using a strike-out. """
 342 | 
 343 | 
 344 | class InsertTextFormat(IntEnum):
 345 |     """Defines whether the insert text in a completion item should be interpreted as
 346 |     plain text or a snippet.
 347 |     """
 348 | 
 349 |     PlainText = 1
 350 |     """ The primary text to be inserted is treated as a plain string. """
 351 |     Snippet = 2
 352 |     """ The primary text to be inserted is treated as a snippet.
 353 | 
 354 |     A snippet can define tab stops and placeholders with `$1`, `$2`
 355 |     and `${3:foo}`. `$0` defines the final tab stop, it defaults to
 356 |     the end of the snippet. Placeholders with equal identifiers are linked,
 357 |     that is typing in one will update others too.
 358 | 
 359 |     See also: https://microsoft.github.io/language-server-protocol/specifications/specification-current/#snippet_syntax """
 360 | 
 361 | 
 362 | class InsertTextMode(IntEnum):
 363 |     """How whitespace and indentation is handled during completion
 364 |     item insertion.
 365 | 
 366 |     @since 3.16.0
 367 |     """
 368 | 
 369 |     AsIs = 1
 370 |     """ The insertion or replace strings is taken as it is. If the
 371 |     value is multi line the lines below the cursor will be
 372 |     inserted using the indentation defined in the string value.
 373 |     The client will not apply any kind of adjustments to the
 374 |     string. """
 375 |     AdjustIndentation = 2
 376 |     """ The editor adjusts leading whitespace of new lines so that
 377 |     they match the indentation up to the cursor of the line for
 378 |     which the item is accepted.
 379 | 
 380 |     Consider a line like this: <2tabs><cursor><3tabs>foo. Accepting a
 381 |     multi line completion item is indented using 2 tabs and all
 382 |     following lines inserted will be indented using 2 tabs as well. """
 383 | 
 384 | 
 385 | class DocumentHighlightKind(IntEnum):
 386 |     """A document highlight kind."""
 387 | 
 388 |     Text = 1
 389 |     """ A textual occurrence. """
 390 |     Read = 2
 391 |     """ Read-access of a symbol, like reading a variable. """
 392 |     Write = 3
 393 |     """ Write-access of a symbol, like writing to a variable. """
 394 | 
 395 | 
 396 | class CodeActionKind(Enum):
 397 |     """A set of predefined code action kinds"""
 398 | 
 399 |     Empty = ""
 400 |     """ Empty kind. """
 401 |     QuickFix = "quickfix"
 402 |     """ Base kind for quickfix actions: 'quickfix' """
 403 |     Refactor = "refactor"
 404 |     """ Base kind for refactoring actions: 'refactor' """
 405 |     RefactorExtract = "refactor.extract"
 406 |     """ Base kind for refactoring extraction actions: 'refactor.extract'
 407 | 
 408 |     Example extract actions:
 409 | 
 410 |     - Extract method
 411 |     - Extract function
 412 |     - Extract variable
 413 |     - Extract interface from class
 414 |     - ... """
 415 |     RefactorInline = "refactor.inline"
 416 |     """ Base kind for refactoring inline actions: 'refactor.inline'
 417 | 
 418 |     Example inline actions:
 419 | 
 420 |     - Inline function
 421 |     - Inline variable
 422 |     - Inline constant
 423 |     - ... """
 424 |     RefactorRewrite = "refactor.rewrite"
 425 |     """ Base kind for refactoring rewrite actions: 'refactor.rewrite'
 426 | 
 427 |     Example rewrite actions:
 428 | 
 429 |     - Convert JavaScript function to class
 430 |     - Add or remove parameter
 431 |     - Encapsulate field
 432 |     - Make method static
 433 |     - Move method to base class
 434 |     - ... """
 435 |     Source = "source"
 436 |     """ Base kind for source actions: `source`
 437 | 
 438 |     Source code actions apply to the entire file. """
 439 |     SourceOrganizeImports = "source.organizeImports"
 440 |     """ Base kind for an organize imports source action: `source.organizeImports` """
 441 |     SourceFixAll = "source.fixAll"
 442 |     """ Base kind for auto-fix source actions: `source.fixAll`.
 443 | 
 444 |     Fix all actions automatically fix errors that have a clear fix that do not require user input.
 445 |     They should not suppress errors or perform unsafe fixes such as generating new types or classes.
 446 | 
 447 |     @since 3.15.0 """
 448 | 
 449 | 
 450 | class TraceValues(Enum):
 451 |     Off = "off"
 452 |     """ Turn tracing off. """
 453 |     Messages = "messages"
 454 |     """ Trace messages only. """
 455 |     Verbose = "verbose"
 456 |     """ Verbose message tracing. """
 457 | 
 458 | 
 459 | class MarkupKind(Enum):
 460 |     """Describes the content type that a client supports in various
 461 |     result literals like `Hover`, `ParameterInfo` or `CompletionItem`.
 462 | 
 463 |     Please note that `MarkupKinds` must not start with a `$`. This kinds
 464 |     are reserved for internal usage.
 465 |     """
 466 | 
 467 |     PlainText = "plaintext"
 468 |     """ Plain text is supported as a content format """
 469 |     Markdown = "markdown"
 470 |     """ Markdown is supported as a content format """
 471 | 
 472 | 
 473 | class PositionEncodingKind(Enum):
 474 |     """A set of predefined position encoding kinds.
 475 | 
 476 |     @since 3.17.0
 477 |     """
 478 | 
 479 |     UTF8 = "utf-8"
 480 |     """ Character offsets count UTF-8 code units. """
 481 |     UTF16 = "utf-16"
 482 |     """ Character offsets count UTF-16 code units.
 483 | 
 484 |     This is the default and must always be supported
 485 |     by servers """
 486 |     UTF32 = "utf-32"
 487 |     """ Character offsets count UTF-32 code units.
 488 | 
 489 |     Implementation note: these are the same as Unicode code points,
 490 |     so this `PositionEncodingKind` may also be used for an
 491 |     encoding-agnostic representation of character offsets. """
 492 | 
 493 | 
 494 | class FileChangeType(IntEnum):
 495 |     """The file event type"""
 496 | 
 497 |     Created = 1
 498 |     """ The file got created. """
 499 |     Changed = 2
 500 |     """ The file got changed. """
 501 |     Deleted = 3
 502 |     """ The file got deleted. """
 503 | 
 504 | 
 505 | class WatchKind(IntFlag):
 506 |     Create = 1
 507 |     """ Interested in create events. """
 508 |     Change = 2
 509 |     """ Interested in change events """
 510 |     Delete = 4
 511 |     """ Interested in delete events """
 512 | 
 513 | 
 514 | class DiagnosticSeverity(IntEnum):
 515 |     """The diagnostic's severity."""
 516 | 
 517 |     Error = 1
 518 |     """ Reports an error. """
 519 |     Warning = 2
 520 |     """ Reports a warning. """
 521 |     Information = 3
 522 |     """ Reports an information. """
 523 |     Hint = 4
 524 |     """ Reports a hint. """
 525 | 
 526 | 
 527 | class DiagnosticTag(IntEnum):
 528 |     """The diagnostic tags.
 529 | 
 530 |     @since 3.15.0
 531 |     """
 532 | 
 533 |     Unnecessary = 1
 534 |     """ Unused or unnecessary code.
 535 | 
 536 |     Clients are allowed to render diagnostics with this tag faded out instead of having
 537 |     an error squiggle. """
 538 |     Deprecated = 2
 539 |     """ Deprecated or obsolete code.
 540 | 
 541 |     Clients are allowed to rendered diagnostics with this tag strike through. """
 542 | 
 543 | 
 544 | class CompletionTriggerKind(IntEnum):
 545 |     """How a completion was triggered"""
 546 | 
 547 |     Invoked = 1
 548 |     """ Completion was triggered by typing an identifier (24x7 code
 549 |     complete), manual invocation (e.g Ctrl+Space) or via API. """
 550 |     TriggerCharacter = 2
 551 |     """ Completion was triggered by a trigger character specified by
 552 |     the `triggerCharacters` properties of the `CompletionRegistrationOptions`. """
 553 |     TriggerForIncompleteCompletions = 3
 554 |     """ Completion was re-triggered as current completion list is incomplete """
 555 | 
 556 | 
 557 | class SignatureHelpTriggerKind(IntEnum):
 558 |     """How a signature help was triggered.
 559 | 
 560 |     @since 3.15.0
 561 |     """
 562 | 
 563 |     Invoked = 1
 564 |     """ Signature help was invoked manually by the user or by a command. """
 565 |     TriggerCharacter = 2
 566 |     """ Signature help was triggered by a trigger character. """
 567 |     ContentChange = 3
 568 |     """ Signature help was triggered by the cursor moving or by the document content changing. """
 569 | 
 570 | 
 571 | class CodeActionTriggerKind(IntEnum):
 572 |     """The reason why code actions were requested.
 573 | 
 574 |     @since 3.17.0
 575 |     """
 576 | 
 577 |     Invoked = 1
 578 |     """ Code actions were explicitly requested by the user or by an extension. """
 579 |     Automatic = 2
 580 |     """ Code actions were requested automatically.
 581 | 
 582 |     This typically happens when current selection in a file changes, but can
 583 |     also be triggered when file content changes. """
 584 | 
 585 | 
 586 | class FileOperationPatternKind(Enum):
 587 |     """A pattern kind describing if a glob pattern matches a file a folder or
 588 |     both.
 589 | 
 590 |     @since 3.16.0
 591 |     """
 592 | 
 593 |     File = "file"
 594 |     """ The pattern matches a file only. """
 595 |     Folder = "folder"
 596 |     """ The pattern matches a folder only. """
 597 | 
 598 | 
 599 | class NotebookCellKind(IntEnum):
 600 |     """A notebook cell kind.
 601 | 
 602 |     @since 3.17.0
 603 |     """
 604 | 
 605 |     Markup = 1
 606 |     """ A markup-cell is formatted source that is used for display. """
 607 |     Code = 2
 608 |     """ A code-cell is source code. """
 609 | 
 610 | 
 611 | class ResourceOperationKind(Enum):
 612 |     Create = "create"
 613 |     """ Supports creating new files and folders. """
 614 |     Rename = "rename"
 615 |     """ Supports renaming existing files and folders. """
 616 |     Delete = "delete"
 617 |     """ Supports deleting existing files and folders. """
 618 | 
 619 | 
 620 | class FailureHandlingKind(Enum):
 621 |     Abort = "abort"
 622 |     """ Applying the workspace change is simply aborted if one of the changes provided
 623 |     fails. All operations executed before the failing operation stay executed. """
 624 |     Transactional = "transactional"
 625 |     """ All operations are executed transactional. That means they either all
 626 |     succeed or no changes at all are applied to the workspace. """
 627 |     TextOnlyTransactional = "textOnlyTransactional"
 628 |     """ If the workspace edit contains only textual file changes they are executed transactional.
 629 |     If resource changes (create, rename or delete file) are part of the change the failure
 630 |     handling strategy is abort. """
 631 |     Undo = "undo"
 632 |     """ The client tries to undo the operations already executed. But there is no
 633 |     guarantee that this is succeeding. """
 634 | 
 635 | 
 636 | class PrepareSupportDefaultBehavior(IntEnum):
 637 |     Identifier = 1
 638 |     """ The client's default behavior is to select the identifier
 639 |     according the to language's syntax rule. """
 640 | 
 641 | 
 642 | class TokenFormat(Enum):
 643 |     Relative = "relative"
 644 | 
 645 | 
 646 | Definition = Union["Location", list["Location"]]
 647 | """ The definition of a symbol represented as one or many {@link Location locations}.
 648 | For most programming languages there is only one location at which a symbol is
 649 | defined.
 650 | 
 651 | Servers should prefer returning `DefinitionLink` over `Definition` if supported
 652 | by the client. """
 653 | 
 654 | DefinitionLink = "LocationLink"
 655 | """ Information about where a symbol is defined.
 656 | 
 657 | Provides additional metadata over normal {@link Location location} definitions, including the range of
 658 | the defining symbol """
 659 | 
 660 | LSPArray = list["LSPAny"]
 661 | """ LSP arrays.
 662 | @since 3.17.0 """
 663 | 
 664 | LSPAny = Union["LSPObject", "LSPArray", str, int, Uint, float, bool, None]
 665 | """ The LSP any type.
 666 | Please note that strictly speaking a property with the value `undefined`
 667 | can't be converted into JSON preserving the property name. However for
 668 | convenience it is allowed and assumed that all these properties are
 669 | optional as well.
 670 | @since 3.17.0 """
 671 | 
 672 | Declaration = Union["Location", list["Location"]]
 673 | """ The declaration of a symbol representation as one or many {@link Location locations}. """
 674 | 
 675 | DeclarationLink = "LocationLink"
 676 | """ Information about where a symbol is declared.
 677 | 
 678 | Provides additional metadata over normal {@link Location location} declarations, including the range of
 679 | the declaring symbol.
 680 | 
 681 | Servers should prefer returning `DeclarationLink` over `Declaration` if supported
 682 | by the client. """
 683 | 
 684 | InlineValue = Union["InlineValueText", "InlineValueVariableLookup", "InlineValueEvaluatableExpression"]
 685 | """ Inline value information can be provided by different means:
 686 | - directly as a text value (class InlineValueText).
 687 | - as a name to use for a variable lookup (class InlineValueVariableLookup)
 688 | - as an evaluatable expression (class InlineValueEvaluatableExpression)
 689 | The InlineValue types combines all inline value types into one type.
 690 | 
 691 | @since 3.17.0 """
 692 | 
 693 | DocumentDiagnosticReport = Union["RelatedFullDocumentDiagnosticReport", "RelatedUnchangedDocumentDiagnosticReport"]
 694 | """ The result of a document diagnostic pull request. A report can
 695 | either be a full report containing all diagnostics for the
 696 | requested document or an unchanged report indicating that nothing
 697 | has changed in terms of diagnostics in comparison to the last
 698 | pull request.
 699 | 
 700 | @since 3.17.0 """
 701 | 
 702 | PrepareRenameResult = Union["Range", "__PrepareRenameResult_Type_1", "__PrepareRenameResult_Type_2"]
 703 | 
 704 | DocumentSelector = list["DocumentFilter"]
 705 | """ A document selector is the combination of one or many document filters.
 706 | 
 707 | @sample `let sel:DocumentSelector = [{ language: 'typescript' }, { language: 'json', pattern: '**/tsconfig.json' }]`;
 708 | 
 709 | The use of a string as a document filter is deprecated @since 3.16.0. """
 710 | 
 711 | ProgressToken = Union[int, str]
 712 | 
 713 | ChangeAnnotationIdentifier = str
 714 | """ An identifier to refer to a change annotation stored with a workspace edit. """
 715 | 
 716 | WorkspaceDocumentDiagnosticReport = Union[
 717 |     "WorkspaceFullDocumentDiagnosticReport",
 718 |     "WorkspaceUnchangedDocumentDiagnosticReport",
 719 | ]
 720 | """ A workspace diagnostic document report.
 721 | 
 722 | @since 3.17.0 """
 723 | 
 724 | TextDocumentContentChangeEvent = Union["__TextDocumentContentChangeEvent_Type_1", "__TextDocumentContentChangeEvent_Type_2"]
 725 | """ An event describing a change to a text document. If only a text is provided
 726 | it is considered to be the full content of the document. """
 727 | 
 728 | MarkedString = Union[str, "__MarkedString_Type_1"]
 729 | """ MarkedString can be used to render human readable text. It is either a markdown string
 730 | or a code-block that provides a language and a code snippet. The language identifier
 731 | is semantically equal to the optional language identifier in fenced code blocks in GitHub
 732 | issues. See https://help.github.com/articles/creating-and-highlighting-code-blocks/#syntax-highlighting
 733 | 
 734 | The pair of a language and a value is an equivalent to markdown:
 735 | ```${language}
 736 | ${value}
 737 | ```
 738 | 
 739 | Note that markdown strings will be sanitized - that means html will be escaped.
 740 | @deprecated use MarkupContent instead. """
 741 | 
 742 | DocumentFilter = Union["TextDocumentFilter", "NotebookCellTextDocumentFilter"]
 743 | """ A document filter describes a top level text document or
 744 | a notebook cell document.
 745 | 
 746 | @since 3.17.0 - proposed support for NotebookCellTextDocumentFilter. """
 747 | 
 748 | LSPObject = dict[str, "LSPAny"]
 749 | """ LSP object definition.
 750 | @since 3.17.0 """
 751 | 
 752 | GlobPattern = Union["Pattern", "RelativePattern"]
 753 | """ The glob pattern. Either a string pattern or a relative pattern.
 754 | 
 755 | @since 3.17.0 """
 756 | 
 757 | TextDocumentFilter = Union[
 758 |     "__TextDocumentFilter_Type_1",
 759 |     "__TextDocumentFilter_Type_2",
 760 |     "__TextDocumentFilter_Type_3",
 761 | ]
 762 | """ A document filter denotes a document by different properties like
 763 | the {@link TextDocument.languageId language}, the {@link Uri.scheme scheme} of
 764 | its resource, or a glob-pattern that is applied to the {@link TextDocument.fileName path}.
 765 | 
 766 | Glob patterns can have the following syntax:
 767 | - `*` to match one or more characters in a path segment
 768 | - `?` to match on one character in a path segment
 769 | - `**` to match any number of path segments, including none
 770 | - `{}` to group sub patterns into an OR expression. (e.g. `**\u200b/*.{ts,js}` matches all TypeScript and JavaScript files)
 771 | - `[]` to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …)
 772 | - `[!...]` to negate a range of characters to match in a path segment (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but not `example.0`)
 773 | 
 774 | @sample A language filter that applies to typescript files on disk: `{ language: 'typescript', scheme: 'file' }`
 775 | @sample A language filter that applies to all package.json paths: `{ language: 'json', pattern: '**package.json' }`
 776 | 
 777 | @since 3.17.0 """
 778 | 
 779 | NotebookDocumentFilter = Union[
 780 |     "__NotebookDocumentFilter_Type_1",
 781 |     "__NotebookDocumentFilter_Type_2",
 782 |     "__NotebookDocumentFilter_Type_3",
 783 | ]
 784 | """ A notebook document filter denotes a notebook document by
 785 | different properties. The properties will be match
 786 | against the notebook's URI (same as with documents)
 787 | 
 788 | @since 3.17.0 """
 789 | 
 790 | Pattern = str
 791 | """ The glob pattern to watch relative to the base path. Glob patterns can have the following syntax:
 792 | - `*` to match one or more characters in a path segment
 793 | - `?` to match on one character in a path segment
 794 | - `**` to match any number of path segments, including none
 795 | - `{}` to group conditions (e.g. `**\u200b/*.{ts,js}` matches all TypeScript and JavaScript files)
 796 | - `[]` to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …)
 797 | - `[!...]` to negate a range of characters to match in a path segment (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but not `example.0`)
 798 | 
 799 | @since 3.17.0 """
 800 | 
 801 | 
 802 | class ImplementationParams(TypedDict):
 803 |     textDocument: "TextDocumentIdentifier"
 804 |     """ The text document. """
 805 |     position: "Position"
 806 |     """ The position inside the text document. """
 807 |     workDoneToken: NotRequired["ProgressToken"]
 808 |     """ An optional token that a server can use to report work done progress. """
 809 |     partialResultToken: NotRequired["ProgressToken"]
 810 |     """ An optional token that a server can use to report partial results (e.g. streaming) to
 811 |     the client. """
 812 | 
 813 | 
 814 | class Location(TypedDict):
 815 |     """Represents a location inside a resource, such as a line
 816 |     inside a text file.
 817 |     """
 818 | 
 819 |     uri: "DocumentUri"
 820 |     range: "Range"
 821 | 
 822 | 
 823 | class ImplementationRegistrationOptions(TypedDict):
 824 |     documentSelector: Union["DocumentSelector", None]
 825 |     """ A document selector to identify the scope of the registration. If set to null
 826 |     the document selector provided on the client side will be used. """
 827 |     id: NotRequired[str]
 828 |     """ The id used to register the request. The id can be used to deregister
 829 |     the request again. See also Registration#id. """
 830 | 
 831 | 
 832 | class TypeDefinitionParams(TypedDict):
 833 |     textDocument: "TextDocumentIdentifier"
 834 |     """ The text document. """
 835 |     position: "Position"
 836 |     """ The position inside the text document. """
 837 |     workDoneToken: NotRequired["ProgressToken"]
 838 |     """ An optional token that a server can use to report work done progress. """
 839 |     partialResultToken: NotRequired["ProgressToken"]
 840 |     """ An optional token that a server can use to report partial results (e.g. streaming) to
 841 |     the client. """
 842 | 
 843 | 
 844 | class TypeDefinitionRegistrationOptions(TypedDict):
 845 |     documentSelector: Union["DocumentSelector", None]
 846 |     """ A document selector to identify the scope of the registration. If set to null
 847 |     the document selector provided on the client side will be used. """
 848 |     id: NotRequired[str]
 849 |     """ The id used to register the request. The id can be used to deregister
 850 |     the request again. See also Registration#id. """
 851 | 
 852 | 
 853 | class WorkspaceFolder(TypedDict):
 854 |     """A workspace folder inside a client."""
 855 | 
 856 |     uri: "URI"
 857 |     """ The associated URI for this workspace folder. """
 858 |     name: str
 859 |     """ The name of the workspace folder. Used to refer to this
 860 |     workspace folder in the user interface. """
 861 | 
 862 | 
 863 | class DidChangeWorkspaceFoldersParams(TypedDict):
 864 |     """The parameters of a `workspace/didChangeWorkspaceFolders` notification."""
 865 | 
 866 |     event: "WorkspaceFoldersChangeEvent"
 867 |     """ The actual workspace folder change event. """
 868 | 
 869 | 
 870 | class ConfigurationParams(TypedDict):
 871 |     """The parameters of a configuration request."""
 872 | 
 873 |     items: list["ConfigurationItem"]
 874 | 
 875 | 
 876 | class DocumentColorParams(TypedDict):
 877 |     """Parameters for a {@link DocumentColorRequest}."""
 878 | 
 879 |     textDocument: "TextDocumentIdentifier"
 880 |     """ The text document. """
 881 |     workDoneToken: NotRequired["ProgressToken"]
 882 |     """ An optional token that a server can use to report work done progress. """
 883 |     partialResultToken: NotRequired["ProgressToken"]
 884 |     """ An optional token that a server can use to report partial results (e.g. streaming) to
 885 |     the client. """
 886 | 
 887 | 
 888 | class ColorInformation(TypedDict):
 889 |     """Represents a color range from a document."""
 890 | 
 891 |     range: "Range"
 892 |     """ The range in the document where this color appears. """
 893 |     color: "Color"
 894 |     """ The actual color value for this color range. """
 895 | 
 896 | 
 897 | class DocumentColorRegistrationOptions(TypedDict):
 898 |     documentSelector: Union["DocumentSelector", None]
 899 |     """ A document selector to identify the scope of the registration. If set to null
 900 |     the document selector provided on the client side will be used. """
 901 |     id: NotRequired[str]
 902 |     """ The id used to register the request. The id can be used to deregister
 903 |     the request again. See also Registration#id. """
 904 | 
 905 | 
 906 | class ColorPresentationParams(TypedDict):
 907 |     """Parameters for a {@link ColorPresentationRequest}."""
 908 | 
 909 |     textDocument: "TextDocumentIdentifier"
 910 |     """ The text document. """
 911 |     color: "Color"
 912 |     """ The color to request presentations for. """
 913 |     range: "Range"
 914 |     """ The range where the color would be inserted. Serves as a context. """
 915 |     workDoneToken: NotRequired["ProgressToken"]
 916 |     """ An optional token that a server can use to report work done progress. """
 917 |     partialResultToken: NotRequired["ProgressToken"]
 918 |     """ An optional token that a server can use to report partial results (e.g. streaming) to
 919 |     the client. """
 920 | 
 921 | 
 922 | class ColorPresentation(TypedDict):
 923 |     label: str
 924 |     """ The label of this color presentation. It will be shown on the color
 925 |     picker header. By default this is also the text that is inserted when selecting
 926 |     this color presentation. """
 927 |     textEdit: NotRequired["TextEdit"]
 928 |     """ An {@link TextEdit edit} which is applied to a document when selecting
 929 |     this presentation for the color.  When `falsy` the {@link ColorPresentation.label label}
 930 |     is used. """
 931 |     additionalTextEdits: NotRequired[list["TextEdit"]]
 932 |     """ An optional array of additional {@link TextEdit text edits} that are applied when
 933 |     selecting this color presentation. Edits must not overlap with the main {@link ColorPresentation.textEdit edit} nor with themselves. """
 934 | 
 935 | 
 936 | class WorkDoneProgressOptions(TypedDict):
 937 |     workDoneProgress: NotRequired[bool]
 938 | 
 939 | 
 940 | class TextDocumentRegistrationOptions(TypedDict):
 941 |     """General text document registration options."""
 942 | 
 943 |     documentSelector: Union["DocumentSelector", None]
 944 |     """ A document selector to identify the scope of the registration. If set to null
 945 |     the document selector provided on the client side will be used. """
 946 | 
 947 | 
 948 | class FoldingRangeParams(TypedDict):
 949 |     """Parameters for a {@link FoldingRangeRequest}."""
 950 | 
 951 |     textDocument: "TextDocumentIdentifier"
 952 |     """ The text document. """
 953 |     workDoneToken: NotRequired["ProgressToken"]
 954 |     """ An optional token that a server can use to report work done progress. """
 955 |     partialResultToken: NotRequired["ProgressToken"]
 956 |     """ An optional token that a server can use to report partial results (e.g. streaming) to
 957 |     the client. """
 958 | 
 959 | 
 960 | class FoldingRange(TypedDict):
 961 |     """Represents a folding range. To be valid, start and end line must be bigger than zero and smaller
 962 |     than the number of lines in the document. Clients are free to ignore invalid ranges.
 963 |     """
 964 | 
 965 |     startLine: Uint
 966 |     """ The zero-based start line of the range to fold. The folded area starts after the line's last character.
 967 |     To be valid, the end must be zero or larger and smaller than the number of lines in the document. """
 968 |     startCharacter: NotRequired[Uint]
 969 |     """ The zero-based character offset from where the folded range starts. If not defined, defaults to the length of the start line. """
 970 |     endLine: Uint
 971 |     """ The zero-based end line of the range to fold. The folded area ends with the line's last character.
 972 |     To be valid, the end must be zero or larger and smaller than the number of lines in the document. """
 973 |     endCharacter: NotRequired[Uint]
 974 |     """ The zero-based character offset before the folded range ends. If not defined, defaults to the length of the end line. """
 975 |     kind: NotRequired["FoldingRangeKind"]
 976 |     """ Describes the kind of the folding range such as `comment' or 'region'. The kind
 977 |     is used to categorize folding ranges and used by commands like 'Fold all comments'.
 978 |     See {@link FoldingRangeKind} for an enumeration of standardized kinds. """
 979 |     collapsedText: NotRequired[str]
 980 |     """ The text that the client should show when the specified range is
 981 |     collapsed. If not defined or not supported by the client, a default
 982 |     will be chosen by the client.
 983 | 
 984 |     @since 3.17.0 """
 985 | 
 986 | 
 987 | class FoldingRangeRegistrationOptions(TypedDict):
 988 |     documentSelector: Union["DocumentSelector", None]
 989 |     """ A document selector to identify the scope of the registration. If set to null
 990 |     the document selector provided on the client side will be used. """
 991 |     id: NotRequired[str]
 992 |     """ The id used to register the request. The id can be used to deregister
 993 |     the request again. See also Registration#id. """
 994 | 
 995 | 
 996 | class DeclarationParams(TypedDict):
 997 |     textDocument: "TextDocumentIdentifier"
 998 |     """ The text document. """
 999 |     position: "Position"
1000 |     """ The position inside the text document. """
1001 |     workDoneToken: NotRequired["ProgressToken"]
1002 |     """ An optional token that a server can use to report work done progress. """
1003 |     partialResultToken: NotRequired["ProgressToken"]
1004 |     """ An optional token that a server can use to report partial results (e.g. streaming) to
1005 |     the client. """
1006 | 
1007 | 
1008 | class DeclarationRegistrationOptions(TypedDict):
1009 |     documentSelector: Union["DocumentSelector", None]
1010 |     """ A document selector to identify the scope of the registration. If set to null
1011 |     the document selector provided on the client side will be used. """
1012 |     id: NotRequired[str]
1013 |     """ The id used to register the request. The id can be used to deregister
1014 |     the request again. See also Registration#id. """
1015 | 
1016 | 
1017 | class SelectionRangeParams(TypedDict):
1018 |     """A parameter literal used in selection range requests."""
1019 | 
1020 |     textDocument: "TextDocumentIdentifier"
1021 |     """ The text document. """
1022 |     positions: list["Position"]
1023 |     """ The positions inside the text document. """
1024 |     workDoneToken: NotRequired["ProgressToken"]
1025 |     """ An optional token that a server can use to report work done progress. """
1026 |     partialResultToken: NotRequired["ProgressToken"]
1027 |     """ An optional token that a server can use to report partial results (e.g. streaming) to
1028 |     the client. """
1029 | 
1030 | 
1031 | class SelectionRange(TypedDict):
1032 |     """A selection range represents a part of a selection hierarchy. A selection range
1033 |     may have a parent selection range that contains it.
1034 |     """
1035 | 
1036 |     range: "Range"
1037 |     """ The {@link Range range} of this selection range. """
1038 |     parent: NotRequired["SelectionRange"]
1039 |     """ The parent selection range containing this range. Therefore `parent.range` must contain `this.range`. """
1040 | 
1041 | 
1042 | class SelectionRangeRegistrationOptions(TypedDict):
1043 |     documentSelector: Union["DocumentSelector", None]
1044 |     """ A document selector to identify the scope of the registration. If set to null
1045 |     the document selector provided on the client side will be used. """
1046 |     id: NotRequired[str]
1047 |     """ The id used to register the request. The id can be used to deregister
1048 |     the request again. See also Registration#id. """
1049 | 
1050 | 
1051 | class WorkDoneProgressCreateParams(TypedDict):
1052 |     token: "ProgressToken"
1053 |     """ The token to be used to report progress. """
1054 | 
1055 | 
1056 | class WorkDoneProgressCancelParams(TypedDict):
1057 |     token: "ProgressToken"
1058 |     """ The token to be used to report progress. """
1059 | 
1060 | 
1061 | class CallHierarchyPrepareParams(TypedDict):
1062 |     """The parameter of a `textDocument/prepareCallHierarchy` request.
1063 | 
1064 |     @since 3.16.0
1065 |     """
1066 | 
1067 |     textDocument: "TextDocumentIdentifier"
1068 |     """ The text document. """
1069 |     position: "Position"
1070 |     """ The position inside the text document. """
1071 |     workDoneToken: NotRequired["ProgressToken"]
1072 |     """ An optional token that a server can use to report work done progress. """
1073 | 
1074 | 
1075 | class CallHierarchyItem(TypedDict):
1076 |     """Represents programming constructs like functions or constructors in the context
1077 |     of call hierarchy.
1078 | 
1079 |     @since 3.16.0
1080 |     """
1081 | 
1082 |     name: str
1083 |     """ The name of this item. """
1084 |     kind: "SymbolKind"
1085 |     """ The kind of this item. """
1086 |     tags: NotRequired[list["SymbolTag"]]
1087 |     """ Tags for this item. """
1088 |     detail: NotRequired[str]
1089 |     """ More detail for this item, e.g. the signature of a function. """
1090 |     uri: "DocumentUri"
1091 |     """ The resource identifier of this item. """
1092 |     range: "Range"
1093 |     """ The range enclosing this symbol not including leading/trailing whitespace but everything else, e.g. comments and code. """
1094 |     selectionRange: "Range"
1095 |     """ The range that should be selected and revealed when this symbol is being picked, e.g. the name of a function.
1096 |     Must be contained by the {@link CallHierarchyItem.range `range`}. """
1097 |     data: NotRequired["LSPAny"]
1098 |     """ A data entry field that is preserved between a call hierarchy prepare and
1099 |     incoming calls or outgoing calls requests. """
1100 | 
1101 | 
1102 | class CallHierarchyRegistrationOptions(TypedDict):
1103 |     """Call hierarchy options used during static or dynamic registration.
1104 | 
1105 |     @since 3.16.0
1106 |     """
1107 | 
1108 |     documentSelector: Union["DocumentSelector", None]
1109 |     """ A document selector to identify the scope of the registration. If set to null
1110 |     the document selector provided on the client side will be used. """
1111 |     id: NotRequired[str]
1112 |     """ The id used to register the request. The id can be used to deregister
1113 |     the request again. See also Registration#id. """
1114 | 
1115 | 
1116 | class CallHierarchyIncomingCallsParams(TypedDict):
1117 |     """The parameter of a `callHierarchy/incomingCalls` request.
1118 | 
1119 |     @since 3.16.0
1120 |     """
1121 | 
1122 |     item: "CallHierarchyItem"
1123 |     workDoneToken: NotRequired["ProgressToken"]
1124 |     """ An optional token that a server can use to report work done progress. """
1125 |     partialResultToken: NotRequired["ProgressToken"]
1126 |     """ An optional token that a server can use to report partial results (e.g. streaming) to
1127 |     the client. """
1128 | 
1129 | 
1130 | CallHierarchyIncomingCall = TypedDict(
1131 |     "CallHierarchyIncomingCall",
1132 |     {
1133 |         # The item that makes the call.
1134 |         "from": "CallHierarchyItem",
1135 |         # The ranges at which the calls appear. This is relative to the caller
1136 |         # denoted by {@link CallHierarchyIncomingCall.from `this.from`}.
1137 |         "fromRanges": list["Range"],
1138 |     },
1139 | )
1140 | """ Represents an incoming call, e.g. a caller of a method or constructor.
1141 | 
1142 | @since 3.16.0 """
1143 | 
1144 | 
1145 | class CallHierarchyOutgoingCallsParams(TypedDict):
1146 |     """The parameter of a `callHierarchy/outgoingCalls` request.
1147 | 
1148 |     @since 3.16.0
1149 |     """
1150 | 
1151 |     item: "CallHierarchyItem"
1152 |     workDoneToken: NotRequired["ProgressToken"]
1153 |     """ An optional token that a server can use to report work done progress. """
1154 |     partialResultToken: NotRequired["ProgressToken"]
1155 |     """ An optional token that a server can use to report partial results (e.g. streaming) to
1156 |     the client. """
1157 | 
1158 | 
1159 | class CallHierarchyOutgoingCall(TypedDict):
1160 |     """Represents an outgoing call, e.g. calling a getter from a method or a method from a constructor etc.
1161 | 
1162 |     @since 3.16.0
1163 |     """
1164 | 
1165 |     to: "CallHierarchyItem"
1166 |     """ The item that is called. """
1167 |     fromRanges: list["Range"]
1168 |     """ The range at which this item is called. This is the range relative to the caller, e.g the item
1169 |     passed to {@link CallHierarchyItemProvider.provideCallHierarchyOutgoingCalls `provideCallHierarchyOutgoingCalls`}
1170 |     and not {@link CallHierarchyOutgoingCall.to `this.to`}. """
1171 | 
1172 | 
1173 | class SemanticTokensParams(TypedDict):
1174 |     """@since 3.16.0"""
1175 | 
1176 |     textDocument: "TextDocumentIdentifier"
1177 |     """ The text document. """
1178 |     workDoneToken: NotRequired["ProgressToken"]
1179 |     """ An optional token that a server can use to report work done progress. """
1180 |     partialResultToken: NotRequired["ProgressToken"]
1181 |     """ An optional token that a server can use to report partial results (e.g. streaming) to
1182 |     the client. """
1183 | 
1184 | 
1185 | class SemanticTokens(TypedDict):
1186 |     """@since 3.16.0"""
1187 | 
1188 |     resultId: NotRequired[str]
1189 |     """ An optional result id. If provided and clients support delta updating
1190 |     the client will include the result id in the next semantic token request.
1191 |     A server can then instead of computing all semantic tokens again simply
1192 |     send a delta. """
1193 |     data: list[Uint]
1194 |     """ The actual tokens. """
1195 | 
1196 | 
1197 | class SemanticTokensPartialResult(TypedDict):
1198 |     """@since 3.16.0"""
1199 | 
1200 |     data: list[Uint]
1201 | 
1202 | 
1203 | class SemanticTokensRegistrationOptions(TypedDict):
1204 |     """@since 3.16.0"""
1205 | 
1206 |     documentSelector: Union["DocumentSelector", None]
1207 |     """ A document selector to identify the scope of the registration. If set to null
1208 |     the document selector provided on the client side will be used. """
1209 |     legend: "SemanticTokensLegend"
1210 |     """ The legend used by the server """
1211 |     range: NotRequired[bool | dict]
1212 |     """ Server supports providing semantic tokens for a specific range
1213 |     of a document. """
1214 |     full: NotRequired[Union[bool, "__SemanticTokensOptions_full_Type_1"]]
1215 |     """ Server supports providing semantic tokens for a full document. """
1216 |     id: NotRequired[str]
1217 |     """ The id used to register the request. The id can be used to deregister
1218 |     the request again. See also Registration#id. """
1219 | 
1220 | 
1221 | class SemanticTokensDeltaParams(TypedDict):
1222 |     """@since 3.16.0"""
1223 | 
1224 |     textDocument: "TextDocumentIdentifier"
1225 |     """ The text document. """
1226 |     previousResultId: str
1227 |     """ The result id of a previous response. The result Id can either point to a full response
1228 |     or a delta response depending on what was received last. """
1229 |     workDoneToken: NotRequired["ProgressToken"]
1230 |     """ An optional token that a server can use to report work done progress. """
1231 |     partialResultToken: NotRequired["ProgressToken"]
1232 |     """ An optional token that a server can use to report partial results (e.g. streaming) to
1233 |     the client. """
1234 | 
1235 | 
1236 | class SemanticTokensDelta(TypedDict):
1237 |     """@since 3.16.0"""
1238 | 
1239 |     resultId: NotRequired[str]
1240 |     edits: list["SemanticTokensEdit"]
1241 |     """ The semantic token edits to transform a previous result into a new result. """
1242 | 
1243 | 
1244 | class SemanticTokensDeltaPartialResult(TypedDict):
1245 |     """@since 3.16.0"""
1246 | 
1247 |     edits: list["SemanticTokensEdit"]
1248 | 
1249 | 
1250 | class SemanticTokensRangeParams(TypedDict):
1251 |     """@since 3.16.0"""
1252 | 
1253 |     textDocument: "TextDocumentIdentifier"
1254 |     """ The text document. """
1255 |     range: "Range"
1256 |     """ The range the semantic tokens are requested for. """
1257 |     workDoneToken: NotRequired["ProgressToken"]
1258 |     """ An optional token that a server can use to report work done progress. """
1259 |     partialResultToken: NotRequired["ProgressToken"]
1260 |     """ An optional token that a server can use to report partial results (e.g. streaming) to
1261 |     the client. """
1262 | 
1263 | 
1264 | class ShowDocumentParams(TypedDict):
1265 |     """Params to show a document.
1266 | 
1267 |     @since 3.16.0
1268 |     """
1269 | 
1270 |     uri: "URI"
1271 |     """ The document uri to show. """
1272 |     external: NotRequired[bool]
1273 |     """ Indicates to show the resource in an external program.
1274 |     To show for example `https://code.visualstudio.com/`
1275 |     in the default WEB browser set `external` to `true`. """
1276 |     takeFocus: NotRequired[bool]
1277 |     """ An optional property to indicate whether the editor
1278 |     showing the document should take focus or not.
1279 |     Clients might ignore this property if an external
1280 |     program is started. """
1281 |     selection: NotRequired["Range"]
1282 |     """ An optional selection range if the document is a text
1283 |     document. Clients might ignore the property if an
1284 |     external program is started or the file is not a text
1285 |     file. """
1286 | 
1287 | 
1288 | class ShowDocumentResult(TypedDict):
1289 |     """The result of a showDocument request.
1290 | 
1291 |     @since 3.16.0
1292 |     """
1293 | 
1294 |     success: bool
1295 |     """ A boolean indicating if the show was successful. """
1296 | 
1297 | 
1298 | class LinkedEditingRangeParams(TypedDict):
1299 |     textDocument: "TextDocumentIdentifier"
1300 |     """ The text document. """
1301 |     position: "Position"
1302 |     """ The position inside the text document. """
1303 |     workDoneToken: NotRequired["ProgressToken"]
1304 |     """ An optional token that a server can use to report work done progress. """
1305 | 
1306 | 
1307 | class LinkedEditingRanges(TypedDict):
1308 |     """The result of a linked editing range request.
1309 | 
1310 |     @since 3.16.0
1311 |     """
1312 | 
1313 |     ranges: list["Range"]
1314 |     """ A list of ranges that can be edited together. The ranges must have
1315 |     identical length and contain identical text content. The ranges cannot overlap. """
1316 |     wordPattern: NotRequired[str]
1317 |     """ An optional word pattern (regular expression) that describes valid contents for
1318 |     the given ranges. If no pattern is provided, the client configuration's word
1319 |     pattern will be used. """
1320 | 
1321 | 
1322 | class LinkedEditingRangeRegistrationOptions(TypedDict):
1323 |     documentSelector: Union["DocumentSelector", None]
1324 |     """ A document selector to identify the scope of the registration. If set to null
1325 |     the document selector provided on the client side will be used. """
1326 |     id: NotRequired[str]
1327 |     """ The id used to register the request. The id can be used to deregister
1328 |     the request again. See also Registration#id. """
1329 | 
1330 | 
1331 | class CreateFilesParams(TypedDict):
1332 |     """The parameters sent in notifications/requests for user-initiated creation of
1333 |     files.
1334 | 
1335 |     @since 3.16.0
1336 |     """
1337 | 
1338 |     files: list["FileCreate"]
1339 |     """ An array of all files/folders created in this operation. """
1340 | 
1341 | 
1342 | class WorkspaceEdit(TypedDict):
1343 |     """A workspace edit represents changes to many resources managed in the workspace. The edit
1344 |     should either provide `changes` or `documentChanges`. If documentChanges are present
1345 |     they are preferred over `changes` if the client can handle versioned document edits.
1346 | 
1347 |     Since version 3.13.0 a workspace edit can contain resource operations as well. If resource
1348 |     operations are present clients need to execute the operations in the order in which they
1349 |     are provided. So a workspace edit for example can consist of the following two changes:
1350 |     (1) a create file a.txt and (2) a text document edit which insert text into file a.txt.
1351 | 
1352 |     An invalid sequence (e.g. (1) delete file a.txt and (2) insert text into file a.txt) will
1353 |     cause failure of the operation. How the client recovers from the failure is described by
1354 |     the client capability: `workspace.workspaceEdit.failureHandling`
1355 |     """
1356 | 
1357 |     changes: NotRequired[dict["DocumentUri", list["TextEdit"]]]
1358 |     """ Holds changes to existing resources. """
1359 |     documentChanges: NotRequired[list[Union["TextDocumentEdit", "CreateFile", "RenameFile", "DeleteFile"]]]
1360 |     """ Depending on the client capability `workspace.workspaceEdit.resourceOperations` document changes
1361 |     are either an array of `TextDocumentEdit`s to express changes to n different text documents
1362 |     where each text document edit addresses a specific version of a text document. Or it can contain
1363 |     above `TextDocumentEdit`s mixed with create, rename and delete file / folder operations.
1364 | 
1365 |     Whether a client supports versioned document edits is expressed via
1366 |     `workspace.workspaceEdit.documentChanges` client capability.
1367 | 
1368 |     If a client neither supports `documentChanges` nor `workspace.workspaceEdit.resourceOperations` then
1369 |     only plain `TextEdit`s using the `changes` property are supported. """
1370 |     changeAnnotations: NotRequired[dict["ChangeAnnotationIdentifier", "ChangeAnnotation"]]
1371 |     """ A map of change annotations that can be referenced in `AnnotatedTextEdit`s or create, rename and
1372 |     delete file / folder operations.
1373 | 
1374 |     Whether clients honor this property depends on the client capability `workspace.changeAnnotationSupport`.
1375 | 
1376 |     @since 3.16.0 """
1377 | 
1378 | 
1379 | class FileOperationRegistrationOptions(TypedDict):
1380 |     """The options to register for file operations.
1381 | 
1382 |     @since 3.16.0
1383 |     """
1384 | 
1385 |     filters: list["FileOperationFilter"]
1386 |     """ The actual filters. """
1387 | 
1388 | 
1389 | class RenameFilesParams(TypedDict):
1390 |     """The parameters sent in notifications/requests for user-initiated renames of
1391 |     files.
1392 | 
1393 |     @since 3.16.0
1394 |     """
1395 | 
1396 |     files: list["FileRename"]
1397 |     """ An array of all files/folders renamed in this operation. When a folder is renamed, only
1398 |     the folder will be included, and not its children. """
1399 | 
1400 | 
1401 | class DeleteFilesParams(TypedDict):
1402 |     """The parameters sent in notifications/requests for user-initiated deletes of
1403 |     files.
1404 | 
1405 |     @since 3.16.0
1406 |     """
1407 | 
1408 |     files: list["FileDelete"]
1409 |     """ An array of all files/folders deleted in this operation. """
1410 | 
1411 | 
1412 | class MonikerParams(TypedDict):
1413 |     textDocument: "TextDocumentIdentifier"
1414 |     """ The text document. """
1415 |     position: "Position"
1416 |     """ The position inside the text document. """
1417 |     workDoneToken: NotRequired["ProgressToken"]
1418 |     """ An optional token that a server can use to report work done progress. """
1419 |     partialResultToken: NotRequired["ProgressToken"]
1420 |     """ An optional token that a server can use to report partial results (e.g. streaming) to
1421 |     the client. """
1422 | 
1423 | 
1424 | class Moniker(TypedDict):
1425 |     """Moniker definition to match LSIF 0.5 moniker definition.
1426 | 
1427 |     @since 3.16.0
1428 |     """
1429 | 
1430 |     scheme: str
1431 |     """ The scheme of the moniker. For example tsc or .Net """
1432 |     identifier: str
1433 |     """ The identifier of the moniker. The value is opaque in LSIF however
1434 |     schema owners are allowed to define the structure if they want. """
1435 |     unique: "UniquenessLevel"
1436 |     """ The scope in which the moniker is unique """
1437 |     kind: NotRequired["MonikerKind"]
1438 |     """ The moniker kind if known. """
1439 | 
1440 | 
1441 | class MonikerRegistrationOptions(TypedDict):
1442 |     documentSelector: Union["DocumentSelector", None]
1443 |     """ A document selector to identify the scope of the registration. If set to null
1444 |     the document selector provided on the client side will be used. """
1445 | 
1446 | 
1447 | class TypeHierarchyPrepareParams(TypedDict):
1448 |     """The parameter of a `textDocument/prepareTypeHierarchy` request.
1449 | 
1450 |     @since 3.17.0
1451 |     """
1452 | 
1453 |     textDocument: "TextDocumentIdentifier"
1454 |     """ The text document. """
1455 |     position: "Position"
1456 |     """ The position inside the text document. """
1457 |     workDoneToken: NotRequired["ProgressToken"]
1458 |     """ An optional token that a server can use to report work done progress. """
1459 | 
1460 | 
1461 | class TypeHierarchyItem(TypedDict):
1462 |     """@since 3.17.0"""
1463 | 
1464 |     name: str
1465 |     """ The name of this item. """
1466 |     kind: "SymbolKind"
1467 |     """ The kind of this item. """
1468 |     tags: NotRequired[list["SymbolTag"]]
1469 |     """ Tags for this item. """
1470 |     detail: NotRequired[str]
1471 |     """ More detail for this item, e.g. the signature of a function. """
1472 |     uri: "DocumentUri"
1473 |     """ The resource identifier of this item. """
1474 |     range: "Range"
1475 |     """ The range enclosing this symbol not including leading/trailing whitespace
1476 |     but everything else, e.g. comments and code. """
1477 |     selectionRange: "Range"
1478 |     """ The range that should be selected and revealed when this symbol is being
1479 |     picked, e.g. the name of a function. Must be contained by the
1480 |     {@link TypeHierarchyItem.range `range`}. """
1481 |     data: NotRequired["LSPAny"]
1482 |     """ A data entry field that is preserved between a type hierarchy prepare and
1483 |     supertypes or subtypes requests. It could also be used to identify the
1484 |     type hierarchy in the server, helping improve the performance on
1485 |     resolving supertypes and subtypes. """
1486 | 
1487 | 
1488 | class TypeHierarchyRegistrationOptions(TypedDict):
1489 |     """Type hierarchy options used during static or dynamic registration.
1490 | 
1491 |     @since 3.17.0
1492 |     """
1493 | 
1494 |     documentSelector: Union["DocumentSelector", None]
1495 |     """ A document selector to identify the scope of the registration. If set to null
1496 |     the document selector provided on the client side will be used. """
1497 |     id: NotRequired[str]
1498 |     """ The id used to register the request. The id can be used to deregister
1499 |     the request again. See also Registration#id. """
1500 | 
1501 | 
1502 | class TypeHierarchySupertypesParams(TypedDict):
1503 |     """The parameter of a `typeHierarchy/supertypes` request.
1504 | 
1505 |     @since 3.17.0
1506 |     """
1507 | 
1508 |     item: "TypeHierarchyItem"
1509 |     workDoneToken: NotRequired["ProgressToken"]
1510 |     """ An optional token that a server can use to report work done progress. """
1511 |     partialResultToken: NotRequired["ProgressToken"]
1512 |     """ An optional token that a server can use to report partial results (e.g. streaming) to
1513 |     the client. """
1514 | 
1515 | 
1516 | class TypeHierarchySubtypesParams(TypedDict):
1517 |     """The parameter of a `typeHierarchy/subtypes` request.
1518 | 
1519 |     @since 3.17.0
1520 |     """
1521 | 
1522 |     item: "TypeHierarchyItem"
1523 |     workDoneToken: NotRequired["ProgressToken"]
1524 |     """ An optional token that a server can use to report work done progress. """
1525 |     partialResultToken: NotRequired["ProgressToken"]
1526 |     """ An optional token that a server can use to report partial results (e.g. streaming) to
1527 |     the client. """
1528 | 
1529 | 
1530 | class InlineValueParams(TypedDict):
1531 |     """A parameter literal used in inline value requests.
1532 | 
1533 |     @since 3.17.0
1534 |     """
1535 | 
1536 |     textDocument: "TextDocumentIdentifier"
1537 |     """ The text document. """
1538 |     range: "Range"
1539 |     """ The document range for which inline values should be computed. """
1540 |     context: "InlineValueContext"
1541 |     """ Additional information about the context in which inline values were
1542 |     requested. """
1543 |     workDoneToken: NotRequired["ProgressToken"]
1544 |     """ An optional token that a server can use to report work done progress. """
1545 | 
1546 | 
1547 | class InlineValueRegistrationOptions(TypedDict):
1548 |     """Inline value options used during static or dynamic registration.
1549 | 
1550 |     @since 3.17.0
1551 |     """
1552 | 
1553 |     documentSelector: Union["DocumentSelector", None]
1554 |     """ A document selector to identify the scope of the registration. If set to null
1555 |     the document selector provided on the client side will be used. """
1556 |     id: NotRequired[str]
1557 |     """ The id used to register the request. The id can be used to deregister
1558 |     the request again. See also Registration#id. """
1559 | 
1560 | 
1561 | class InlayHintParams(TypedDict):
1562 |     """A parameter literal used in inlay hint requests.
1563 | 
1564 |     @since 3.17.0
1565 |     """
1566 | 
1567 |     textDocument: "TextDocumentIdentifier"
1568 |     """ The text document. """
1569 |     range: "Range"
1570 |     """ The document range for which inlay hints should be computed. """
1571 |     workDoneToken: NotRequired["ProgressToken"]
1572 |     """ An optional token that a server can use to report work done progress. """
1573 | 
1574 | 
1575 | class InlayHint(TypedDict):
1576 |     """Inlay hint information.
1577 | 
1578 |     @since 3.17.0
1579 |     """
1580 | 
1581 |     position: "Position"
1582 |     """ The position of this hint. """
1583 |     label: str | list["InlayHintLabelPart"]
1584 |     """ The label of this hint. A human readable string or an array of
1585 |     InlayHintLabelPart label parts.
1586 | 
1587 |     *Note* that neither the string nor the label part can be empty. """
1588 |     kind: NotRequired["InlayHintKind"]
1589 |     """ The kind of this hint. Can be omitted in which case the client
1590 |     should fall back to a reasonable default. """
1591 |     textEdits: NotRequired[list["TextEdit"]]
1592 |     """ Optional text edits that are performed when accepting this inlay hint.
1593 | 
1594 |     *Note* that edits are expected to change the document so that the inlay
1595 |     hint (or its nearest variant) is now part of the document and the inlay
1596 |     hint itself is now obsolete. """
1597 |     tooltip: NotRequired[Union[str, "MarkupContent"]]
1598 |     """ The tooltip text when you hover over this item. """
1599 |     paddingLeft: NotRequired[bool]
1600 |     """ Render padding before the hint.
1601 | 
1602 |     Note: Padding should use the editor's background color, not the
1603 |     background color of the hint itself. That means padding can be used
1604 |     to visually align/separate an inlay hint. """
1605 |     paddingRight: NotRequired[bool]
1606 |     """ Render padding after the hint.
1607 | 
1608 |     Note: Padding should use the editor's background color, not the
1609 |     background color of the hint itself. That means padding can be used
1610 |     to visually align/separate an inlay hint. """
1611 |     data: NotRequired["LSPAny"]
1612 |     """ A data entry field that is preserved on an inlay hint between
1613 |     a `textDocument/inlayHint` and a `inlayHint/resolve` request. """
1614 | 
1615 | 
1616 | class InlayHintRegistrationOptions(TypedDict):
1617 |     """Inlay hint options used during static or dynamic registration.
1618 | 
1619 |     @since 3.17.0
1620 |     """
1621 | 
1622 |     resolveProvider: NotRequired[bool]
1623 |     """ The server provides support to resolve additional
1624 |     information for an inlay hint item. """
1625 |     documentSelector: Union["DocumentSelector", None]
1626 |     """ A document selector to identify the scope of the registration. If set to null
1627 |     the document selector provided on the client side will be used. """
1628 |     id: NotRequired[str]
1629 |     """ The id used to register the request. The id can be used to deregister
1630 |     the request again. See also Registration#id. """
1631 | 
1632 | 
1633 | class DocumentDiagnosticParams(TypedDict):
1634 |     """Parameters of the document diagnostic request.
1635 | 
1636 |     @since 3.17.0
1637 |     """
1638 | 
1639 |     textDocument: "TextDocumentIdentifier"
1640 |     """ The text document. """
1641 |     identifier: NotRequired[str]
1642 |     """ The additional identifier  provided during registration. """
1643 |     previousResultId: NotRequired[str]
1644 |     """ The result id of a previous response if provided. """
1645 |     workDoneToken: NotRequired["ProgressToken"]
1646 |     """ An optional token that a server can use to report work done progress. """
1647 |     partialResultToken: NotRequired["ProgressToken"]
1648 |     """ An optional token that a server can use to report partial results (e.g. streaming) to
1649 |     the client. """
1650 | 
1651 | 
1652 | class DocumentDiagnosticReportPartialResult(TypedDict):
1653 |     """A partial result for a document diagnostic report.
1654 | 
1655 |     @since 3.17.0
1656 |     """
1657 | 
1658 |     relatedDocuments: dict[
1659 |         "DocumentUri",
1660 |         Union["FullDocumentDiagnosticReport", "UnchangedDocumentDiagnosticReport"],
1661 |     ]
1662 | 
1663 | 
1664 | class DiagnosticServerCancellationData(TypedDict):
1665 |     """Cancellation data returned from a diagnostic request.
1666 | 
1667 |     @since 3.17.0
1668 |     """
1669 | 
1670 |     retriggerRequest: bool
1671 | 
1672 | 
1673 | class DiagnosticRegistrationOptions(TypedDict):
1674 |     """Diagnostic registration options.
1675 | 
1676 |     @since 3.17.0
1677 |     """
1678 | 
1679 |     documentSelector: Union["DocumentSelector", None]
1680 |     """ A document selector to identify the scope of the registration. If set to null
1681 |     the document selector provided on the client side will be used. """
1682 |     identifier: NotRequired[str]
1683 |     """ An optional identifier under which the diagnostics are
1684 |     managed by the client. """
1685 |     interFileDependencies: bool
1686 |     """ Whether the language has inter file dependencies meaning that
1687 |     editing code in one file can result in a different diagnostic
1688 |     set in another file. Inter file dependencies are common for
1689 |     most programming languages and typically uncommon for linters. """
1690 |     workspaceDiagnostics: bool
1691 |     """ The server provides support for workspace diagnostics as well. """
1692 |     id: NotRequired[str]
1693 |     """ The id used to register the request. The id can be used to deregister
1694 |     the request again. See also Registration#id. """
1695 | 
1696 | 
1697 | class WorkspaceDiagnosticParams(TypedDict):
1698 |     """Parameters of the workspace diagnostic request.
1699 | 
1700 |     @since 3.17.0
1701 |     """
1702 | 
1703 |     identifier: NotRequired[str]
1704 |     """ The additional identifier provided during registration. """
1705 |     previousResultIds: list["PreviousResultId"]
1706 |     """ The currently known diagnostic reports with their
1707 |     previous result ids. """
1708 |     workDoneToken: NotRequired["ProgressToken"]
1709 |     """ An optional token that a server can use to report work done progress. """
1710 |     partialResultToken: NotRequired["ProgressToken"]
1711 |     """ An optional token that a server can use to report partial results (e.g. streaming) to
1712 |     the client. """
1713 | 
1714 | 
1715 | class WorkspaceDiagnosticReport(TypedDict):
1716 |     """A workspace diagnostic report.
1717 | 
1718 |     @since 3.17.0
1719 |     """
1720 | 
1721 |     items: list["WorkspaceDocumentDiagnosticReport"]
1722 | 
1723 | 
1724 | class WorkspaceDiagnosticReportPartialResult(TypedDict):
1725 |     """A partial result for a workspace diagnostic report.
1726 | 
1727 |     @since 3.17.0
1728 |     """
1729 | 
1730 |     items: list["WorkspaceDocumentDiagnosticReport"]
1731 | 
1732 | 
1733 | class DidOpenNotebookDocumentParams(TypedDict):
1734 |     """The params sent in an open notebook document notification.
1735 | 
1736 |     @since 3.17.0
1737 |     """
1738 | 
1739 |     notebookDocument: "NotebookDocument"
1740 |     """ The notebook document that got opened. """
1741 |     cellTextDocuments: list["TextDocumentItem"]
1742 |     """ The text documents that represent the content
1743 |     of a notebook cell. """
1744 | 
1745 | 
1746 | class DidChangeNotebookDocumentParams(TypedDict):
1747 |     """The params sent in a change notebook document notification.
1748 | 
1749 |     @since 3.17.0
1750 |     """
1751 | 
1752 |     notebookDocument: "VersionedNotebookDocumentIdentifier"
1753 |     """ The notebook document that did change. The version number points
1754 |     to the version after all provided changes have been applied. If
1755 |     only the text document content of a cell changes the notebook version
1756 |     doesn't necessarily have to change. """
1757 |     change: "NotebookDocumentChangeEvent"
1758 |     """ The actual changes to the notebook document.
1759 | 
1760 |     The changes describe single state changes to the notebook document.
1761 |     So if there are two changes c1 (at array index 0) and c2 (at array
1762 |     index 1) for a notebook in state S then c1 moves the notebook from
1763 |     S to S' and c2 from S' to S''. So c1 is computed on the state S and
1764 |     c2 is computed on the state S'.
1765 | 
1766 |     To mirror the content of a notebook using change events use the following approach:
1767 |     - start with the same initial content
1768 |     - apply the 'notebookDocument/didChange' notifications in the order you receive them.
1769 |     - apply the `NotebookChangeEvent`s in a single notification in the order
1770 |       you receive them. """
1771 | 
1772 | 
1773 | class DidSaveNotebookDocumentParams(TypedDict):
1774 |     """The params sent in a save notebook document notification.
1775 | 
1776 |     @since 3.17.0
1777 |     """
1778 | 
1779 |     notebookDocument: "NotebookDocumentIdentifier"
1780 |     """ The notebook document that got saved. """
1781 | 
1782 | 
1783 | class DidCloseNotebookDocumentParams(TypedDict):
1784 |     """The params sent in a close notebook document notification.
1785 | 
1786 |     @since 3.17.0
1787 |     """
1788 | 
1789 |     notebookDocument: "NotebookDocumentIdentifier"
1790 |     """ The notebook document that got closed. """
1791 |     cellTextDocuments: list["TextDocumentIdentifier"]
1792 |     """ The text documents that represent the content
1793 |     of a notebook cell that got closed. """
1794 | 
1795 | 
1796 | class RegistrationParams(TypedDict):
1797 |     registrations: list["Registration"]
1798 | 
1799 | 
1800 | class UnregistrationParams(TypedDict):
1801 |     unregisterations: list["Unregistration"]
1802 | 
1803 | 
1804 | class InitializeParams(TypedDict):
1805 |     processId: int | None
1806 |     """ The process Id of the parent process that started
1807 |     the server.
1808 | 
1809 |     Is `null` if the process has not been started by another process.
1810 |     If the parent process is not alive then the server should exit. """
1811 |     clientInfo: NotRequired["___InitializeParams_clientInfo_Type_1"]
1812 |     """ Information about the client
1813 | 
1814 |     @since 3.15.0 """
1815 |     locale: NotRequired[str]
1816 |     """ The locale the client is currently showing the user interface
1817 |     in. This must not necessarily be the locale of the operating
1818 |     system.
1819 | 
1820 |     Uses IETF language tags as the value's syntax
1821 |     (See https://en.wikipedia.org/wiki/IETF_language_tag)
1822 | 
1823 |     @since 3.16.0 """
1824 |     rootPath: NotRequired[str | None]
1825 |     """ The rootPath of the workspace. Is null
1826 |     if no folder is open.
1827 | 
1828 |     @deprecated in favour of rootUri. """
1829 |     rootUri: Union["DocumentUri", None]
1830 |     """ The rootUri of the workspace. Is null if no
1831 |     folder is open. If both `rootPath` and `rootUri` are set
1832 |     `rootUri` wins.
1833 | 
1834 |     @deprecated in favour of workspaceFolders. """
1835 |     capabilities: "ClientCapabilities"
1836 |     """ The capabilities provided by the client (editor or tool) """
1837 |     initializationOptions: NotRequired["LSPAny"]
1838 |     """ User provided initialization options. """
1839 |     trace: NotRequired["TraceValues"]
1840 |     """ The initial trace setting. If omitted trace is disabled ('off'). """
1841 |     workspaceFolders: NotRequired[list["WorkspaceFolder"] | None]
1842 |     """ The workspace folders configured in the client when the server starts.
1843 | 
1844 |     This property is only available if the client supports workspace folders.
1845 |     It can be `null` if the client supports workspace folders but none are
1846 |     configured.
1847 | 
1848 |     @since 3.6.0 """
1849 | 
1850 | 
1851 | class InitializeResult(TypedDict):
1852 |     """The result returned from an initialize request."""
1853 | 
1854 |     capabilities: "ServerCapabilities"
1855 |     """ The capabilities the language server provides. """
1856 |     serverInfo: NotRequired["__InitializeResult_serverInfo_Type_1"]
1857 |     """ Information about the server.
1858 | 
1859 |     @since 3.15.0 """
1860 | 
1861 | 
1862 | class InitializeError(TypedDict):
1863 |     """The data type of the ResponseError if the
1864 |     initialize request fails.
1865 |     """
1866 | 
1867 |     retry: bool
1868 |     """ Indicates whether the client execute the following retry logic:
1869 |     (1) show the message provided by the ResponseError to the user
1870 |     (2) user selects retry or cancel
1871 |     (3) if user selected retry the initialize method is sent again. """
1872 | 
1873 | 
1874 | class InitializedParams(TypedDict):
1875 |     pass
1876 | 
1877 | 
1878 | class DidChangeConfigurationParams(TypedDict):
1879 |     """The parameters of a change configuration notification."""
1880 | 
1881 |     settings: "LSPAny"
1882 |     """ The actual changed settings """
1883 | 
1884 | 
1885 | class DidChangeConfigurationRegistrationOptions(TypedDict):
1886 |     section: NotRequired[str | list[str]]
1887 | 
1888 | 
1889 | class ShowMessageParams(TypedDict):
1890 |     """The parameters of a notification message."""
1891 | 
1892 |     type: "MessageType"
1893 |     """ The message type. See {@link MessageType} """
1894 |     message: str
1895 |     """ The actual message. """
1896 | 
1897 | 
1898 | class ShowMessageRequestParams(TypedDict):
1899 |     type: "MessageType"
1900 |     """ The message type. See {@link MessageType} """
1901 |     message: str
1902 |     """ The actual message. """
1903 |     actions: NotRequired[list["MessageActionItem"]]
1904 |     """ The message action items to present. """
1905 | 
1906 | 
1907 | class MessageActionItem(TypedDict):
1908 |     title: str
1909 |     """ A short title like 'Retry', 'Open Log' etc. """
1910 | 
1911 | 
1912 | class LogMessageParams(TypedDict):
1913 |     """The log message parameters."""
1914 | 
1915 |     type: "MessageType"
1916 |     """ The message type. See {@link MessageType} """
1917 |     message: str
1918 |     """ The actual message. """
1919 | 
1920 | 
1921 | class DidOpenTextDocumentParams(TypedDict):
1922 |     """The parameters sent in an open text document notification"""
1923 | 
1924 |     textDocument: "TextDocumentItem"
1925 |     """ The document that was opened. """
1926 | 
1927 | 
1928 | class DidChangeTextDocumentParams(TypedDict):
1929 |     """The change text document notification's parameters."""
1930 | 
1931 |     textDocument: "VersionedTextDocumentIdentifier"
1932 |     """ The document that did change. The version number points
1933 |     to the version after all provided content changes have
1934 |     been applied. """
1935 |     contentChanges: list["TextDocumentContentChangeEvent"]
1936 |     """ The actual content changes. The content changes describe single state changes
1937 |     to the document. So if there are two content changes c1 (at array index 0) and
1938 |     c2 (at array index 1) for a document in state S then c1 moves the document from
1939 |     S to S' and c2 from S' to S''. So c1 is computed on the state S and c2 is computed
1940 |     on the state S'.
1941 | 
1942 |     To mirror the content of a document using change events use the following approach:
1943 |     - start with the same initial content
1944 |     - apply the 'textDocument/didChange' notifications in the order you receive them.
1945 |     - apply the `TextDocumentContentChangeEvent`s in a single notification in the order
1946 |       you receive them. """
1947 | 
1948 | 
1949 | class TextDocumentChangeRegistrationOptions(TypedDict):
1950 |     """Describe options to be used when registered for text document change events."""
1951 | 
1952 |     syncKind: "TextDocumentSyncKind"
1953 |     """ How documents are synced to the server. """
1954 |     documentSelector: Union["DocumentSelector", None]
1955 |     """ A document selector to identify the scope of the registration. If set to null
1956 |     the document selector provided on the client side will be used. """
1957 | 
1958 | 
1959 | class DidCloseTextDocumentParams(TypedDict):
1960 |     """The parameters sent in a close text document notification"""
1961 | 
1962 |     textDocument: "TextDocumentIdentifier"
1963 |     """ The document that was closed. """
1964 | 
1965 | 
1966 | class DidSaveTextDocumentParams(TypedDict):
1967 |     """The parameters sent in a save text document notification"""
1968 | 
1969 |     textDocument: "TextDocumentIdentifier"
1970 |     """ The document that was saved. """
1971 |     text: NotRequired[str]
1972 |     """ Optional the content when saved. Depends on the includeText value
1973 |     when the save notification was requested. """
1974 | 
1975 | 
1976 | class TextDocumentSaveRegistrationOptions(TypedDict):
1977 |     """Save registration options."""
1978 | 
1979 |     documentSelector: Union["DocumentSelector", None]
1980 |     """ A document selector to identify the scope of the registration. If set to null
1981 |     the document selector provided on the client side will be used. """
1982 |     includeText: NotRequired[bool]
1983 |     """ The client is supposed to include the content on save. """
1984 | 
1985 | 
1986 | class WillSaveTextDocumentParams(TypedDict):
1987 |     """The parameters sent in a will save text document notification."""
1988 | 
1989 |     textDocument: "TextDocumentIdentifier"
1990 |     """ The document that will be saved. """
1991 |     reason: "TextDocumentSaveReason"
1992 |     """ The 'TextDocumentSaveReason'. """
1993 | 
1994 | 
1995 | class TextEdit(TypedDict):
1996 |     """A text edit applicable to a text document."""
1997 | 
1998 |     range: "Range"
1999 |     """ The range of the text document to be manipulated. To insert
2000 |     text into a document create a range where start === end. """
2001 |     newText: str
2002 |     """ The string to be inserted. For delete operations use an
2003 |     empty string. """
2004 | 
2005 | 
2006 | class DidChangeWatchedFilesParams(TypedDict):
2007 |     """The watched files change notification's parameters."""
2008 | 
2009 |     changes: list["FileEvent"]
2010 |     """ The actual file events. """
2011 | 
2012 | 
2013 | class DidChangeWatchedFilesRegistrationOptions(TypedDict):
2014 |     """Describe options to be used when registered for text document change events."""
2015 | 
2016 |     watchers: list["FileSystemWatcher"]
2017 |     """ The watchers to register. """
2018 | 
2019 | 
2020 | class PublishDiagnosticsParams(TypedDict):
2021 |     """The publish diagnostic notification's parameters."""
2022 | 
2023 |     uri: "DocumentUri"
2024 |     """ The URI for which diagnostic information is reported. """
2025 |     version: NotRequired[int]
2026 |     """ Optional the version number of the document the diagnostics are published for.
2027 | 
2028 |     @since 3.15.0 """
2029 |     diagnostics: list["Diagnostic"]
2030 |     """ An array of diagnostic information items. """
2031 | 
2032 | 
2033 | class CompletionParams(TypedDict):
2034 |     """Completion parameters"""
2035 | 
2036 |     context: NotRequired["CompletionContext"]
2037 |     """ The completion context. This is only available it the client specifies
2038 |     to send this using the client capability `textDocument.completion.contextSupport === true` """
2039 |     textDocument: "TextDocumentIdentifier"
2040 |     """ The text document. """
2041 |     position: "Position"
2042 |     """ The position inside the text document. """
2043 |     workDoneToken: NotRequired["ProgressToken"]
2044 |     """ An optional token that a server can use to report work done progress. """
2045 |     partialResultToken: NotRequired["ProgressToken"]
2046 |     """ An optional token that a server can use to report partial results (e.g. streaming) to
2047 |     the client. """
2048 | 
2049 | 
2050 | class CompletionItem(TypedDict):
2051 |     """A completion item represents a text snippet that is
2052 |     proposed to complete text that is being typed.
2053 |     """
2054 | 
2055 |     label: str
2056 |     """ The label of this completion item.
2057 | 
2058 |     The label property is also by default the text that
2059 |     is inserted when selecting this completion.
2060 | 
2061 |     If label details are provided the label itself should
2062 |     be an unqualified name of the completion item. """
2063 |     labelDetails: NotRequired["CompletionItemLabelDetails"]
2064 |     """ Additional details for the label
2065 | 
2066 |     @since 3.17.0 """
2067 |     kind: NotRequired["CompletionItemKind"]
2068 |     """ The kind of this completion item. Based of the kind
2069 |     an icon is chosen by the editor. """
2070 |     tags: NotRequired[list["CompletionItemTag"]]
2071 |     """ Tags for this completion item.
2072 | 
2073 |     @since 3.15.0 """
2074 |     detail: NotRequired[str]
2075 |     """ A human-readable string with additional information
2076 |     about this item, like type or symbol information. """
2077 |     documentation: NotRequired[Union[str, "MarkupContent"]]
2078 |     """ A human-readable string that represents a doc-comment. """
2079 |     deprecated: NotRequired[bool]
2080 |     """ Indicates if this item is deprecated.
2081 |     @deprecated Use `tags` instead. """
2082 |     preselect: NotRequired[bool]
2083 |     """ Select this item when showing.
2084 | 
2085 |     *Note* that only one completion item can be selected and that the
2086 |     tool / client decides which item that is. The rule is that the *first*
2087 |     item of those that match best is selected. """
2088 |     sortText: NotRequired[str]
2089 |     """ A string that should be used when comparing this item
2090 |     with other items. When `falsy` the {@link CompletionItem.label label}
2091 |     is used. """
2092 |     filterText: NotRequired[str]
2093 |     """ A string that should be used when filtering a set of
2094 |     completion items. When `falsy` the {@link CompletionItem.label label}
2095 |     is used. """
2096 |     insertText: NotRequired[str]
2097 |     """ A string that should be inserted into a document when selecting
2098 |     this completion. When `falsy` the {@link CompletionItem.label label}
2099 |     is used.
2100 | 
2101 |     The `insertText` is subject to interpretation by the client side.
2102 |     Some tools might not take the string literally. For example
2103 |     VS Code when code complete is requested in this example
2104 |     `con<cursor position>` and a completion item with an `insertText` of
2105 |     `console` is provided it will only insert `sole`. Therefore it is
2106 |     recommended to use `textEdit` instead since it avoids additional client
2107 |     side interpretation. """
2108 |     insertTextFormat: NotRequired["InsertTextFormat"]
2109 |     """ The format of the insert text. The format applies to both the
2110 |     `insertText` property and the `newText` property of a provided
2111 |     `textEdit`. If omitted defaults to `InsertTextFormat.PlainText`.
2112 | 
2113 |     Please note that the insertTextFormat doesn't apply to
2114 |     `additionalTextEdits`. """
2115 |     insertTextMode: NotRequired["InsertTextMode"]
2116 |     """ How whitespace and indentation is handled during completion
2117 |     item insertion. If not provided the clients default value depends on
2118 |     the `textDocument.completion.insertTextMode` client capability.
2119 | 
2120 |     @since 3.16.0 """
2121 |     textEdit: NotRequired[Union["TextEdit", "InsertReplaceEdit"]]
2122 |     """ An {@link TextEdit edit} which is applied to a document when selecting
2123 |     this completion. When an edit is provided the value of
2124 |     {@link CompletionItem.insertText insertText} is ignored.
2125 | 
2126 |     Most editors support two different operations when accepting a completion
2127 |     item. One is to insert a completion text and the other is to replace an
2128 |     existing text with a completion text. Since this can usually not be
2129 |     predetermined by a server it can report both ranges. Clients need to
2130 |     signal support for `InsertReplaceEdits` via the
2131 |     `textDocument.completion.insertReplaceSupport` client capability
2132 |     property.
2133 | 
2134 |     *Note 1:* The text edit's range as well as both ranges from an insert
2135 |     replace edit must be a [single line] and they must contain the position
2136 |     at which completion has been requested.
2137 |     *Note 2:* If an `InsertReplaceEdit` is returned the edit's insert range
2138 |     must be a prefix of the edit's replace range, that means it must be
2139 |     contained and starting at the same position.
2140 | 
2141 |     @since 3.16.0 additional type `InsertReplaceEdit` """
2142 |     textEditText: NotRequired[str]
2143 |     """ The edit text used if the completion item is part of a CompletionList and
2144 |     CompletionList defines an item default for the text edit range.
2145 | 
2146 |     Clients will only honor this property if they opt into completion list
2147 |     item defaults using the capability `completionList.itemDefaults`.
2148 | 
2149 |     If not provided and a list's default range is provided the label
2150 |     property is used as a text.
2151 | 
2152 |     @since 3.17.0 """
2153 |     additionalTextEdits: NotRequired[list["TextEdit"]]
2154 |     """ An optional array of additional {@link TextEdit text edits} that are applied when
2155 |     selecting this completion. Edits must not overlap (including the same insert position)
2156 |     with the main {@link CompletionItem.textEdit edit} nor with themselves.
2157 | 
2158 |     Additional text edits should be used to change text unrelated to the current cursor position
2159 |     (for example adding an import statement at the top of the file if the completion item will
2160 |     insert an unqualified type). """
2161 |     commitCharacters: NotRequired[list[str]]
2162 |     """ An optional set of characters that when pressed while this completion is active will accept it first and
2163 |     then type that character. *Note* that all commit characters should have `length=1` and that superfluous
2164 |     characters will be ignored. """
2165 |     command: NotRequired["Command"]
2166 |     """ An optional {@link Command command} that is executed *after* inserting this completion. *Note* that
2167 |     additional modifications to the current document should be described with the
2168 |     {@link CompletionItem.additionalTextEdits additionalTextEdits}-property. """
2169 |     data: NotRequired["LSPAny"]
2170 |     """ A data entry field that is preserved on a completion item between a
2171 |     {@link CompletionRequest} and a {@link CompletionResolveRequest}. """
2172 | 
2173 | 
2174 | class CompletionList(TypedDict):
2175 |     """Represents a collection of {@link CompletionItem completion items} to be presented
2176 |     in the editor.
2177 |     """
2178 | 
2179 |     isIncomplete: bool
2180 |     """ This list it not complete. Further typing results in recomputing this list.
2181 | 
2182 |     Recomputed lists have all their items replaced (not appended) in the
2183 |     incomplete completion sessions. """
2184 |     itemDefaults: NotRequired["__CompletionList_itemDefaults_Type_1"]
2185 |     """ In many cases the items of an actual completion result share the same
2186 |     value for properties like `commitCharacters` or the range of a text
2187 |     edit. A completion list can therefore define item defaults which will
2188 |     be used if a completion item itself doesn't specify the value.
2189 | 
2190 |     If a completion list specifies a default value and a completion item
2191 |     also specifies a corresponding value the one from the item is used.
2192 | 
2193 |     Servers are only allowed to return default values if the client
2194 |     signals support for this via the `completionList.itemDefaults`
2195 |     capability.
2196 | 
2197 |     @since 3.17.0 """
2198 |     items: list["CompletionItem"]
2199 |     """ The completion items. """
2200 | 
2201 | 
2202 | class CompletionRegistrationOptions(TypedDict):
2203 |     """Registration options for a {@link CompletionRequest}."""
2204 | 
2205 |     documentSelector: Union["DocumentSelector", None]
2206 |     """ A document selector to identify the scope of the registration. If set to null
2207 |     the document selector provided on the client side will be used. """
2208 |     triggerCharacters: NotRequired[list[str]]
2209 |     """ Most tools trigger completion request automatically without explicitly requesting
2210 |     it using a keyboard shortcut (e.g. Ctrl+Space). Typically they do so when the user
2211 |     starts to type an identifier. For example if the user types `c` in a JavaScript file
2212 |     code complete will automatically pop up present `console` besides others as a
2213 |     completion item. Characters that make up identifiers don't need to be listed here.
2214 | 
2215 |     If code complete should automatically be trigger on characters not being valid inside
2216 |     an identifier (for example `.` in JavaScript) list them in `triggerCharacters`. """
2217 |     allCommitCharacters: NotRequired[list[str]]
2218 |     """ The list of all possible characters that commit a completion. This field can be used
2219 |     if clients don't support individual commit characters per completion item. See
2220 |     `ClientCapabilities.textDocument.completion.completionItem.commitCharactersSupport`
2221 | 
2222 |     If a server provides both `allCommitCharacters` and commit characters on an individual
2223 |     completion item the ones on the completion item win.
2224 | 
2225 |     @since 3.2.0 """
2226 |     resolveProvider: NotRequired[bool]
2227 |     """ The server provides support to resolve additional
2228 |     information for a completion item. """
2229 |     completionItem: NotRequired["__CompletionOptions_completionItem_Type_1"]
2230 |     """ The server supports the following `CompletionItem` specific
2231 |     capabilities.
2232 | 
2233 |     @since 3.17.0 """
2234 | 
2235 | 
2236 | class HoverParams(TypedDict):
2237 |     """Parameters for a {@link HoverRequest}."""
2238 | 
2239 |     textDocument: "TextDocumentIdentifier"
2240 |     """ The text document. """
2241 |     position: "Position"
2242 |     """ The position inside the text document. """
2243 |     workDoneToken: NotRequired["ProgressToken"]
2244 |     """ An optional token that a server can use to report work done progress. """
2245 | 
2246 | 
2247 | class Hover(TypedDict):
2248 |     """The result of a hover request."""
2249 | 
2250 |     contents: Union["MarkupContent", "MarkedString", list["MarkedString"]]
2251 |     """ The hover's content """
2252 |     range: NotRequired["Range"]
2253 |     """ An optional range inside the text document that is used to
2254 |     visualize the hover, e.g. by changing the background color. """
2255 | 
2256 | 
2257 | class HoverRegistrationOptions(TypedDict):
2258 |     """Registration options for a {@link HoverRequest}."""
2259 | 
2260 |     documentSelector: Union["DocumentSelector", None]
2261 |     """ A document selector to identify the scope of the registration. If set to null
2262 |     the document selector provided on the client side will be used. """
2263 | 
2264 | 
2265 | class SignatureHelpParams(TypedDict):
2266 |     """Parameters for a {@link SignatureHelpRequest}."""
2267 | 
2268 |     context: NotRequired["SignatureHelpContext"]
2269 |     """ The signature help context. This is only available if the client specifies
2270 |     to send this using the client capability `textDocument.signatureHelp.contextSupport === true`
2271 | 
2272 |     @since 3.15.0 """
2273 |     textDocument: "TextDocumentIdentifier"
2274 |     """ The text document. """
2275 |     position: "Position"
2276 |     """ The position inside the text document. """
2277 |     workDoneToken: NotRequired["ProgressToken"]
2278 |     """ An optional token that a server can use to report work done progress. """
2279 | 
2280 | 
2281 | class SignatureHelp(TypedDict):
2282 |     """Signature help represents the signature of something
2283 |     callable. There can be multiple signature but only one
2284 |     active and only one active parameter.
2285 |     """
2286 | 
2287 |     signatures: list["SignatureInformation"]
2288 |     """ One or more signatures. """
2289 |     activeSignature: NotRequired[Uint]
2290 |     """ The active signature. If omitted or the value lies outside the
2291 |     range of `signatures` the value defaults to zero or is ignored if
2292 |     the `SignatureHelp` has no signatures.
2293 | 
2294 |     Whenever possible implementers should make an active decision about
2295 |     the active signature and shouldn't rely on a default value.
2296 | 
2297 |     In future version of the protocol this property might become
2298 |     mandatory to better express this. """
2299 |     activeParameter: NotRequired[Uint]
2300 |     """ The active parameter of the active signature. If omitted or the value
2301 |     lies outside the range of `signatures[activeSignature].parameters`
2302 |     defaults to 0 if the active signature has parameters. If
2303 |     the active signature has no parameters it is ignored.
2304 |     In future version of the protocol this property might become
2305 |     mandatory to better express the active parameter if the
2306 |     active signature does have any. """
2307 | 
2308 | 
2309 | class SignatureHelpRegistrationOptions(TypedDict):
2310 |     """Registration options for a {@link SignatureHelpRequest}."""
2311 | 
2312 |     documentSelector: Union["DocumentSelector", None]
2313 |     """ A document selector to identify the scope of the registration. If set to null
2314 |     the document selector provided on the client side will be used. """
2315 |     triggerCharacters: NotRequired[list[str]]
2316 |     """ List of characters that trigger signature help automatically. """
2317 |     retriggerCharacters: NotRequired[list[str]]
2318 |     """ List of characters that re-trigger signature help.
2319 | 
2320 |     These trigger characters are only active when signature help is already showing. All trigger characters
2321 |     are also counted as re-trigger characters.
2322 | 
2323 |     @since 3.15.0 """
2324 | 
2325 | 
2326 | class DefinitionParams(TypedDict):
2327 |     """Parameters for a {@link DefinitionRequest}."""
2328 | 
2329 |     textDocument: "TextDocumentIdentifier"
2330 |     """ The text document. """
2331 |     position: "Position"
2332 |     """ The position inside the text document. """
2333 |     workDoneToken: NotRequired["ProgressToken"]
2334 |     """ An optional token that a server can use to report work done progress. """
2335 |     partialResultToken: NotRequired["ProgressToken"]
2336 |     """ An optional token that a server can use to report partial results (e.g. streaming) to
2337 |     the client. """
2338 | 
2339 | 
2340 | class DefinitionRegistrationOptions(TypedDict):
2341 |     """Registration options for a {@link DefinitionRequest}."""
2342 | 
2343 |     documentSelector: Union["DocumentSelector", None]
2344 |     """ A document selector to identify the scope of the registration. If set to null
2345 |     the document selector provided on the client side will be used. """
2346 | 
2347 | 
2348 | class ReferenceParams(TypedDict):
2349 |     """Parameters for a {@link ReferencesRequest}."""
2350 | 
2351 |     context: "ReferenceContext"
2352 |     textDocument: "TextDocumentIdentifier"
2353 |     """ The text document. """
2354 |     position: "Position"
2355 |     """ The position inside the text document. """
2356 |     workDoneToken: NotRequired["ProgressToken"]
2357 |     """ An optional token that a server can use to report work done progress. """
2358 |     partialResultToken: NotRequired["ProgressToken"]
2359 |     """ An optional token that a server can use to report partial results (e.g. streaming) to
2360 |     the client. """
2361 | 
2362 | 
2363 | class ReferenceRegistrationOptions(TypedDict):
2364 |     """Registration options for a {@link ReferencesRequest}."""
2365 | 
2366 |     documentSelector: Union["DocumentSelector", None]
2367 |     """ A document selector to identify the scope of the registration. If set to null
2368 |     the document selector provided on the client side will be used. """
2369 | 
2370 | 
2371 | class DocumentHighlightParams(TypedDict):
2372 |     """Parameters for a {@link DocumentHighlightRequest}."""
2373 | 
2374 |     textDocument: "TextDocumentIdentifier"
2375 |     """ The text document. """
2376 |     position: "Position"
2377 |     """ The position inside the text document. """
2378 |     workDoneToken: NotRequired["ProgressToken"]
2379 |     """ An optional token that a server can use to report work done progress. """
2380 |     partialResultToken: NotRequired["ProgressToken"]
2381 |     """ An optional token that a server can use to report partial results (e.g. streaming) to
2382 |     the client. """
2383 | 
2384 | 
2385 | class DocumentHighlight(TypedDict):
2386 |     """A document highlight is a range inside a text document which deserves
2387 |     special attention. Usually a document highlight is visualized by changing
2388 |     the background color of its range.
2389 |     """
2390 | 
2391 |     range: "Range"
2392 |     """ The range this highlight applies to. """
2393 |     kind: NotRequired["DocumentHighlightKind"]
2394 |     """ The highlight kind, default is {@link DocumentHighlightKind.Text text}. """
2395 | 
2396 | 
2397 | class DocumentHighlightRegistrationOptions(TypedDict):
2398 |     """Registration options for a {@link DocumentHighlightRequest}."""
2399 | 
2400 |     documentSelector: Union["DocumentSelector", None]
2401 |     """ A document selector to identify the scope of the registration. If set to null
2402 |     the document selector provided on the client side will be used. """
2403 | 
2404 | 
2405 | class DocumentSymbolParams(TypedDict):
2406 |     """Parameters for a {@link DocumentSymbolRequest}."""
2407 | 
2408 |     textDocument: "TextDocumentIdentifier"
2409 |     """ The text document. """
2410 |     workDoneToken: NotRequired["ProgressToken"]
2411 |     """ An optional token that a server can use to report work done progress. """
2412 |     partialResultToken: NotRequired["ProgressToken"]
2413 |     """ An optional token that a server can use to report partial results (e.g. streaming) to
2414 |     the client. """
2415 | 
2416 | 
2417 | class SymbolInformation(TypedDict):
2418 |     """Represents information about programming constructs like variables, classes,
2419 |     interfaces etc.
2420 |     """
2421 | 
2422 |     deprecated: NotRequired[bool]
2423 |     """ Indicates if this symbol is deprecated.
2424 | 
2425 |     @deprecated Use tags instead """
2426 |     location: "Location"
2427 |     """ The location of this symbol. The location's range is used by a tool
2428 |     to reveal the location in the editor. If the symbol is selected in the
2429 |     tool the range's start information is used to position the cursor. So
2430 |     the range usually spans more than the actual symbol's name and does
2431 |     normally include things like visibility modifiers.
2432 | 
2433 |     The range doesn't have to denote a node range in the sense of an abstract
2434 |     syntax tree. It can therefore not be used to re-construct a hierarchy of
2435 |     the symbols. """
2436 |     name: str
2437 |     """ The name of this symbol. """
2438 |     kind: "SymbolKind"
2439 |     """ The kind of this symbol. """
2440 |     tags: NotRequired[list["SymbolTag"]]
2441 |     """ Tags for this symbol.
2442 | 
2443 |     @since 3.16.0 """
2444 |     containerName: NotRequired[str]
2445 |     """ The name of the symbol containing this symbol. This information is for
2446 |     user interface purposes (e.g. to render a qualifier in the user interface
2447 |     if necessary). It can't be used to re-infer a hierarchy for the document
2448 |     symbols. """
2449 | 
2450 | 
2451 | class DocumentSymbol(TypedDict):
2452 |     """Represents programming constructs like variables, classes, interfaces etc.
2453 |     that appear in a document. Document symbols can be hierarchical and they
2454 |     have two ranges: one that encloses its definition and one that points to
2455 |     its most interesting range, e.g. the range of an identifier.
2456 |     """
2457 | 
2458 |     name: str
2459 |     """ The name of this symbol. Will be displayed in the user interface and therefore must not be
2460 |     an empty string or a string only consisting of white spaces. """
2461 |     detail: NotRequired[str]
2462 |     """ More detail for this symbol, e.g the signature of a function. """
2463 |     kind: "SymbolKind"
2464 |     """ The kind of this symbol. """
2465 |     tags: NotRequired[list["SymbolTag"]]
2466 |     """ Tags for this document symbol.
2467 | 
2468 |     @since 3.16.0 """
2469 |     deprecated: NotRequired[bool]
2470 |     """ Indicates if this symbol is deprecated.
2471 | 
2472 |     @deprecated Use tags instead """
2473 |     range: "Range"
2474 |     """ The range enclosing this symbol not including leading/trailing whitespace but everything else
2475 |     like comments. This information is typically used to determine if the clients cursor is
2476 |     inside the symbol to reveal in the symbol in the UI. """
2477 |     selectionRange: "Range"
2478 |     """ The range that should be selected and revealed when this symbol is being picked, e.g the name of a function.
2479 |     Must be contained by the `range`. """
2480 | 
2481 | 
2482 | class DocumentSymbolRegistrationOptions(TypedDict):
2483 |     """Registration options for a {@link DocumentSymbolRequest}."""
2484 | 
2485 |     documentSelector: Union["DocumentSelector", None]
2486 |     """ A document selector to identify the scope of the registration. If set to null
2487 |     the document selector provided on the client side will be used. """
2488 |     label: NotRequired[str]
2489 |     """ A human-readable string that is shown when multiple outlines trees
2490 |     are shown for the same document.
2491 | 
2492 |     @since 3.16.0 """
2493 | 
2494 | 
2495 | class CodeActionParams(TypedDict):
2496 |     """The parameters of a {@link CodeActionRequest}."""
2497 | 
2498 |     textDocument: "TextDocumentIdentifier"
2499 |     """ The document in which the command was invoked. """
2500 |     range: "Range"
2501 |     """ The range for which the command was invoked. """
2502 |     context: "CodeActionContext"
2503 |     """ Context carrying additional information. """
2504 |     workDoneToken: NotRequired["ProgressToken"]
2505 |     """ An optional token that a server can use to report work done progress. """
2506 |     partialResultToken: NotRequired["ProgressToken"]
2507 |     """ An optional token that a server can use to report partial results (e.g. streaming) to
2508 |     the client. """
2509 | 
2510 | 
2511 | class Command(TypedDict):
2512 |     """Represents a reference to a command. Provides a title which
2513 |     will be used to represent a command in the UI and, optionally,
2514 |     an array of arguments which will be passed to the command handler
2515 |     function when invoked.
2516 |     """
2517 | 
2518 |     title: str
2519 |     """ Title of the command, like `save`. """
2520 |     command: str
2521 |     """ The identifier of the actual command handler. """
2522 |     arguments: NotRequired[list["LSPAny"]]
2523 |     """ Arguments that the command handler should be
2524 |     invoked with. """
2525 | 
2526 | 
2527 | class CodeAction(TypedDict):
2528 |     """A code action represents a change that can be performed in code, e.g. to fix a problem or
2529 |     to refactor code.
2530 | 
2531 |     A CodeAction must set either `edit` and/or a `command`. If both are supplied, the `edit` is applied first, then the `command` is executed.
2532 |     """
2533 | 
2534 |     title: str
2535 |     """ A short, human-readable, title for this code action. """
2536 |     kind: NotRequired["CodeActionKind"]
2537 |     """ The kind of the code action.
2538 | 
2539 |     Used to filter code actions. """
2540 |     diagnostics: NotRequired[list["Diagnostic"]]
2541 |     """ The diagnostics that this code action resolves. """
2542 |     isPreferred: NotRequired[bool]
2543 |     """ Marks this as a preferred action. Preferred actions are used by the `auto fix` command and can be targeted
2544 |     by keybindings.
2545 | 
2546 |     A quick fix should be marked preferred if it properly addresses the underlying error.
2547 |     A refactoring should be marked preferred if it is the most reasonable choice of actions to take.
2548 | 
2549 |     @since 3.15.0 """
2550 |     disabled: NotRequired["__CodeAction_disabled_Type_1"]
2551 |     """ Marks that the code action cannot currently be applied.
2552 | 
2553 |     Clients should follow the following guidelines regarding disabled code actions:
2554 | 
2555 |       - Disabled code actions are not shown in automatic [lightbulbs](https://code.visualstudio.com/docs/editor/editingevolved#_code-action)
2556 |         code action menus.
2557 | 
2558 |       - Disabled actions are shown as faded out in the code action menu when the user requests a more specific type
2559 |         of code action, such as refactorings.
2560 | 
2561 |       - If the user has a [keybinding](https://code.visualstudio.com/docs/editor/refactoring#_keybindings-for-code-actions)
2562 |         that auto applies a code action and only disabled code actions are returned, the client should show the user an
2563 |         error message with `reason` in the editor.
2564 | 
2565 |     @since 3.16.0 """
2566 |     edit: NotRequired["WorkspaceEdit"]
2567 |     """ The workspace edit this code action performs. """
2568 |     command: NotRequired["Command"]
2569 |     """ A command this code action executes. If a code action
2570 |     provides an edit and a command, first the edit is
2571 |     executed and then the command. """
2572 |     data: NotRequired["LSPAny"]
2573 |     """ A data entry field that is preserved on a code action between
2574 |     a `textDocument/codeAction` and a `codeAction/resolve` request.
2575 | 
2576 |     @since 3.16.0 """
2577 | 
2578 | 
2579 | class CodeActionRegistrationOptions(TypedDict):
2580 |     """Registration options for a {@link CodeActionRequest}."""
2581 | 
2582 |     documentSelector: Union["DocumentSelector", None]
2583 |     """ A document selector to identify the scope of the registration. If set to null
2584 |     the document selector provided on the client side will be used. """
2585 |     codeActionKinds: NotRequired[list["CodeActionKind"]]
2586 |     """ CodeActionKinds that this server may return.
2587 | 
2588 |     The list of kinds may be generic, such as `CodeActionKind.Refactor`, or the server
2589 |     may list out every specific kind they provide. """
2590 |     resolveProvider: NotRequired[bool]
2591 |     """ The server provides support to resolve additional
2592 |     information for a code action.
2593 | 
2594 |     @since 3.16.0 """
2595 | 
2596 | 
2597 | class WorkspaceSymbolParams(TypedDict):
2598 |     """The parameters of a {@link WorkspaceSymbolRequest}."""
2599 | 
2600 |     query: str
2601 |     """ A query string to filter symbols by. Clients may send an empty
2602 |     string here to request all symbols. """
2603 |     workDoneToken: NotRequired["ProgressToken"]
2604 |     """ An optional token that a server can use to report work done progress. """
2605 |     partialResultToken: NotRequired["ProgressToken"]
2606 |     """ An optional token that a server can use to report partial results (e.g. streaming) to
2607 |     the client. """
2608 | 
2609 | 
2610 | class WorkspaceSymbol(TypedDict):
2611 |     """A special workspace symbol that supports locations without a range.
2612 | 
2613 |     See also SymbolInformation.
2614 | 
2615 |     @since 3.17.0
2616 |     """
2617 | 
2618 |     location: Union["Location", "__WorkspaceSymbol_location_Type_1"]
2619 |     """ The location of the symbol. Whether a server is allowed to
2620 |     return a location without a range depends on the client
2621 |     capability `workspace.symbol.resolveSupport`.
2622 | 
2623 |     See SymbolInformation#location for more details. """
2624 |     data: NotRequired["LSPAny"]
2625 |     """ A data entry field that is preserved on a workspace symbol between a
2626 |     workspace symbol request and a workspace symbol resolve request. """
2627 |     name: str
2628 |     """ The name of this symbol. """
2629 |     kind: "SymbolKind"
2630 |     """ The kind of this symbol. """
2631 |     tags: NotRequired[list["SymbolTag"]]
2632 |     """ Tags for this symbol.
2633 | 
2634 |     @since 3.16.0 """
2635 |     containerName: NotRequired[str]
2636 |     """ The name of the symbol containing this symbol. This information is for
2637 |     user interface purposes (e.g. to render a qualifier in the user interface
2638 |     if necessary). It can't be used to re-infer a hierarchy for the document
2639 |     symbols. """
2640 | 
2641 | 
2642 | class WorkspaceSymbolRegistrationOptions(TypedDict):
2643 |     """Registration options for a {@link WorkspaceSymbolRequest}."""
2644 | 
2645 |     resolveProvider: NotRequired[bool]
2646 |     """ The server provides support to resolve additional
2647 |     information for a workspace symbol.
2648 | 
2649 |     @since 3.17.0 """
2650 | 
2651 | 
2652 | class CodeLensParams(TypedDict):
2653 |     """The parameters of a {@link CodeLensRequest}."""
2654 | 
2655 |     textDocument: "TextDocumentIdentifier"
2656 |     """ The document to request code lens for. """
2657 |     workDoneToken: NotRequired["ProgressToken"]
2658 |     """ An optional token that a server can use to report work done progress. """
2659 |     partialResultToken: NotRequired["ProgressToken"]
2660 |     """ An optional token that a server can use to report partial results (e.g. streaming) to
2661 |     the client. """
2662 | 
2663 | 
2664 | class CodeLens(TypedDict):
2665 |     """A code lens represents a {@link Command command} that should be shown along with
2666 |     source text, like the number of references, a way to run tests, etc.
2667 | 
2668 |     A code lens is _unresolved_ when no command is associated to it. For performance
2669 |     reasons the creation of a code lens and resolving should be done in two stages.
2670 |     """
2671 | 
2672 |     range: "Range"
2673 |     """ The range in which this code lens is valid. Should only span a single line. """
2674 |     command: NotRequired["Command"]
2675 |     """ The command this code lens represents. """
2676 |     data: NotRequired["LSPAny"]
2677 |     """ A data entry field that is preserved on a code lens item between
2678 |     a {@link CodeLensRequest} and a [CodeLensResolveRequest]
2679 |     (#CodeLensResolveRequest) """
2680 | 
2681 | 
2682 | class CodeLensRegistrationOptions(TypedDict):
2683 |     """Registration options for a {@link CodeLensRequest}."""
2684 | 
2685 |     documentSelector: Union["DocumentSelector", None]
2686 |     """ A document selector to identify the scope of the registration. If set to null
2687 |     the document selector provided on the client side will be used. """
2688 |     resolveProvider: NotRequired[bool]
2689 |     """ Code lens has a resolve provider as well. """
2690 | 
2691 | 
2692 | class DocumentLinkParams(TypedDict):
2693 |     """The parameters of a {@link DocumentLinkRequest}."""
2694 | 
2695 |     textDocument: "TextDocumentIdentifier"
2696 |     """ The document to provide document links for. """
2697 |     workDoneToken: NotRequired["ProgressToken"]
2698 |     """ An optional token that a server can use to report work done progress. """
2699 |     partialResultToken: NotRequired["ProgressToken"]
2700 |     """ An optional token that a server can use to report partial results (e.g. streaming) to
2701 |     the client. """
2702 | 
2703 | 
2704 | class DocumentLink(TypedDict):
2705 |     """A document link is a range in a text document that links to an internal or external resource, like another
2706 |     text document or a web site.
2707 |     """
2708 | 
2709 |     range: "Range"
2710 |     """ The range this link applies to. """
2711 |     target: NotRequired[str]
2712 |     """ The uri this link points to. If missing a resolve request is sent later. """
2713 |     tooltip: NotRequired[str]
2714 |     """ The tooltip text when you hover over this link.
2715 | 
2716 |     If a tooltip is provided, is will be displayed in a string that includes instructions on how to
2717 |     trigger the link, such as `{0} (ctrl + click)`. The specific instructions vary depending on OS,
2718 |     user settings, and localization.
2719 | 
2720 |     @since 3.15.0 """
2721 |     data: NotRequired["LSPAny"]
2722 |     """ A data entry field that is preserved on a document link between a
2723 |     DocumentLinkRequest and a DocumentLinkResolveRequest. """
2724 | 
2725 | 
2726 | class DocumentLinkRegistrationOptions(TypedDict):
2727 |     """Registration options for a {@link DocumentLinkRequest}."""
2728 | 
2729 |     documentSelector: Union["DocumentSelector", None]
2730 |     """ A document selector to identify the scope of the registration. If set to null
2731 |     the document selector provided on the client side will be used. """
2732 |     resolveProvider: NotRequired[bool]
2733 |     """ Document links have a resolve provider as well. """
2734 | 
2735 | 
2736 | class DocumentFormattingParams(TypedDict):
2737 |     """The parameters of a {@link DocumentFormattingRequest}."""
2738 | 
2739 |     textDocument: "TextDocumentIdentifier"
2740 |     """ The document to format. """
2741 |     options: "FormattingOptions"
2742 |     """ The format options. """
2743 |     workDoneToken: NotRequired["ProgressToken"]
2744 |     """ An optional token that a server can use to report work done progress. """
2745 | 
2746 | 
2747 | class DocumentFormattingRegistrationOptions(TypedDict):
2748 |     """Registration options for a {@link DocumentFormattingRequest}."""
2749 | 
2750 |     documentSelector: Union["DocumentSelector", None]
2751 |     """ A document selector to identify the scope of the registration. If set to null
2752 |     the document selector provided on the client side will be used. """
2753 | 
2754 | 
2755 | class DocumentRangeFormattingParams(TypedDict):
2756 |     """The parameters of a {@link DocumentRangeFormattingRequest}."""
2757 | 
2758 |     textDocument: "TextDocumentIdentifier"
2759 |     """ The document to format. """
2760 |     range: "Range"
2761 |     """ The range to format """
2762 |     options: "FormattingOptions"
2763 |     """ The format options """
2764 |     workDoneToken: NotRequired["ProgressToken"]
2765 |     """ An optional token that a server can use to report work done progress. """
2766 | 
2767 | 
2768 | class DocumentRangeFormattingRegistrationOptions(TypedDict):
2769 |     """Registration options for a {@link DocumentRangeFormattingRequest}."""
2770 | 
2771 |     documentSelector: Union["DocumentSelector", None]
2772 |     """ A document selector to identify the scope of the registration. If set to null
2773 |     the document selector provided on the client side will be used. """
2774 | 
2775 | 
2776 | class DocumentOnTypeFormattingParams(TypedDict):
2777 |     """The parameters of a {@link DocumentOnTypeFormattingRequest}."""
2778 | 
2779 |     textDocument: "TextDocumentIdentifier"
2780 |     """ The document to format. """
2781 |     position: "Position"
2782 |     """ The position around which the on type formatting should happen.
2783 |     This is not necessarily the exact position where the character denoted
2784 |     by the property `ch` got typed. """
2785 |     ch: str
2786 |     """ The character that has been typed that triggered the formatting
2787 |     on type request. That is not necessarily the last character that
2788 |     got inserted into the document since the client could auto insert
2789 |     characters as well (e.g. like automatic brace completion). """
2790 |     options: "FormattingOptions"
2791 |     """ The formatting options. """
2792 | 
2793 | 
2794 | class DocumentOnTypeFormattingRegistrationOptions(TypedDict):
2795 |     """Registration options for a {@link DocumentOnTypeFormattingRequest}."""
2796 | 
2797 |     documentSelector: Union["DocumentSelector", None]
2798 |     """ A document selector to identify the scope of the registration. If set to null
2799 |     the document selector provided on the client side will be used. """
2800 |     firstTriggerCharacter: str
2801 |     """ A character on which formatting should be triggered, like `{`. """
2802 |     moreTriggerCharacter: NotRequired[list[str]]
2803 |     """ More trigger characters. """
2804 | 
2805 | 
2806 | class RenameParams(TypedDict):
2807 |     """The parameters of a {@link RenameRequest}."""
2808 | 
2809 |     textDocument: "TextDocumentIdentifier"
2810 |     """ The document to rename. """
2811 |     position: "Position"
2812 |     """ The position at which this request was sent. """
2813 |     newName: str
2814 |     """ The new name of the symbol. If the given name is not valid the
2815 |     request must return a {@link ResponseError} with an
2816 |     appropriate message set. """
2817 |     workDoneToken: NotRequired["ProgressToken"]
2818 |     """ An optional token that a server can use to report work done progress. """
2819 | 
2820 | 
2821 | class RenameRegistrationOptions(TypedDict):
2822 |     """Registration options for a {@link RenameRequest}."""
2823 | 
2824 |     documentSelector: Union["DocumentSelector", None]
2825 |     """ A document selector to identify the scope of the registration. If set to null
2826 |     the document selector provided on the client side will be used. """
2827 |     prepareProvider: NotRequired[bool]
2828 |     """ Renames should be checked and tested before being executed.
2829 | 
2830 |     @since version 3.12.0 """
2831 | 
2832 | 
2833 | class PrepareRenameParams(TypedDict):
2834 |     textDocument: "TextDocumentIdentifier"
2835 |     """ The text document. """
2836 |     position: "Position"
2837 |     """ The position inside the text document. """
2838 |     workDoneToken: NotRequired["ProgressToken"]
2839 |     """ An optional token that a server can use to report work done progress. """
2840 | 
2841 | 
2842 | class ExecuteCommandParams(TypedDict):
2843 |     """The parameters of a {@link ExecuteCommandRequest}."""
2844 | 
2845 |     command: str
2846 |     """ The identifier of the actual command handler. """
2847 |     arguments: NotRequired[list["LSPAny"]]
2848 |     """ Arguments that the command should be invoked with. """
2849 |     workDoneToken: NotRequired["ProgressToken"]
2850 |     """ An optional token that a server can use to report work done progress. """
2851 | 
2852 | 
2853 | class ExecuteCommandRegistrationOptions(TypedDict):
2854 |     """Registration options for a {@link ExecuteCommandRequest}."""
2855 | 
2856 |     commands: list[str]
2857 |     """ The commands to be executed on the server """
2858 | 
2859 | 
2860 | class ApplyWorkspaceEditParams(TypedDict):
2861 |     """The parameters passed via a apply workspace edit request."""
2862 | 
2863 |     label: NotRequired[str]
2864 |     """ An optional label of the workspace edit. This label is
2865 |     presented in the user interface for example on an undo
2866 |     stack to undo the workspace edit. """
2867 |     edit: "WorkspaceEdit"
2868 |     """ The edits to apply. """
2869 | 
2870 | 
2871 | class ApplyWorkspaceEditResult(TypedDict):
2872 |     """The result returned from the apply workspace edit request.
2873 | 
2874 |     @since 3.17 renamed from ApplyWorkspaceEditResponse
2875 |     """
2876 | 
2877 |     applied: bool
2878 |     """ Indicates whether the edit was applied or not. """
2879 |     failureReason: NotRequired[str]
2880 |     """ An optional textual description for why the edit was not applied.
2881 |     This may be used by the server for diagnostic logging or to provide
2882 |     a suitable error for a request that triggered the edit. """
2883 |     failedChange: NotRequired[Uint]
2884 |     """ Depending on the client's failure handling strategy `failedChange` might
2885 |     contain the index of the change that failed. This property is only available
2886 |     if the client signals a `failureHandlingStrategy` in its client capabilities. """
2887 | 
2888 | 
2889 | class WorkDoneProgressBegin(TypedDict):
2890 |     kind: Literal["begin"]
2891 |     title: str
2892 |     """ Mandatory title of the progress operation. Used to briefly inform about
2893 |     the kind of operation being performed.
2894 | 
2895 |     Examples: "Indexing" or "Linking dependencies". """
2896 |     cancellable: NotRequired[bool]
2897 |     """ Controls if a cancel button should show to allow the user to cancel the
2898 |     long running operation. Clients that don't support cancellation are allowed
2899 |     to ignore the setting. """
2900 |     message: NotRequired[str]
2901 |     """ Optional, more detailed associated progress message. Contains
2902 |     complementary information to the `title`.
2903 | 
2904 |     Examples: "3/25 files", "project/src/module2", "node_modules/some_dep".
2905 |     If unset, the previous progress message (if any) is still valid. """
2906 |     percentage: NotRequired[Uint]
2907 |     """ Optional progress percentage to display (value 100 is considered 100%).
2908 |     If not provided infinite progress is assumed and clients are allowed
2909 |     to ignore the `percentage` value in subsequent in report notifications.
2910 | 
2911 |     The value should be steadily rising. Clients are free to ignore values
2912 |     that are not following this rule. The value range is [0, 100]. """
2913 | 
2914 | 
2915 | class WorkDoneProgressReport(TypedDict):
2916 |     kind: Literal["report"]
2917 |     cancellable: NotRequired[bool]
2918 |     """ Controls enablement state of a cancel button.
2919 | 
2920 |     Clients that don't support cancellation or don't support controlling the button's
2921 |     enablement state are allowed to ignore the property. """
2922 |     message: NotRequired[str]
2923 |     """ Optional, more detailed associated progress message. Contains
2924 |     complementary information to the `title`.
2925 | 
2926 |     Examples: "3/25 files", "project/src/module2", "node_modules/some_dep".
2927 |     If unset, the previous progress message (if any) is still valid. """
2928 |     percentage: NotRequired[Uint]
2929 |     """ Optional progress percentage to display (value 100 is considered 100%).
2930 |     If not provided infinite progress is assumed and clients are allowed
2931 |     to ignore the `percentage` value in subsequent in report notifications.
2932 | 
2933 |     The value should be steadily rising. Clients are free to ignore values
2934 |     that are not following this rule. The value range is [0, 100] """
2935 | 
2936 | 
2937 | class WorkDoneProgressEnd(TypedDict):
2938 |     kind: Literal["end"]
2939 |     message: NotRequired[str]
2940 |     """ Optional, a final message indicating to for example indicate the outcome
2941 |     of the operation. """
2942 | 
2943 | 
2944 | class SetTraceParams(TypedDict):
2945 |     value: "TraceValues"
2946 | 
2947 | 
2948 | class LogTraceParams(TypedDict):
2949 |     message: str
2950 |     verbose: NotRequired[str]
2951 | 
2952 | 
2953 | class CancelParams(TypedDict):
2954 |     id: int | str
2955 |     """ The request id to cancel. """
2956 | 
2957 | 
2958 | class ProgressParams(TypedDict):
2959 |     token: "ProgressToken"
2960 |     """ The progress token provided by the client or server. """
2961 |     value: "LSPAny"
2962 |     """ The progress data. """
2963 | 
2964 | 
2965 | class TextDocumentPositionParams(TypedDict):
2966 |     """A parameter literal used in requests to pass a text document and a position inside that
2967 |     document.
2968 |     """
2969 | 
2970 |     textDocument: "TextDocumentIdentifier"
2971 |     """ The text document. """
2972 |     position: "Position"
2973 |     """ The position inside the text document. """
2974 | 
2975 | 
2976 | class WorkDoneProgressParams(TypedDict):
2977 |     workDoneToken: NotRequired["ProgressToken"]
2978 |     """ An optional token that a server can use to report work done progress. """
2979 | 
2980 | 
2981 | class PartialResultParams(TypedDict):
2982 |     partialResultToken: NotRequired["ProgressToken"]
2983 |     """ An optional token that a server can use to report partial results (e.g. streaming) to
2984 |     the client. """
2985 | 
2986 | 
2987 | class LocationLink(TypedDict):
2988 |     """Represents the connection of two locations. Provides additional metadata over normal {@link Location locations},
2989 |     including an origin range.
2990 |     """
2991 | 
2992 |     originSelectionRange: NotRequired["Range"]
2993 |     """ Span of the origin of this link.
2994 | 
2995 |     Used as the underlined span for mouse interaction. Defaults to the word range at
2996 |     the definition position. """
2997 |     targetUri: "DocumentUri"
2998 |     """ The target resource identifier of this link. """
2999 |     targetRange: "Range"
3000 |     """ The full target range of this link. If the target for example is a symbol then target range is the
3001 |     range enclosing this symbol not including leading/trailing whitespace but everything else
3002 |     like comments. This information is typically used to highlight the range in the editor. """
3003 |     targetSelectionRange: "Range"
3004 |     """ The range that should be selected and revealed when this link is being followed, e.g the name of a function.
3005 |     Must be contained by the `targetRange`. See also `DocumentSymbol#range` """
3006 | 
3007 | 
3008 | class Range(TypedDict):
3009 |     """A range in a text document expressed as (zero-based) start and end positions.
3010 | 
3011 |     If you want to specify a range that contains a line including the line ending
3012 |     character(s) then use an end position denoting the start of the next line.
3013 |     For example:
3014 |     ```ts
3015 |     {
3016 |         start: { line: 5, character: 23 }
3017 |         end : { line 6, character : 0 }
3018 |     }
3019 |     ```
3020 |     """
3021 | 
3022 |     start: "Position"
3023 |     """ The range's start position. """
3024 |     end: "Position"
3025 |     """ The range's end position. """
3026 | 
3027 | 
3028 | class ImplementationOptions(TypedDict):
3029 |     workDoneProgress: NotRequired[bool]
3030 | 
3031 | 
3032 | class StaticRegistrationOptions(TypedDict):
3033 |     """Static registration options to be returned in the initialize
3034 |     request.
3035 |     """
3036 | 
3037 |     id: NotRequired[str]
3038 |     """ The id used to register the request. The id can be used to deregister
3039 |     the request again. See also Registration#id. """
3040 | 
3041 | 
3042 | class TypeDefinitionOptions(TypedDict):
3043 |     workDoneProgress: NotRequired[bool]
3044 | 
3045 | 
3046 | class WorkspaceFoldersChangeEvent(TypedDict):
3047 |     """The workspace folder change event."""
3048 | 
3049 |     added: list["WorkspaceFolder"]
3050 |     """ The array of added workspace folders """
3051 |     removed: list["WorkspaceFolder"]
3052 |     """ The array of the removed workspace folders """
3053 | 
3054 | 
3055 | class ConfigurationItem(TypedDict):
3056 |     scopeUri: NotRequired[str]
3057 |     """ The scope to get the configuration section for. """
3058 |     section: NotRequired[str]
3059 |     """ The configuration section asked for. """
3060 | 
3061 | 
3062 | class TextDocumentIdentifier(TypedDict):
3063 |     """A literal to identify a text document in the client."""
3064 | 
3065 |     uri: "DocumentUri"
3066 |     """ The text document's uri. """
3067 | 
3068 | 
3069 | class Color(TypedDict):
3070 |     """Represents a color in RGBA space."""
3071 | 
3072 |     red: float
3073 |     """ The red component of this color in the range [0-1]. """
3074 |     green: float
3075 |     """ The green component of this color in the range [0-1]. """
3076 |     blue: float
3077 |     """ The blue component of this color in the range [0-1]. """
3078 |     alpha: float
3079 |     """ The alpha component of this color in the range [0-1]. """
3080 | 
3081 | 
3082 | class DocumentColorOptions(TypedDict):
3083 |     workDoneProgress: NotRequired[bool]
3084 | 
3085 | 
3086 | class FoldingRangeOptions(TypedDict):
3087 |     workDoneProgress: NotRequired[bool]
3088 | 
3089 | 
3090 | class DeclarationOptions(TypedDict):
3091 |     workDoneProgress: NotRequired[bool]
3092 | 
3093 | 
3094 | class Position(TypedDict):
3095 |     r"""Position in a text document expressed as zero-based line and character
3096 |     offset. Prior to 3.17 the offsets were always based on a UTF-16 string
3097 |     representation. So a string of the form `a𐐀b` the character offset of the
3098 |     character `a` is 0, the character offset of `𐐀` is 1 and the character
3099 |     offset of b is 3 since `𐐀` is represented using two code units in UTF-16.
3100 |     Since 3.17 clients and servers can agree on a different string encoding
3101 |     representation (e.g. UTF-8). The client announces it's supported encoding
3102 |     via the client capability [`general.positionEncodings`](#clientCapabilities).
3103 |     The value is an array of position encodings the client supports, with
3104 |     decreasing preference (e.g. the encoding at index `0` is the most preferred
3105 |     one). To stay backwards compatible the only mandatory encoding is UTF-16
3106 |     represented via the string `utf-16`. The server can pick one of the
3107 |     encodings offered by the client and signals that encoding back to the
3108 |     client via the initialize result's property
3109 |     [`capabilities.positionEncoding`](#serverCapabilities). If the string value
3110 |     `utf-16` is missing from the client's capability `general.positionEncodings`
3111 |     servers can safely assume that the client supports UTF-16. If the server
3112 |     omits the position encoding in its initialize result the encoding defaults
3113 |     to the string value `utf-16`. Implementation considerations: since the
3114 |     conversion from one encoding into another requires the content of the
3115 |     file / line the conversion is best done where the file is read which is
3116 |     usually on the server side.
3117 | 
3118 |     Positions are line end character agnostic. So you can not specify a position
3119 |     that denotes `\r|\n` or `\n|` where `|` represents the character offset.
3120 | 
3121 |     @since 3.17.0 - support for negotiated position encoding.
3122 |     """
3123 | 
3124 |     line: Uint
3125 |     """ Line position in a document (zero-based).
3126 | 
3127 |     If a line number is greater than the number of lines in a document, it defaults back to the number of lines in the document.
3128 |     If a line number is negative, it defaults to 0. """
3129 |     character: Uint
3130 |     """ Character offset on a line in a document (zero-based).
3131 | 
3132 |     The meaning of this offset is determined by the negotiated
3133 |     `PositionEncodingKind`.
3134 | 
3135 |     If the character value is greater than the line length it defaults back to the
3136 |     line length. """
3137 | 
3138 | 
3139 | class SelectionRangeOptions(TypedDict):
3140 |     workDoneProgress: NotRequired[bool]
3141 | 
3142 | 
3143 | class CallHierarchyOptions(TypedDict):
3144 |     """Call hierarchy options used during static registration.
3145 | 
3146 |     @since 3.16.0
3147 |     """
3148 | 
3149 |     workDoneProgress: NotRequired[bool]
3150 | 
3151 | 
3152 | class SemanticTokensOptions(TypedDict):
3153 |     """@since 3.16.0"""
3154 | 
3155 |     legend: "SemanticTokensLegend"
3156 |     """ The legend used by the server """
3157 |     range: NotRequired[bool | dict]
3158 |     """ Server supports providing semantic tokens for a specific range
3159 |     of a document. """
3160 |     full: NotRequired[Union[bool, "__SemanticTokensOptions_full_Type_2"]]
3161 |     """ Server supports providing semantic tokens for a full document. """
3162 |     workDoneProgress: NotRequired[bool]
3163 | 
3164 | 
3165 | class SemanticTokensEdit(TypedDict):
3166 |     """@since 3.16.0"""
3167 | 
3168 |     start: Uint
3169 |     """ The start offset of the edit. """
3170 |     deleteCount: Uint
3171 |     """ The count of elements to remove. """
3172 |     data: NotRequired[list[Uint]]
3173 |     """ The elements to insert. """
3174 | 
3175 | 
3176 | class LinkedEditingRangeOptions(TypedDict):
3177 |     workDoneProgress: NotRequired[bool]
3178 | 
3179 | 
3180 | class FileCreate(TypedDict):
3181 |     """Represents information on a file/folder create.
3182 | 
3183 |     @since 3.16.0
3184 |     """
3185 | 
3186 |     uri: str
3187 |     """ A file:// URI for the location of the file/folder being created. """
3188 | 
3189 | 
3190 | class TextDocumentEdit(TypedDict):
3191 |     """Describes textual changes on a text document. A TextDocumentEdit describes all changes
3192 |     on a document version Si and after they are applied move the document to version Si+1.
3193 |     So the creator of a TextDocumentEdit doesn't need to sort the array of edits or do any
3194 |     kind of ordering. However the edits must be non overlapping.
3195 |     """
3196 | 
3197 |     textDocument: "OptionalVersionedTextDocumentIdentifier"
3198 |     """ The text document to change. """
3199 |     edits: list[Union["TextEdit", "AnnotatedTextEdit"]]
3200 |     """ The edits to be applied.
3201 | 
3202 |     @since 3.16.0 - support for AnnotatedTextEdit. This is guarded using a
3203 |     client capability. """
3204 | 
3205 | 
3206 | class CreateFile(TypedDict):
3207 |     """Create file operation."""
3208 | 
3209 |     kind: Literal["create"]
3210 |     """ A create """
3211 |     uri: "DocumentUri"
3212 |     """ The resource to create. """
3213 |     options: NotRequired["CreateFileOptions"]
3214 |     """ Additional options """
3215 |     annotationId: NotRequired["ChangeAnnotationIdentifier"]
3216 |     """ An optional annotation identifier describing the operation.
3217 | 
3218 |     @since 3.16.0 """
3219 | 
3220 | 
3221 | class RenameFile(TypedDict):
3222 |     """Rename file operation"""
3223 | 
3224 |     kind: Literal["rename"]
3225 |     """ A rename """
3226 |     oldUri: "DocumentUri"
3227 |     """ The old (existing) location. """
3228 |     newUri: "DocumentUri"
3229 |     """ The new location. """
3230 |     options: NotRequired["RenameFileOptions"]
3231 |     """ Rename options. """
3232 |     annotationId: NotRequired["ChangeAnnotationIdentifier"]
3233 |     """ An optional annotation identifier describing the operation.
3234 | 
3235 |     @since 3.16.0 """
3236 | 
3237 | 
3238 | class DeleteFile(TypedDict):
3239 |     """Delete file operation"""
3240 | 
3241 |     kind: Literal["delete"]
3242 |     """ A delete """
3243 |     uri: "DocumentUri"
3244 |     """ The file to delete. """
3245 |     options: NotRequired["DeleteFileOptions"]
3246 |     """ Delete options. """
3247 |     annotationId: NotRequired["ChangeAnnotationIdentifier"]
3248 |     """ An optional annotation identifier describing the operation.
3249 | 
3250 |     @since 3.16.0 """
3251 | 
3252 | 
3253 | class ChangeAnnotation(TypedDict):
3254 |     """Additional information that describes document changes.
3255 | 
3256 |     @since 3.16.0
3257 |     """
3258 | 
3259 |     label: str
3260 |     """ A human-readable string describing the actual change. The string
3261 |     is rendered prominent in the user interface. """
3262 |     needsConfirmation: NotRequired[bool]
3263 |     """ A flag which indicates that user confirmation is needed
3264 |     before applying the change. """
3265 |     description: NotRequired[str]
3266 |     """ A human-readable string which is rendered less prominent in
3267 |     the user interface. """
3268 | 
3269 | 
3270 | class FileOperationFilter(TypedDict):
3271 |     """A filter to describe in which file operation requests or notifications
3272 |     the server is interested in receiving.
3273 | 
3274 |     @since 3.16.0
3275 |     """
3276 | 
3277 |     scheme: NotRequired[str]
3278 |     """ A Uri scheme like `file` or `untitled`. """
3279 |     pattern: "FileOperationPattern"
3280 |     """ The actual file operation pattern. """
3281 | 
3282 | 
3283 | class FileRename(TypedDict):
3284 |     """Represents information on a file/folder rename.
3285 | 
3286 |     @since 3.16.0
3287 |     """
3288 | 
3289 |     oldUri: str
3290 |     """ A file:// URI for the original location of the file/folder being renamed. """
3291 |     newUri: str
3292 |     """ A file:// URI for the new location of the file/folder being renamed. """
3293 | 
3294 | 
3295 | class FileDelete(TypedDict):
3296 |     """Represents information on a file/folder delete.
3297 | 
3298 |     @since 3.16.0
3299 |     """
3300 | 
3301 |     uri: str
3302 |     """ A file:// URI for the location of the file/folder being deleted. """
3303 | 
3304 | 
3305 | class MonikerOptions(TypedDict):
3306 |     workDoneProgress: NotRequired[bool]
3307 | 
3308 | 
3309 | class TypeHierarchyOptions(TypedDict):
3310 |     """Type hierarchy options used during static registration.
3311 | 
3312 |     @since 3.17.0
3313 |     """
3314 | 
3315 |     workDoneProgress: NotRequired[bool]
3316 | 
3317 | 
3318 | class InlineValueContext(TypedDict):
3319 |     """@since 3.17.0"""
3320 | 
3321 |     frameId: int
3322 |     """ The stack frame (as a DAP Id) where the execution has stopped. """
3323 |     stoppedLocation: "Range"
3324 |     """ The document range where execution has stopped.
3325 |     Typically the end position of the range denotes the line where the inline values are shown. """
3326 | 
3327 | 
3328 | class InlineValueText(TypedDict):
3329 |     """Provide inline value as text.
3330 | 
3331 |     @since 3.17.0
3332 |     """
3333 | 
3334 |     range: "Range"
3335 |     """ The document range for which the inline value applies. """
3336 |     text: str
3337 |     """ The text of the inline value. """
3338 | 
3339 | 
3340 | class InlineValueVariableLookup(TypedDict):
3341 |     """Provide inline value through a variable lookup.
3342 |     If only a range is specified, the variable name will be extracted from the underlying document.
3343 |     An optional variable name can be used to override the extracted name.
3344 | 
3345 |     @since 3.17.0
3346 |     """
3347 | 
3348 |     range: "Range"
3349 |     """ The document range for which the inline value applies.
3350 |     The range is used to extract the variable name from the underlying document. """
3351 |     variableName: NotRequired[str]
3352 |     """ If specified the name of the variable to look up. """
3353 |     caseSensitiveLookup: bool
3354 |     """ How to perform the lookup. """
3355 | 
3356 | 
3357 | class InlineValueEvaluatableExpression(TypedDict):
3358 |     """Provide an inline value through an expression evaluation.
3359 |     If only a range is specified, the expression will be extracted from the underlying document.
3360 |     An optional expression can be used to override the extracted expression.
3361 | 
3362 |     @since 3.17.0
3363 |     """
3364 | 
3365 |     range: "Range"
3366 |     """ The document range for which the inline value applies.
3367 |     The range is used to extract the evaluatable expression from the underlying document. """
3368 |     expression: NotRequired[str]
3369 |     """ If specified the expression overrides the extracted expression. """
3370 | 
3371 | 
3372 | class InlineValueOptions(TypedDict):
3373 |     """Inline value options used during static registration.
3374 | 
3375 |     @since 3.17.0
3376 |     """
3377 | 
3378 |     workDoneProgress: NotRequired[bool]
3379 | 
3380 | 
3381 | class InlayHintLabelPart(TypedDict):
3382 |     """An inlay hint label part allows for interactive and composite labels
3383 |     of inlay hints.
3384 | 
3385 |     @since 3.17.0
3386 |     """
3387 | 
3388 |     value: str
3389 |     """ The value of this label part. """
3390 |     tooltip: NotRequired[Union[str, "MarkupContent"]]
3391 |     """ The tooltip text when you hover over this label part. Depending on
3392 |     the client capability `inlayHint.resolveSupport` clients might resolve
3393 |     this property late using the resolve request. """
3394 |     location: NotRequired["Location"]
3395 |     """ An optional source code location that represents this
3396 |     label part.
3397 | 
3398 |     The editor will use this location for the hover and for code navigation
3399 |     features: This part will become a clickable link that resolves to the
3400 |     definition of the symbol at the given location (not necessarily the
3401 |     location itself), it shows the hover that shows at the given location,
3402 |     and it shows a context menu with further code navigation commands.
3403 | 
3404 |     Depending on the client capability `inlayHint.resolveSupport` clients
3405 |     might resolve this property late using the resolve request. """
3406 |     command: NotRequired["Command"]
3407 |     """ An optional command for this label part.
3408 | 
3409 |     Depending on the client capability `inlayHint.resolveSupport` clients
3410 |     might resolve this property late using the resolve request. """
3411 | 
3412 | 
3413 | class MarkupContent(TypedDict):
3414 |     r"""A `MarkupContent` literal represents a string value which content is interpreted base on its
3415 |     kind flag. Currently the protocol supports `plaintext` and `markdown` as markup kinds.
3416 | 
3417 |     If the kind is `markdown` then the value can contain fenced code blocks like in GitHub issues.
3418 |     See https://help.github.com/articles/creating-and-highlighting-code-blocks/#syntax-highlighting
3419 | 
3420 |     Here is an example how such a string can be constructed using JavaScript / TypeScript:
3421 |     ```ts
3422 |     let markdown: MarkdownContent = {
3423 |      kind: MarkupKind.Markdown,
3424 |      value: [
3425 |        '# Header',
3426 |        'Some text',
3427 |        '```typescript',
3428 |        'someCode();',
3429 |        '```'
3430 |      ].join('\n')
3431 |     };
3432 |     ```
3433 | 
3434 |     *Please Note* that clients might sanitize the return markdown. A client could decide to
3435 |     remove HTML from the markdown to avoid script execution.
3436 |     """
3437 | 
3438 |     kind: "MarkupKind"
3439 |     """ The type of the Markup """
3440 |     value: str
3441 |     """ The content itself """
3442 | 
3443 | 
3444 | class InlayHintOptions(TypedDict):
3445 |     """Inlay hint options used during static registration.
3446 | 
3447 |     @since 3.17.0
3448 |     """
3449 | 
3450 |     resolveProvider: NotRequired[bool]
3451 |     """ The server provides support to resolve additional
3452 |     information for an inlay hint item. """
3453 |     workDoneProgress: NotRequired[bool]
3454 | 
3455 | 
3456 | class RelatedFullDocumentDiagnosticReport(TypedDict):
3457 |     """A full diagnostic report with a set of related documents.
3458 | 
3459 |     @since 3.17.0
3460 |     """
3461 | 
3462 |     relatedDocuments: NotRequired[
3463 |         dict[
3464 |             "DocumentUri",
3465 |             Union["FullDocumentDiagnosticReport", "UnchangedDocumentDiagnosticReport"],
3466 |         ]
3467 |     ]
3468 |     """ Diagnostics of related documents. This information is useful
3469 |     in programming languages where code in a file A can generate
3470 |     diagnostics in a file B which A depends on. An example of
3471 |     such a language is C/C++ where marco definitions in a file
3472 |     a.cpp and result in errors in a header file b.hpp.
3473 | 
3474 |     @since 3.17.0 """
3475 |     kind: Literal["full"]
3476 |     """ A full document diagnostic report. """
3477 |     resultId: NotRequired[str]
3478 |     """ An optional result id. If provided it will
3479 |     be sent on the next diagnostic request for the
3480 |     same document. """
3481 |     items: list["Diagnostic"]
3482 |     """ The actual items. """
3483 | 
3484 | 
3485 | class RelatedUnchangedDocumentDiagnosticReport(TypedDict):
3486 |     """An unchanged diagnostic report with a set of related documents.
3487 | 
3488 |     @since 3.17.0
3489 |     """
3490 | 
3491 |     relatedDocuments: NotRequired[
3492 |         dict[
3493 |             "DocumentUri",
3494 |             Union["FullDocumentDiagnosticReport", "UnchangedDocumentDiagnosticReport"],
3495 |         ]
3496 |     ]
3497 |     """ Diagnostics of related documents. This information is useful
3498 |     in programming languages where code in a file A can generate
3499 |     diagnostics in a file B which A depends on. An example of
3500 |     such a language is C/C++ where marco definitions in a file
3501 |     a.cpp and result in errors in a header file b.hpp.
3502 | 
3503 |     @since 3.17.0 """
3504 |     kind: Literal["unchanged"]
3505 |     """ A document diagnostic report indicating
3506 |     no changes to the last result. A server can
3507 |     only return `unchanged` if result ids are
3508 |     provided. """
3509 |     resultId: str
3510 |     """ A result id which will be sent on the next
3511 |     diagnostic request for the same document. """
3512 | 
3513 | 
3514 | class FullDocumentDiagnosticReport(TypedDict):
3515 |     """A diagnostic report with a full set of problems.
3516 | 
3517 |     @since 3.17.0
3518 |     """
3519 | 
3520 |     kind: Literal["full"]
3521 |     """ A full document diagnostic report. """
3522 |     resultId: NotRequired[str]
3523 |     """ An optional result id. If provided it will
3524 |     be sent on the next diagnostic request for the
3525 |     same document. """
3526 |     items: list["Diagnostic"]
3527 |     """ The actual items. """
3528 | 
3529 | 
3530 | class UnchangedDocumentDiagnosticReport(TypedDict):
3531 |     """A diagnostic report indicating that the last returned
3532 |     report is still accurate.
3533 | 
3534 |     @since 3.17.0
3535 |     """
3536 | 
3537 |     kind: Literal["unchanged"]
3538 |     """ A document diagnostic report indicating
3539 |     no changes to the last result. A server can
3540 |     only return `unchanged` if result ids are
3541 |     provided. """
3542 |     resultId: str
3543 |     """ A result id which will be sent on the next
3544 |     diagnostic request for the same document. """
3545 | 
3546 | 
3547 | class DiagnosticOptions(TypedDict):
3548 |     """Diagnostic options.
3549 | 
3550 |     @since 3.17.0
3551 |     """
3552 | 
3553 |     identifier: NotRequired[str]
3554 |     """ An optional identifier under which the diagnostics are
3555 |     managed by the client. """
3556 |     interFileDependencies: bool
3557 |     """ Whether the language has inter file dependencies meaning that
3558 |     editing code in one file can result in a different diagnostic
3559 |     set in another file. Inter file dependencies are common for
3560 |     most programming languages and typically uncommon for linters. """
3561 |     workspaceDiagnostics: bool
3562 |     """ The server provides support for workspace diagnostics as well. """
3563 |     workDoneProgress: NotRequired[bool]
3564 | 
3565 | 
3566 | class PreviousResultId(TypedDict):
3567 |     """A previous result id in a workspace pull request.
3568 | 
3569 |     @since 3.17.0
3570 |     """
3571 | 
3572 |     uri: "DocumentUri"
3573 |     """ The URI for which the client knowns a
3574 |     result id. """
3575 |     value: str
3576 |     """ The value of the previous result id. """
3577 | 
3578 | 
3579 | class NotebookDocument(TypedDict):
3580 |     """A notebook document.
3581 | 
3582 |     @since 3.17.0
3583 |     """
3584 | 
3585 |     uri: "URI"
3586 |     """ The notebook document's uri. """
3587 |     notebookType: str
3588 |     """ The type of the notebook. """
3589 |     version: int
3590 |     """ The version number of this document (it will increase after each
3591 |     change, including undo/redo). """
3592 |     metadata: NotRequired["LSPObject"]
3593 |     """ Additional metadata stored with the notebook
3594 |     document.
3595 | 
3596 |     Note: should always be an object literal (e.g. LSPObject) """
3597 |     cells: list["NotebookCell"]
3598 |     """ The cells of a notebook. """
3599 | 
3600 | 
3601 | class TextDocumentItem(TypedDict):
3602 |     """An item to transfer a text document from the client to the
3603 |     server.
3604 |     """
3605 | 
3606 |     uri: "DocumentUri"
3607 |     """ The text document's uri. """
3608 |     languageId: str
3609 |     """ The text document's language identifier. """
3610 |     version: int
3611 |     """ The version number of this document (it will increase after each
3612 |     change, including undo/redo). """
3613 |     text: str
3614 |     """ The content of the opened text document. """
3615 | 
3616 | 
3617 | class VersionedNotebookDocumentIdentifier(TypedDict):
3618 |     """A versioned notebook document identifier.
3619 | 
3620 |     @since 3.17.0
3621 |     """
3622 | 
3623 |     version: int
3624 |     """ The version number of this notebook document. """
3625 |     uri: "URI"
3626 |     """ The notebook document's uri. """
3627 | 
3628 | 
3629 | class NotebookDocumentChangeEvent(TypedDict):
3630 |     """A change event for a notebook document.
3631 | 
3632 |     @since 3.17.0
3633 |     """
3634 | 
3635 |     metadata: NotRequired["LSPObject"]
3636 |     """ The changed meta data if any.
3637 | 
3638 |     Note: should always be an object literal (e.g. LSPObject) """
3639 |     cells: NotRequired["__NotebookDocumentChangeEvent_cells_Type_1"]
3640 |     """ Changes to cells """
3641 | 
3642 | 
3643 | class NotebookDocumentIdentifier(TypedDict):
3644 |     """A literal to identify a notebook document in the client.
3645 | 
3646 |     @since 3.17.0
3647 |     """
3648 | 
3649 |     uri: "URI"
3650 |     """ The notebook document's uri. """
3651 | 
3652 | 
3653 | class Registration(TypedDict):
3654 |     """General parameters to to register for an notification or to register a provider."""
3655 | 
3656 |     id: str
3657 |     """ The id used to register the request. The id can be used to deregister
3658 |     the request again. """
3659 |     method: str
3660 |     """ The method / capability to register for. """
3661 |     registerOptions: NotRequired["LSPAny"]
3662 |     """ Options necessary for the registration. """
3663 | 
3664 | 
3665 | class Unregistration(TypedDict):
3666 |     """General parameters to unregister a request or notification."""
3667 | 
3668 |     id: str
3669 |     """ The id used to unregister the request or notification. Usually an id
3670 |     provided during the register request. """
3671 |     method: str
3672 |     """ The method to unregister for. """
3673 | 
3674 | 
3675 | class WorkspaceFoldersInitializeParams(TypedDict):
3676 |     workspaceFolders: NotRequired[list["WorkspaceFolder"] | None]
3677 |     """ The workspace folders configured in the client when the server starts.
3678 | 
3679 |     This property is only available if the client supports workspace folders.
3680 |     It can be `null` if the client supports workspace folders but none are
3681 |     configured.
3682 | 
3683 |     @since 3.6.0 """
3684 | 
3685 | 
3686 | class ServerCapabilities(TypedDict):
3687 |     """Defines the capabilities provided by a language
3688 |     server.
3689 |     """
3690 | 
3691 |     positionEncoding: NotRequired["PositionEncodingKind"]
3692 |     """ The position encoding the server picked from the encodings offered
3693 |     by the client via the client capability `general.positionEncodings`.
3694 | 
3695 |     If the client didn't provide any position encodings the only valid
3696 |     value that a server can return is 'utf-16'.
3697 | 
3698 |     If omitted it defaults to 'utf-16'.
3699 | 
3700 |     @since 3.17.0 """
3701 |     textDocumentSync: NotRequired[Union["TextDocumentSyncOptions", "TextDocumentSyncKind"]]
3702 |     """ Defines how text documents are synced. Is either a detailed structure
3703 |     defining each notification or for backwards compatibility the
3704 |     TextDocumentSyncKind number. """
3705 |     notebookDocumentSync: NotRequired[Union["NotebookDocumentSyncOptions", "NotebookDocumentSyncRegistrationOptions"]]
3706 |     """ Defines how notebook documents are synced.
3707 | 
3708 |     @since 3.17.0 """
3709 |     completionProvider: NotRequired["CompletionOptions"]
3710 |     """ The server provides completion support. """
3711 |     hoverProvider: NotRequired[Union[bool, "HoverOptions"]]
3712 |     """ The server provides hover support. """
3713 |     signatureHelpProvider: NotRequired["SignatureHelpOptions"]
3714 |     """ The server provides signature help support. """
3715 |     declarationProvider: NotRequired[Union[bool, "DeclarationOptions", "DeclarationRegistrationOptions"]]
3716 |     """ The server provides Goto Declaration support. """
3717 |     definitionProvider: NotRequired[Union[bool, "DefinitionOptions"]]
3718 |     """ The server provides goto definition support. """
3719 |     typeDefinitionProvider: NotRequired[Union[bool, "TypeDefinitionOptions", "TypeDefinitionRegistrationOptions"]]
3720 |     """ The server provides Goto Type Definition support. """
3721 |     implementationProvider: NotRequired[Union[bool, "ImplementationOptions", "ImplementationRegistrationOptions"]]
3722 |     """ The server provides Goto Implementation support. """
3723 |     referencesProvider: NotRequired[Union[bool, "ReferenceOptions"]]
3724 |     """ The server provides find references support. """
3725 |     documentHighlightProvider: NotRequired[Union[bool, "DocumentHighlightOptions"]]
3726 |     """ The server provides document highlight support. """
3727 |     documentSymbolProvider: NotRequired[Union[bool, "DocumentSymbolOptions"]]
3728 |     """ The server provides document symbol support. """
3729 |     codeActionProvider: NotRequired[Union[bool, "CodeActionOptions"]]
3730 |     """ The server provides code actions. CodeActionOptions may only be
3731 |     specified if the client states that it supports
3732 |     `codeActionLiteralSupport` in its initial `initialize` request. """
3733 |     codeLensProvider: NotRequired["CodeLensOptions"]
3734 |     """ The server provides code lens. """
3735 |     documentLinkProvider: NotRequired["DocumentLinkOptions"]
3736 |     """ The server provides document link support. """
3737 |     colorProvider: NotRequired[Union[bool, "DocumentColorOptions", "DocumentColorRegistrationOptions"]]
3738 |     """ The server provides color provider support. """
3739 |     workspaceSymbolProvider: NotRequired[Union[bool, "WorkspaceSymbolOptions"]]
3740 |     """ The server provides workspace symbol support. """
3741 |     documentFormattingProvider: NotRequired[Union[bool, "DocumentFormattingOptions"]]
3742 |     """ The server provides document formatting. """
3743 |     documentRangeFormattingProvider: NotRequired[Union[bool, "DocumentRangeFormattingOptions"]]
3744 |     """ The server provides document range formatting. """
3745 |     documentOnTypeFormattingProvider: NotRequired["DocumentOnTypeFormattingOptions"]
3746 |     """ The server provides document formatting on typing. """
3747 |     renameProvider: NotRequired[Union[bool, "RenameOptions"]]
3748 |     """ The server provides rename support. RenameOptions may only be
3749 |     specified if the client states that it supports
3750 |     `prepareSupport` in its initial `initialize` request. """
3751 |     foldingRangeProvider: NotRequired[Union[bool, "FoldingRangeOptions", "FoldingRangeRegistrationOptions"]]
3752 |     """ The server provides folding provider support. """
3753 |     selectionRangeProvider: NotRequired[Union[bool, "SelectionRangeOptions", "SelectionRangeRegistrationOptions"]]
3754 |     """ The server provides selection range support. """
3755 |     executeCommandProvider: NotRequired["ExecuteCommandOptions"]
3756 |     """ The server provides execute command support. """
3757 |     callHierarchyProvider: NotRequired[Union[bool, "CallHierarchyOptions", "CallHierarchyRegistrationOptions"]]
3758 |     """ The server provides call hierarchy support.
3759 | 
3760 |     @since 3.16.0 """
3761 |     linkedEditingRangeProvider: NotRequired[Union[bool, "LinkedEditingRangeOptions", "LinkedEditingRangeRegistrationOptions"]]
3762 |     """ The server provides linked editing range support.
3763 | 
3764 |     @since 3.16.0 """
3765 |     semanticTokensProvider: NotRequired[Union["SemanticTokensOptions", "SemanticTokensRegistrationOptions"]]
3766 |     """ The server provides semantic tokens support.
3767 | 
3768 |     @since 3.16.0 """
3769 |     monikerProvider: NotRequired[Union[bool, "MonikerOptions", "MonikerRegistrationOptions"]]
3770 |     """ The server provides moniker support.
3771 | 
3772 |     @since 3.16.0 """
3773 |     typeHierarchyProvider: NotRequired[Union[bool, "TypeHierarchyOptions", "TypeHierarchyRegistrationOptions"]]
3774 |     """ The server provides type hierarchy support.
3775 | 
3776 |     @since 3.17.0 """
3777 |     inlineValueProvider: NotRequired[Union[bool, "InlineValueOptions", "InlineValueRegistrationOptions"]]
3778 |     """ The server provides inline values.
3779 | 
3780 |     @since 3.17.0 """
3781 |     inlayHintProvider: NotRequired[Union[bool, "InlayHintOptions", "InlayHintRegistrationOptions"]]
3782 |     """ The server provides inlay hints.
3783 | 
3784 |     @since 3.17.0 """
3785 |     diagnosticProvider: NotRequired[Union["DiagnosticOptions", "DiagnosticRegistrationOptions"]]
3786 |     """ The server has support for pull model diagnostics.
3787 | 
3788 |     @since 3.17.0 """
3789 |     workspace: NotRequired["__ServerCapabilities_workspace_Type_1"]
3790 |     """ Workspace specific server capabilities. """
3791 |     experimental: NotRequired["LSPAny"]
3792 |     """ Experimental server capabilities. """
3793 | 
3794 | 
3795 | class VersionedTextDocumentIdentifier(TypedDict):
3796 |     """A text document identifier to denote a specific version of a text document."""
3797 | 
3798 |     version: int
3799 |     """ The version number of this document. """
3800 |     uri: "DocumentUri"
3801 |     """ The text document's uri. """
3802 | 
3803 | 
3804 | class SaveOptions(TypedDict):
3805 |     """Save options."""
3806 | 
3807 |     includeText: NotRequired[bool]
3808 |     """ The client is supposed to include the content on save. """
3809 | 
3810 | 
3811 | class FileEvent(TypedDict):
3812 |     """An event describing a file change."""
3813 | 
3814 |     uri: "DocumentUri"
3815 |     """ The file's uri. """
3816 |     type: "FileChangeType"
3817 |     """ The change type. """
3818 | 
3819 | 
3820 | class FileSystemWatcher(TypedDict):
3821 |     globPattern: "GlobPattern"
3822 |     """ The glob pattern to watch. See {@link GlobPattern glob pattern} for more detail.
3823 | 
3824 |     @since 3.17.0 support for relative patterns. """
3825 |     kind: NotRequired["WatchKind"]
3826 |     """ The kind of events of interest. If omitted it defaults
3827 |     to WatchKind.Create | WatchKind.Change | WatchKind.Delete
3828 |     which is 7. """
3829 | 
3830 | 
3831 | class Diagnostic(TypedDict):
3832 |     """Represents a diagnostic, such as a compiler error or warning. Diagnostic objects
3833 |     are only valid in the scope of a resource.
3834 |     """
3835 | 
3836 |     range: "Range"
3837 |     """ The range at which the message applies """
3838 |     severity: NotRequired["DiagnosticSeverity"]
3839 |     """ The diagnostic's severity. Can be omitted. If omitted it is up to the
3840 |     client to interpret diagnostics as error, warning, info or hint. """
3841 |     code: NotRequired[int | str]
3842 |     """ The diagnostic's code, which usually appear in the user interface. """
3843 |     codeDescription: NotRequired["CodeDescription"]
3844 |     """ An optional property to describe the error code.
3845 |     Requires the code field (above) to be present/not null.
3846 | 
3847 |     @since 3.16.0 """
3848 |     source: NotRequired[str]
3849 |     """ A human-readable string describing the source of this
3850 |     diagnostic, e.g. 'typescript' or 'super lint'. It usually
3851 |     appears in the user interface. """
3852 |     message: str
3853 |     """ The diagnostic's message. It usually appears in the user interface """
3854 |     tags: NotRequired[list["DiagnosticTag"]]
3855 |     """ Additional metadata about the diagnostic.
3856 | 
3857 |     @since 3.15.0 """
3858 |     relatedInformation: NotRequired[list["DiagnosticRelatedInformation"]]
3859 |     """ An array of related diagnostic information, e.g. when symbol-names within
3860 |     a scope collide all definitions can be marked via this property. """
3861 |     data: NotRequired["LSPAny"]
3862 |     """ A data entry field that is preserved between a `textDocument/publishDiagnostics`
3863 |     notification and `textDocument/codeAction` request.
3864 | 
3865 |     @since 3.16.0 """
3866 | 
3867 | 
3868 | class CompletionContext(TypedDict):
3869 |     """Contains additional information about the context in which a completion request is triggered."""
3870 | 
3871 |     triggerKind: "CompletionTriggerKind"
3872 |     """ How the completion was triggered. """
3873 |     triggerCharacter: NotRequired[str]
3874 |     """ The trigger character (a single character) that has trigger code complete.
3875 |     Is undefined if `triggerKind !== CompletionTriggerKind.TriggerCharacter` """
3876 | 
3877 | 
3878 | class CompletionItemLabelDetails(TypedDict):
3879 |     """Additional details for a completion item label.
3880 | 
3881 |     @since 3.17.0
3882 |     """
3883 | 
3884 |     detail: NotRequired[str]
3885 |     """ An optional string which is rendered less prominently directly after {@link CompletionItem.label label},
3886 |     without any spacing. Should be used for function signatures and type annotations. """
3887 |     description: NotRequired[str]
3888 |     """ An optional string which is rendered less prominently after {@link CompletionItem.detail}. Should be used
3889 |     for fully qualified names and file paths. """
3890 | 
3891 | 
3892 | class InsertReplaceEdit(TypedDict):
3893 |     """A special text edit to provide an insert and a replace operation.
3894 | 
3895 |     @since 3.16.0
3896 |     """
3897 | 
3898 |     newText: str
3899 |     """ The string to be inserted. """
3900 |     insert: "Range"
3901 |     """ The range if the insert is requested """
3902 |     replace: "Range"
3903 |     """ The range if the replace is requested. """
3904 | 
3905 | 
3906 | class CompletionOptions(TypedDict):
3907 |     """Completion options."""
3908 | 
3909 |     triggerCharacters: NotRequired[list[str]]
3910 |     """ Most tools trigger completion request automatically without explicitly requesting
3911 |     it using a keyboard shortcut (e.g. Ctrl+Space). Typically they do so when the user
3912 |     starts to type an identifier. For example if the user types `c` in a JavaScript file
3913 |     code complete will automatically pop up present `console` besides others as a
3914 |     completion item. Characters that make up identifiers don't need to be listed here.
3915 | 
3916 |     If code complete should automatically be trigger on characters not being valid inside
3917 |     an identifier (for example `.` in JavaScript) list them in `triggerCharacters`. """
3918 |     allCommitCharacters: NotRequired[list[str]]
3919 |     """ The list of all possible characters that commit a completion. This field can be used
3920 |     if clients don't support individual commit characters per completion item. See
3921 |     `ClientCapabilities.textDocument.completion.completionItem.commitCharactersSupport`
3922 | 
3923 |     If a server provides both `allCommitCharacters` and commit characters on an individual
3924 |     completion item the ones on the completion item win.
3925 | 
3926 |     @since 3.2.0 """
3927 |     resolveProvider: NotRequired[bool]
3928 |     """ The server provides support to resolve additional
3929 |     information for a completion item. """
3930 |     completionItem: NotRequired["__CompletionOptions_completionItem_Type_2"]
3931 |     """ The server supports the following `CompletionItem` specific
3932 |     capabilities.
3933 | 
3934 |     @since 3.17.0 """
3935 |     workDoneProgress: NotRequired[bool]
3936 | 
3937 | 
3938 | class HoverOptions(TypedDict):
3939 |     """Hover options."""
3940 | 
3941 |     workDoneProgress: NotRequired[bool]
3942 | 
3943 | 
3944 | class SignatureHelpContext(TypedDict):
3945 |     """Additional information about the context in which a signature help request was triggered.
3946 | 
3947 |     @since 3.15.0
3948 |     """
3949 | 
3950 |     triggerKind: "SignatureHelpTriggerKind"
3951 |     """ Action that caused signature help to be triggered. """
3952 |     triggerCharacter: NotRequired[str]
3953 |     """ Character that caused signature help to be triggered.
3954 | 
3955 |     This is undefined when `triggerKind !== SignatureHelpTriggerKind.TriggerCharacter` """
3956 |     isRetrigger: bool
3957 |     """ `true` if signature help was already showing when it was triggered.
3958 | 
3959 |     Retriggers occurs when the signature help is already active and can be caused by actions such as
3960 |     typing a trigger character, a cursor move, or document content changes. """
3961 |     activeSignatureHelp: NotRequired["SignatureHelp"]
3962 |     """ The currently active `SignatureHelp`.
3963 | 
3964 |     The `activeSignatureHelp` has its `SignatureHelp.activeSignature` field updated based on
3965 |     the user navigating through available signatures. """
3966 | 
3967 | 
3968 | class SignatureInformation(TypedDict):
3969 |     """Represents the signature of something callable. A signature
3970 |     can have a label, like a function-name, a doc-comment, and
3971 |     a set of parameters.
3972 |     """
3973 | 
3974 |     label: str
3975 |     """ The label of this signature. Will be shown in
3976 |     the UI. """
3977 |     documentation: NotRequired[Union[str, "MarkupContent"]]
3978 |     """ The human-readable doc-comment of this signature. Will be shown
3979 |     in the UI but can be omitted. """
3980 |     parameters: NotRequired[list["ParameterInformation"]]
3981 |     """ The parameters of this signature. """
3982 |     activeParameter: NotRequired[Uint]
3983 |     """ The index of the active parameter.
3984 | 
3985 |     If provided, this is used in place of `SignatureHelp.activeParameter`.
3986 | 
3987 |     @since 3.16.0 """
3988 | 
3989 | 
3990 | class SignatureHelpOptions(TypedDict):
3991 |     """Server Capabilities for a {@link SignatureHelpRequest}."""
3992 | 
3993 |     triggerCharacters: NotRequired[list[str]]
3994 |     """ List of characters that trigger signature help automatically. """
3995 |     retriggerCharacters: NotRequired[list[str]]
3996 |     """ List of characters that re-trigger signature help.
3997 | 
3998 |     These trigger characters are only active when signature help is already showing. All trigger characters
3999 |     are also counted as re-trigger characters.
4000 | 
4001 |     @since 3.15.0 """
4002 |     workDoneProgress: NotRequired[bool]
4003 | 
4004 | 
4005 | class DefinitionOptions(TypedDict):
4006 |     """Server Capabilities for a {@link DefinitionRequest}."""
4007 | 
4008 |     workDoneProgress: NotRequired[bool]
4009 | 
4010 | 
4011 | class ReferenceContext(TypedDict):
4012 |     """Value-object that contains additional information when
4013 |     requesting references.
4014 |     """
4015 | 
4016 |     includeDeclaration: bool
4017 |     """ Include the declaration of the current symbol. """
4018 | 
4019 | 
4020 | class ReferenceOptions(TypedDict):
4021 |     """Reference options."""
4022 | 
4023 |     workDoneProgress: NotRequired[bool]
4024 | 
4025 | 
4026 | class DocumentHighlightOptions(TypedDict):
4027 |     """Provider options for a {@link DocumentHighlightRequest}."""
4028 | 
4029 |     workDoneProgress: NotRequired[bool]
4030 | 
4031 | 
4032 | class BaseSymbolInformation(TypedDict):
4033 |     """A base for all symbol information."""
4034 | 
4035 |     name: str
4036 |     """ The name of this symbol. """
4037 |     kind: "SymbolKind"
4038 |     """ The kind of this symbol. """
4039 |     tags: NotRequired[list["SymbolTag"]]
4040 |     """ Tags for this symbol.
4041 | 
4042 |     @since 3.16.0 """
4043 |     containerName: NotRequired[str]
4044 |     """ The name of the symbol containing this symbol. This information is for
4045 |     user interface purposes (e.g. to render a qualifier in the user interface
4046 |     if necessary). It can't be used to re-infer a hierarchy for the document
4047 |     symbols. """
4048 | 
4049 | 
4050 | class DocumentSymbolOptions(TypedDict):
4051 |     """Provider options for a {@link DocumentSymbolRequest}."""
4052 | 
4053 |     label: NotRequired[str]
4054 |     """ A human-readable string that is shown when multiple outlines trees
4055 |     are shown for the same document.
4056 | 
4057 |     @since 3.16.0 """
4058 |     workDoneProgress: NotRequired[bool]
4059 | 
4060 | 
4061 | class CodeActionContext(TypedDict):
4062 |     """Contains additional diagnostic information about the context in which
4063 |     a {@link CodeActionProvider.provideCodeActions code action} is run.
4064 |     """
4065 | 
4066 |     diagnostics: list["Diagnostic"]
4067 |     """ An array of diagnostics known on the client side overlapping the range provided to the
4068 |     `textDocument/codeAction` request. They are provided so that the server knows which
4069 |     errors are currently presented to the user for the given range. There is no guarantee
4070 |     that these accurately reflect the error state of the resource. The primary parameter
4071 |     to compute code actions is the provided range. """
4072 |     only: NotRequired[list["CodeActionKind"]]
4073 |     """ Requested kind of actions to return.
4074 | 
4075 |     Actions not of this kind are filtered out by the client before being shown. So servers
4076 |     can omit computing them. """
4077 |     triggerKind: NotRequired["CodeActionTriggerKind"]
4078 |     """ The reason why code actions were requested.
4079 | 
4080 |     @since 3.17.0 """
4081 | 
4082 | 
4083 | class CodeActionOptions(TypedDict):
4084 |     """Provider options for a {@link CodeActionRequest}."""
4085 | 
4086 |     codeActionKinds: NotRequired[list["CodeActionKind"]]
4087 |     """ CodeActionKinds that this server may return.
4088 | 
4089 |     The list of kinds may be generic, such as `CodeActionKind.Refactor`, or the server
4090 |     may list out every specific kind they provide. """
4091 |     resolveProvider: NotRequired[bool]
4092 |     """ The server provides support to resolve additional
4093 |     information for a code action.
4094 | 
4095 |     @since 3.16.0 """
4096 |     workDoneProgress: NotRequired[bool]
4097 | 
4098 | 
4099 | class WorkspaceSymbolOptions(TypedDict):
4100 |     """Server capabilities for a {@link WorkspaceSymbolRequest}."""
4101 | 
4102 |     resolveProvider: NotRequired[bool]
4103 |     """ The server provides support to resolve additional
4104 |     information for a workspace symbol.
4105 | 
4106 |     @since 3.17.0 """
4107 |     workDoneProgress: NotRequired[bool]
4108 | 
4109 | 
4110 | class CodeLensOptions(TypedDict):
4111 |     """Code Lens provider options of a {@link CodeLensRequest}."""
4112 | 
4113 |     resolveProvider: NotRequired[bool]
4114 |     """ Code lens has a resolve provider as well. """
4115 |     workDoneProgress: NotRequired[bool]
4116 | 
4117 | 
4118 | class DocumentLinkOptions(TypedDict):
4119 |     """Provider options for a {@link DocumentLinkRequest}."""
4120 | 
4121 |     resolveProvider: NotRequired[bool]
4122 |     """ Document links have a resolve provider as well. """
4123 |     workDoneProgress: NotRequired[bool]
4124 | 
4125 | 
4126 | class FormattingOptions(TypedDict):
4127 |     """Value-object describing what options formatting should use."""
4128 | 
4129 |     tabSize: Uint
4130 |     """ Size of a tab in spaces. """
4131 |     insertSpaces: bool
4132 |     """ Prefer spaces over tabs. """
4133 |     trimTrailingWhitespace: NotRequired[bool]
4134 |     """ Trim trailing whitespace on a line.
4135 | 
4136 |     @since 3.15.0 """
4137 |     insertFinalNewline: NotRequired[bool]
4138 |     """ Insert a newline character at the end of the file if one does not exist.
4139 | 
4140 |     @since 3.15.0 """
4141 |     trimFinalNewlines: NotRequired[bool]
4142 |     """ Trim all newlines after the final newline at the end of the file.
4143 | 
4144 |     @since 3.15.0 """
4145 | 
4146 | 
4147 | class DocumentFormattingOptions(TypedDict):
4148 |     """Provider options for a {@link DocumentFormattingRequest}."""
4149 | 
4150 |     workDoneProgress: NotRequired[bool]
4151 | 
4152 | 
4153 | class DocumentRangeFormattingOptions(TypedDict):
4154 |     """Provider options for a {@link DocumentRangeFormattingRequest}."""
4155 | 
4156 |     workDoneProgress: NotRequired[bool]
4157 | 
4158 | 
4159 | class DocumentOnTypeFormattingOptions(TypedDict):
4160 |     """Provider options for a {@link DocumentOnTypeFormattingRequest}."""
4161 | 
4162 |     firstTriggerCharacter: str
4163 |     """ A character on which formatting should be triggered, like `{`. """
4164 |     moreTriggerCharacter: NotRequired[list[str]]
4165 |     """ More trigger characters. """
4166 | 
4167 | 
4168 | class RenameOptions(TypedDict):
4169 |     """Provider options for a {@link RenameRequest}."""
4170 | 
4171 |     prepareProvider: NotRequired[bool]
4172 |     """ Renames should be checked and tested before being executed.
4173 | 
4174 |     @since version 3.12.0 """
4175 |     workDoneProgress: NotRequired[bool]
4176 | 
4177 | 
4178 | class ExecuteCommandOptions(TypedDict):
4179 |     """The server capabilities of a {@link ExecuteCommandRequest}."""
4180 | 
4181 |     commands: list[str]
4182 |     """ The commands to be executed on the server """
4183 |     workDoneProgress: NotRequired[bool]
4184 | 
4185 | 
4186 | class SemanticTokensLegend(TypedDict):
4187 |     """@since 3.16.0"""
4188 | 
4189 |     tokenTypes: list[str]
4190 |     """ The token types a server uses. """
4191 |     tokenModifiers: list[str]
4192 |     """ The token modifiers a server uses. """
4193 | 
4194 | 
4195 | class OptionalVersionedTextDocumentIdentifier(TypedDict):
4196 |     """A text document identifier to optionally denote a specific version of a text document."""
4197 | 
4198 |     version: int | None
4199 |     """ The version number of this document. If a versioned text document identifier
4200 |     is sent from the server to the client and the file is not open in the editor
4201 |     (the server has not received an open notification before) the server can send
4202 |     `null` to indicate that the version is unknown and the content on disk is the
4203 |     truth (as specified with document content ownership). """
4204 |     uri: "DocumentUri"
4205 |     """ The text document's uri. """
4206 | 
4207 | 
4208 | class AnnotatedTextEdit(TypedDict):
4209 |     """A special text edit with an additional change annotation.
4210 | 
4211 |     @since 3.16.0.
4212 |     """
4213 | 
4214 |     annotationId: "ChangeAnnotationIdentifier"
4215 |     """ The actual identifier of the change annotation """
4216 |     range: "Range"
4217 |     """ The range of the text document to be manipulated. To insert
4218 |     text into a document create a range where start === end. """
4219 |     newText: str
4220 |     """ The string to be inserted. For delete operations use an
4221 |     empty string. """
4222 | 
4223 | 
4224 | class ResourceOperation(TypedDict):
4225 |     """A generic resource operation."""
4226 | 
4227 |     kind: str
4228 |     """ The resource operation kind. """
4229 |     annotationId: NotRequired["ChangeAnnotationIdentifier"]
4230 |     """ An optional annotation identifier describing the operation.
4231 | 
4232 |     @since 3.16.0 """
4233 | 
4234 | 
4235 | class CreateFileOptions(TypedDict):
4236 |     """Options to create a file."""
4237 | 
4238 |     overwrite: NotRequired[bool]
4239 |     """ Overwrite existing file. Overwrite wins over `ignoreIfExists` """
4240 |     ignoreIfExists: NotRequired[bool]
4241 |     """ Ignore if exists. """
4242 | 
4243 | 
4244 | class RenameFileOptions(TypedDict):
4245 |     """Rename file options"""
4246 | 
4247 |     overwrite: NotRequired[bool]
4248 |     """ Overwrite target if existing. Overwrite wins over `ignoreIfExists` """
4249 |     ignoreIfExists: NotRequired[bool]
4250 |     """ Ignores if target exists. """
4251 | 
4252 | 
4253 | class DeleteFileOptions(TypedDict):
4254 |     """Delete file options"""
4255 | 
4256 |     recursive: NotRequired[bool]
4257 |     """ Delete the content recursively if a folder is denoted. """
4258 |     ignoreIfNotExists: NotRequired[bool]
4259 |     """ Ignore the operation if the file doesn't exist. """
4260 | 
4261 | 
4262 | class FileOperationPattern(TypedDict):
4263 |     """A pattern to describe in which file operation requests or notifications
4264 |     the server is interested in receiving.
4265 | 
4266 |     @since 3.16.0
4267 |     """
4268 | 
4269 |     glob: str
4270 |     """ The glob pattern to match. Glob patterns can have the following syntax:
4271 |     - `*` to match one or more characters in a path segment
4272 |     - `?` to match on one character in a path segment
4273 |     - `**` to match any number of path segments, including none
4274 |     - `{}` to group sub patterns into an OR expression. (e.g. `**\u200b/*.{ts,js}` matches all TypeScript and JavaScript files)
4275 |     - `[]` to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …)
4276 |     - `[!...]` to negate a range of characters to match in a path segment (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but not `example.0`) """
4277 |     matches: NotRequired["FileOperationPatternKind"]
4278 |     """ Whether to match files or folders with this pattern.
4279 | 
4280 |     Matches both if undefined. """
4281 |     options: NotRequired["FileOperationPatternOptions"]
4282 |     """ Additional options used during matching. """
4283 | 
4284 | 
4285 | class WorkspaceFullDocumentDiagnosticReport(TypedDict):
4286 |     """A full document diagnostic report for a workspace diagnostic result.
4287 | 
4288 |     @since 3.17.0
4289 |     """
4290 | 
4291 |     uri: "DocumentUri"
4292 |     """ The URI for which diagnostic information is reported. """
4293 |     version: int | None
4294 |     """ The version number for which the diagnostics are reported.
4295 |     If the document is not marked as open `null` can be provided. """
4296 |     kind: Literal["full"]
4297 |     """ A full document diagnostic report. """
4298 |     resultId: NotRequired[str]
4299 |     """ An optional result id. If provided it will
4300 |     be sent on the next diagnostic request for the
4301 |     same document. """
4302 |     items: list["Diagnostic"]
4303 |     """ The actual items. """
4304 | 
4305 | 
4306 | class WorkspaceUnchangedDocumentDiagnosticReport(TypedDict):
4307 |     """An unchanged document diagnostic report for a workspace diagnostic result.
4308 | 
4309 |     @since 3.17.0
4310 |     """
4311 | 
4312 |     uri: "DocumentUri"
4313 |     """ The URI for which diagnostic information is reported. """
4314 |     version: int | None
4315 |     """ The version number for which the diagnostics are reported.
4316 |     If the document is not marked as open `null` can be provided. """
4317 |     kind: Literal["unchanged"]
4318 |     """ A document diagnostic report indicating
4319 |     no changes to the last result. A server can
4320 |     only return `unchanged` if result ids are
4321 |     provided. """
4322 |     resultId: str
4323 |     """ A result id which will be sent on the next
4324 |     diagnostic request for the same document. """
4325 | 
4326 | 
4327 | class NotebookCell(TypedDict):
4328 |     """A notebook cell.
4329 | 
4330 |     A cell's document URI must be unique across ALL notebook
4331 |     cells and can therefore be used to uniquely identify a
4332 |     notebook cell or the cell's text document.
4333 | 
4334 |     @since 3.17.0
4335 |     """
4336 | 
4337 |     kind: "NotebookCellKind"
4338 |     """ The cell's kind """
4339 |     document: "DocumentUri"
4340 |     """ The URI of the cell's text document
4341 |     content. """
4342 |     metadata: NotRequired["LSPObject"]
4343 |     """ Additional metadata stored with the cell.
4344 | 
4345 |     Note: should always be an object literal (e.g. LSPObject) """
4346 |     executionSummary: NotRequired["ExecutionSummary"]
4347 |     """ Additional execution summary information
4348 |     if supported by the client. """
4349 | 
4350 | 
4351 | class NotebookCellArrayChange(TypedDict):
4352 |     """A change describing how to move a `NotebookCell`
4353 |     array from state S to S'.
4354 | 
4355 |     @since 3.17.0
4356 |     """
4357 | 
4358 |     start: Uint
4359 |     """ The start oftest of the cell that changed. """
4360 |     deleteCount: Uint
4361 |     """ The deleted cells """
4362 |     cells: NotRequired[list["NotebookCell"]]
4363 |     """ The new cells, if any """
4364 | 
4365 | 
4366 | class ClientCapabilities(TypedDict):
4367 |     """Defines the capabilities provided by the client."""
4368 | 
4369 |     workspace: NotRequired["WorkspaceClientCapabilities"]
4370 |     """ Workspace specific client capabilities. """
4371 |     textDocument: NotRequired["TextDocumentClientCapabilities"]
4372 |     """ Text document specific client capabilities. """
4373 |     notebookDocument: NotRequired["NotebookDocumentClientCapabilities"]
4374 |     """ Capabilities specific to the notebook document support.
4375 | 
4376 |     @since 3.17.0 """
4377 |     window: NotRequired["WindowClientCapabilities"]
4378 |     """ Window specific client capabilities. """
4379 |     general: NotRequired["GeneralClientCapabilities"]
4380 |     """ General client capabilities.
4381 | 
4382 |     @since 3.16.0 """
4383 |     experimental: NotRequired["LSPAny"]
4384 |     """ Experimental client capabilities. """
4385 | 
4386 | 
4387 | class TextDocumentSyncOptions(TypedDict):
4388 |     openClose: NotRequired[bool]
4389 |     """ Open and close notifications are sent to the server. If omitted open close notification should not
4390 |     be sent. """
4391 |     change: NotRequired["TextDocumentSyncKind"]
4392 |     """ Change notifications are sent to the server. See TextDocumentSyncKind.None, TextDocumentSyncKind.Full
4393 |     and TextDocumentSyncKind.Incremental. If omitted it defaults to TextDocumentSyncKind.None. """
4394 |     willSave: NotRequired[bool]
4395 |     """ If present will save notifications are sent to the server. If omitted the notification should not be
4396 |     sent. """
4397 |     willSaveWaitUntil: NotRequired[bool]
4398 |     """ If present will save wait until requests are sent to the server. If omitted the request should not be
4399 |     sent. """
4400 |     save: NotRequired[Union[bool, "SaveOptions"]]
4401 |     """ If present save notifications are sent to the server. If omitted the notification should not be
4402 |     sent. """
4403 | 
4404 | 
4405 | class NotebookDocumentSyncOptions(TypedDict):
4406 |     """Options specific to a notebook plus its cells
4407 |     to be synced to the server.
4408 | 
4409 |     If a selector provides a notebook document
4410 |     filter but no cell selector all cells of a
4411 |     matching notebook document will be synced.
4412 | 
4413 |     If a selector provides no notebook document
4414 |     filter but only a cell selector all notebook
4415 |     document that contain at least one matching
4416 |     cell will be synced.
4417 | 
4418 |     @since 3.17.0
4419 |     """
4420 | 
4421 |     notebookSelector: list[
4422 |         Union[
4423 |             "__NotebookDocumentSyncOptions_notebookSelector_Type_1",
4424 |             "__NotebookDocumentSyncOptions_notebookSelector_Type_2",
4425 |         ]
4426 |     ]
4427 |     """ The notebooks to be synced """
4428 |     save: NotRequired[bool]
4429 |     """ Whether save notification should be forwarded to
4430 |     the server. Will only be honored if mode === `notebook`. """
4431 | 
4432 | 
4433 | class NotebookDocumentSyncRegistrationOptions(TypedDict):
4434 |     """Registration options specific to a notebook.
4435 | 
4436 |     @since 3.17.0
4437 |     """
4438 | 
4439 |     notebookSelector: list[
4440 |         Union[
4441 |             "__NotebookDocumentSyncOptions_notebookSelector_Type_3",
4442 |             "__NotebookDocumentSyncOptions_notebookSelector_Type_4",
4443 |         ]
4444 |     ]
4445 |     """ The notebooks to be synced """
4446 |     save: NotRequired[bool]
4447 |     """ Whether save notification should be forwarded to
4448 |     the server. Will only be honored if mode === `notebook`. """
4449 |     id: NotRequired[str]
4450 |     """ The id used to register the request. The id can be used to deregister
4451 |     the request again. See also Registration#id. """
4452 | 
4453 | 
4454 | class WorkspaceFoldersServerCapabilities(TypedDict):
4455 |     supported: NotRequired[bool]
4456 |     """ The server has support for workspace folders """
4457 |     changeNotifications: NotRequired[str | bool]
4458 |     """ Whether the server wants to receive workspace folder
4459 |     change notifications.
4460 | 
4461 |     If a string is provided the string is treated as an ID
4462 |     under which the notification is registered on the client
4463 |     side. The ID can be used to unregister for these events
4464 |     using the `client/unregisterCapability` request. """
4465 | 
4466 | 
4467 | class FileOperationOptions(TypedDict):
4468 |     """Options for notifications/requests for user operations on files.
4469 | 
4470 |     @since 3.16.0
4471 |     """
4472 | 
4473 |     didCreate: NotRequired["FileOperationRegistrationOptions"]
4474 |     """ The server is interested in receiving didCreateFiles notifications. """
4475 |     willCreate: NotRequired["FileOperationRegistrationOptions"]
4476 |     """ The server is interested in receiving willCreateFiles requests. """
4477 |     didRename: NotRequired["FileOperationRegistrationOptions"]
4478 |     """ The server is interested in receiving didRenameFiles notifications. """
4479 |     willRename: NotRequired["FileOperationRegistrationOptions"]
4480 |     """ The server is interested in receiving willRenameFiles requests. """
4481 |     didDelete: NotRequired["FileOperationRegistrationOptions"]
4482 |     """ The server is interested in receiving didDeleteFiles file notifications. """
4483 |     willDelete: NotRequired["FileOperationRegistrationOptions"]
4484 |     """ The server is interested in receiving willDeleteFiles file requests. """
4485 | 
4486 | 
4487 | class CodeDescription(TypedDict):
4488 |     """Structure to capture a description for an error code.
4489 | 
4490 |     @since 3.16.0
4491 |     """
4492 | 
4493 |     href: "URI"
4494 |     """ An URI to open with more information about the diagnostic error. """
4495 | 
4496 | 
4497 | class DiagnosticRelatedInformation(TypedDict):
4498 |     """Represents a related message and source code location for a diagnostic. This should be
4499 |     used to point to code locations that cause or related to a diagnostics, e.g when duplicating
4500 |     a symbol in a scope.
4501 |     """
4502 | 
4503 |     location: "Location"
4504 |     """ The location of this related diagnostic information. """
4505 |     message: str
4506 |     """ The message of this related diagnostic information. """
4507 | 
4508 | 
4509 | class ParameterInformation(TypedDict):
4510 |     """Represents a parameter of a callable-signature. A parameter can
4511 |     have a label and a doc-comment.
4512 |     """
4513 | 
4514 |     label: str | list[Uint | Uint]
4515 |     """ The label of this parameter information.
4516 | 
4517 |     Either a string or an inclusive start and exclusive end offsets within its containing
4518 |     signature label. (see SignatureInformation.label). The offsets are based on a UTF-16
4519 |     string representation as `Position` and `Range` does.
4520 | 
4521 |     *Note*: a label of type string should be a substring of its containing signature label.
4522 |     Its intended use case is to highlight the parameter label part in the `SignatureInformation.label`. """
4523 |     documentation: NotRequired[Union[str, "MarkupContent"]]
4524 |     """ The human-readable doc-comment of this parameter. Will be shown
4525 |     in the UI but can be omitted. """
4526 | 
4527 | 
4528 | class NotebookCellTextDocumentFilter(TypedDict):
4529 |     """A notebook cell text document filter denotes a cell text
4530 |     document by different properties.
4531 | 
4532 |     @since 3.17.0
4533 |     """
4534 | 
4535 |     notebook: Union[str, "NotebookDocumentFilter"]
4536 |     """ A filter that matches against the notebook
4537 |     containing the notebook cell. If a string
4538 |     value is provided it matches against the
4539 |     notebook type. '*' matches every notebook. """
4540 |     language: NotRequired[str]
4541 |     """ A language id like `python`.
4542 | 
4543 |     Will be matched against the language id of the
4544 |     notebook cell document. '*' matches every language. """
4545 | 
4546 | 
4547 | class FileOperationPatternOptions(TypedDict):
4548 |     """Matching options for the file operation pattern.
4549 | 
4550 |     @since 3.16.0
4551 |     """
4552 | 
4553 |     ignoreCase: NotRequired[bool]
4554 |     """ The pattern should be matched ignoring casing. """
4555 | 
4556 | 
4557 | class ExecutionSummary(TypedDict):
4558 |     executionOrder: Uint
4559 |     """ A strict monotonically increasing value
4560 |     indicating the execution order of a cell
4561 |     inside a notebook. """
4562 |     success: NotRequired[bool]
4563 |     """ Whether the execution was successful or
4564 |     not if known by the client. """
4565 | 
4566 | 
4567 | class WorkspaceClientCapabilities(TypedDict):
4568 |     """Workspace specific client capabilities."""
4569 | 
4570 |     applyEdit: NotRequired[bool]
4571 |     """ The client supports applying batch edits
4572 |     to the workspace by supporting the request
4573 |     'workspace/applyEdit' """
4574 |     workspaceEdit: NotRequired["WorkspaceEditClientCapabilities"]
4575 |     """ Capabilities specific to `WorkspaceEdit`s. """
4576 |     didChangeConfiguration: NotRequired["DidChangeConfigurationClientCapabilities"]
4577 |     """ Capabilities specific to the `workspace/didChangeConfiguration` notification. """
4578 |     didChangeWatchedFiles: NotRequired["DidChangeWatchedFilesClientCapabilities"]
4579 |     """ Capabilities specific to the `workspace/didChangeWatchedFiles` notification. """
4580 |     symbol: NotRequired["WorkspaceSymbolClientCapabilities"]
4581 |     """ Capabilities specific to the `workspace/symbol` request. """
4582 |     executeCommand: NotRequired["ExecuteCommandClientCapabilities"]
4583 |     """ Capabilities specific to the `workspace/executeCommand` request. """
4584 |     workspaceFolders: NotRequired[bool]
4585 |     """ The client has support for workspace folders.
4586 | 
4587 |     @since 3.6.0 """
4588 |     configuration: NotRequired[bool]
4589 |     """ The client supports `workspace/configuration` requests.
4590 | 
4591 |     @since 3.6.0 """
4592 |     semanticTokens: NotRequired["SemanticTokensWorkspaceClientCapabilities"]
4593 |     """ Capabilities specific to the semantic token requests scoped to the
4594 |     workspace.
4595 | 
4596 |     @since 3.16.0. """
4597 |     codeLens: NotRequired["CodeLensWorkspaceClientCapabilities"]
4598 |     """ Capabilities specific to the code lens requests scoped to the
4599 |     workspace.
4600 | 
4601 |     @since 3.16.0. """
4602 |     fileOperations: NotRequired["FileOperationClientCapabilities"]
4603 |     """ The client has support for file notifications/requests for user operations on files.
4604 | 
4605 |     Since 3.16.0 """
4606 |     inlineValue: NotRequired["InlineValueWorkspaceClientCapabilities"]
4607 |     """ Capabilities specific to the inline values requests scoped to the
4608 |     workspace.
4609 | 
4610 |     @since 3.17.0. """
4611 |     inlayHint: NotRequired["InlayHintWorkspaceClientCapabilities"]
4612 |     """ Capabilities specific to the inlay hint requests scoped to the
4613 |     workspace.
4614 | 
4615 |     @since 3.17.0. """
4616 |     diagnostics: NotRequired["DiagnosticWorkspaceClientCapabilities"]
4617 |     """ Capabilities specific to the diagnostic requests scoped to the
4618 |     workspace.
4619 | 
4620 |     @since 3.17.0. """
4621 | 
4622 | 
4623 | class TextDocumentClientCapabilities(TypedDict):
4624 |     """Text document specific client capabilities."""
4625 | 
4626 |     synchronization: NotRequired["TextDocumentSyncClientCapabilities"]
4627 |     """ Defines which synchronization capabilities the client supports. """
4628 |     completion: NotRequired["CompletionClientCapabilities"]
4629 |     """ Capabilities specific to the `textDocument/completion` request. """
4630 |     hover: NotRequired["HoverClientCapabilities"]
4631 |     """ Capabilities specific to the `textDocument/hover` request. """
4632 |     signatureHelp: NotRequired["SignatureHelpClientCapabilities"]
4633 |     """ Capabilities specific to the `textDocument/signatureHelp` request. """
4634 |     declaration: NotRequired["DeclarationClientCapabilities"]
4635 |     """ Capabilities specific to the `textDocument/declaration` request.
4636 | 
4637 |     @since 3.14.0 """
4638 |     definition: NotRequired["DefinitionClientCapabilities"]
4639 |     """ Capabilities specific to the `textDocument/definition` request. """
4640 |     typeDefinition: NotRequired["TypeDefinitionClientCapabilities"]
4641 |     """ Capabilities specific to the `textDocument/typeDefinition` request.
4642 | 
4643 |     @since 3.6.0 """
4644 |     implementation: NotRequired["ImplementationClientCapabilities"]
4645 |     """ Capabilities specific to the `textDocument/implementation` request.
4646 | 
4647 |     @since 3.6.0 """
4648 |     references: NotRequired["ReferenceClientCapabilities"]
4649 |     """ Capabilities specific to the `textDocument/references` request. """
4650 |     documentHighlight: NotRequired["DocumentHighlightClientCapabilities"]
4651 |     """ Capabilities specific to the `textDocument/documentHighlight` request. """
4652 |     documentSymbol: NotRequired["DocumentSymbolClientCapabilities"]
4653 |     """ Capabilities specific to the `textDocument/documentSymbol` request. """
4654 |     codeAction: NotRequired["CodeActionClientCapabilities"]
4655 |     """ Capabilities specific to the `textDocument/codeAction` request. """
4656 |     codeLens: NotRequired["CodeLensClientCapabilities"]
4657 |     """ Capabilities specific to the `textDocument/codeLens` request. """
4658 |     documentLink: NotRequired["DocumentLinkClientCapabilities"]
4659 |     """ Capabilities specific to the `textDocument/documentLink` request. """
4660 |     colorProvider: NotRequired["DocumentColorClientCapabilities"]
4661 |     """ Capabilities specific to the `textDocument/documentColor` and the
4662 |     `textDocument/colorPresentation` request.
4663 | 
4664 |     @since 3.6.0 """
4665 |     formatting: NotRequired["DocumentFormattingClientCapabilities"]
4666 |     """ Capabilities specific to the `textDocument/formatting` request. """
4667 |     rangeFormatting: NotRequired["DocumentRangeFormattingClientCapabilities"]
4668 |     """ Capabilities specific to the `textDocument/rangeFormatting` request. """
4669 |     onTypeFormatting: NotRequired["DocumentOnTypeFormattingClientCapabilities"]
4670 |     """ Capabilities specific to the `textDocument/onTypeFormatting` request. """
4671 |     rename: NotRequired["RenameClientCapabilities"]
4672 |     """ Capabilities specific to the `textDocument/rename` request. """
4673 |     foldingRange: NotRequired["FoldingRangeClientCapabilities"]
4674 |     """ Capabilities specific to the `textDocument/foldingRange` request.
4675 | 
4676 |     @since 3.10.0 """
4677 |     selectionRange: NotRequired["SelectionRangeClientCapabilities"]
4678 |     """ Capabilities specific to the `textDocument/selectionRange` request.
4679 | 
4680 |     @since 3.15.0 """
4681 |     publishDiagnostics: NotRequired["PublishDiagnosticsClientCapabilities"]
4682 |     """ Capabilities specific to the `textDocument/publishDiagnostics` notification. """
4683 |     callHierarchy: NotRequired["CallHierarchyClientCapabilities"]
4684 |     """ Capabilities specific to the various call hierarchy requests.
4685 | 
4686 |     @since 3.16.0 """
4687 |     semanticTokens: NotRequired["SemanticTokensClientCapabilities"]
4688 |     """ Capabilities specific to the various semantic token request.
4689 | 
4690 |     @since 3.16.0 """
4691 |     linkedEditingRange: NotRequired["LinkedEditingRangeClientCapabilities"]
4692 |     """ Capabilities specific to the `textDocument/linkedEditingRange` request.
4693 | 
4694 |     @since 3.16.0 """
4695 |     moniker: NotRequired["MonikerClientCapabilities"]
4696 |     """ Client capabilities specific to the `textDocument/moniker` request.
4697 | 
4698 |     @since 3.16.0 """
4699 |     typeHierarchy: NotRequired["TypeHierarchyClientCapabilities"]
4700 |     """ Capabilities specific to the various type hierarchy requests.
4701 | 
4702 |     @since 3.17.0 """
4703 |     inlineValue: NotRequired["InlineValueClientCapabilities"]
4704 |     """ Capabilities specific to the `textDocument/inlineValue` request.
4705 | 
4706 |     @since 3.17.0 """
4707 |     inlayHint: NotRequired["InlayHintClientCapabilities"]
4708 |     """ Capabilities specific to the `textDocument/inlayHint` request.
4709 | 
4710 |     @since 3.17.0 """
4711 |     diagnostic: NotRequired["DiagnosticClientCapabilities"]
4712 |     """ Capabilities specific to the diagnostic pull model.
4713 | 
4714 |     @since 3.17.0 """
4715 | 
4716 | 
4717 | class NotebookDocumentClientCapabilities(TypedDict):
4718 |     """Capabilities specific to the notebook document support.
4719 | 
4720 |     @since 3.17.0
4721 |     """
4722 | 
4723 |     synchronization: "NotebookDocumentSyncClientCapabilities"
4724 |     """ Capabilities specific to notebook document synchronization
4725 | 
4726 |     @since 3.17.0 """
4727 | 
4728 | 
4729 | class WindowClientCapabilities(TypedDict):
4730 |     workDoneProgress: NotRequired[bool]
4731 |     """ It indicates whether the client supports server initiated
4732 |     progress using the `window/workDoneProgress/create` request.
4733 | 
4734 |     The capability also controls Whether client supports handling
4735 |     of progress notifications. If set servers are allowed to report a
4736 |     `workDoneProgress` property in the request specific server
4737 |     capabilities.
4738 | 
4739 |     @since 3.15.0 """
4740 |     showMessage: NotRequired["ShowMessageRequestClientCapabilities"]
4741 |     """ Capabilities specific to the showMessage request.
4742 | 
4743 |     @since 3.16.0 """
4744 |     showDocument: NotRequired["ShowDocumentClientCapabilities"]
4745 |     """ Capabilities specific to the showDocument request.
4746 | 
4747 |     @since 3.16.0 """
4748 | 
4749 | 
4750 | class GeneralClientCapabilities(TypedDict):
4751 |     """General client capabilities.
4752 | 
4753 |     @since 3.16.0
4754 |     """
4755 | 
4756 |     staleRequestSupport: NotRequired["__GeneralClientCapabilities_staleRequestSupport_Type_1"]
4757 |     """ Client capability that signals how the client
4758 |     handles stale requests (e.g. a request
4759 |     for which the client will not process the response
4760 |     anymore since the information is outdated).
4761 | 
4762 |     @since 3.17.0 """
4763 |     regularExpressions: NotRequired["RegularExpressionsClientCapabilities"]
4764 |     """ Client capabilities specific to regular expressions.
4765 | 
4766 |     @since 3.16.0 """
4767 |     markdown: NotRequired["MarkdownClientCapabilities"]
4768 |     """ Client capabilities specific to the client's markdown parser.
4769 | 
4770 |     @since 3.16.0 """
4771 |     positionEncodings: NotRequired[list["PositionEncodingKind"]]
4772 |     """ The position encodings supported by the client. Client and server
4773 |     have to agree on the same position encoding to ensure that offsets
4774 |     (e.g. character position in a line) are interpreted the same on both
4775 |     sides.
4776 | 
4777 |     To keep the protocol backwards compatible the following applies: if
4778 |     the value 'utf-16' is missing from the array of position encodings
4779 |     servers can assume that the client supports UTF-16. UTF-16 is
4780 |     therefore a mandatory encoding.
4781 | 
4782 |     If omitted it defaults to ['utf-16'].
4783 | 
4784 |     Implementation considerations: since the conversion from one encoding
4785 |     into another requires the content of the file / line the conversion
4786 |     is best done where the file is read which is usually on the server
4787 |     side.
4788 | 
4789 |     @since 3.17.0 """
4790 | 
4791 | 
4792 | class RelativePattern(TypedDict):
4793 |     """A relative pattern is a helper to construct glob patterns that are matched
4794 |     relatively to a base URI. The common value for a `baseUri` is a workspace
4795 |     folder root, but it can be another absolute URI as well.
4796 | 
4797 |     @since 3.17.0
4798 |     """
4799 | 
4800 |     baseUri: Union["WorkspaceFolder", "URI"]
4801 |     """ A workspace folder or a base URI to which this pattern will be matched
4802 |     against relatively. """
4803 |     pattern: "Pattern"
4804 |     """ The actual glob pattern; """
4805 | 
4806 | 
4807 | class WorkspaceEditClientCapabilities(TypedDict):
4808 |     documentChanges: NotRequired[bool]
4809 |     """ The client supports versioned document changes in `WorkspaceEdit`s """
4810 |     resourceOperations: NotRequired[list["ResourceOperationKind"]]
4811 |     """ The resource operations the client supports. Clients should at least
4812 |     support 'create', 'rename' and 'delete' files and folders.
4813 | 
4814 |     @since 3.13.0 """
4815 |     failureHandling: NotRequired["FailureHandlingKind"]
4816 |     """ The failure handling strategy of a client if applying the workspace edit
4817 |     fails.
4818 | 
4819 |     @since 3.13.0 """
4820 |     normalizesLineEndings: NotRequired[bool]
4821 |     """ Whether the client normalizes line endings to the client specific
4822 |     setting.
4823 |     If set to `true` the client will normalize line ending characters
4824 |     in a workspace edit to the client-specified new line
4825 |     character.
4826 | 
4827 |     @since 3.16.0 """
4828 |     changeAnnotationSupport: NotRequired["__WorkspaceEditClientCapabilities_changeAnnotationSupport_Type_1"]
4829 |     """ Whether the client in general supports change annotations on text edits,
4830 |     create file, rename file and delete file changes.
4831 | 
4832 |     @since 3.16.0 """
4833 | 
4834 | 
4835 | class DidChangeConfigurationClientCapabilities(TypedDict):
4836 |     dynamicRegistration: NotRequired[bool]
4837 |     """ Did change configuration notification supports dynamic registration. """
4838 | 
4839 | 
4840 | class DidChangeWatchedFilesClientCapabilities(TypedDict):
4841 |     dynamicRegistration: NotRequired[bool]
4842 |     """ Did change watched files notification supports dynamic registration. Please note
4843 |     that the current protocol doesn't support static configuration for file changes
4844 |     from the server side. """
4845 |     relativePatternSupport: NotRequired[bool]
4846 |     """ Whether the client has support for {@link  RelativePattern relative pattern}
4847 |     or not.
4848 | 
4849 |     @since 3.17.0 """
4850 | 
4851 | 
4852 | class WorkspaceSymbolClientCapabilities(TypedDict):
4853 |     """Client capabilities for a {@link WorkspaceSymbolRequest}."""
4854 | 
4855 |     dynamicRegistration: NotRequired[bool]
4856 |     """ Symbol request supports dynamic registration. """
4857 |     symbolKind: NotRequired["__WorkspaceSymbolClientCapabilities_symbolKind_Type_1"]
4858 |     """ Specific capabilities for the `SymbolKind` in the `workspace/symbol` request. """
4859 |     tagSupport: NotRequired["__WorkspaceSymbolClientCapabilities_tagSupport_Type_1"]
4860 |     """ The client supports tags on `SymbolInformation`.
4861 |     Clients supporting tags have to handle unknown tags gracefully.
4862 | 
4863 |     @since 3.16.0 """
4864 |     resolveSupport: NotRequired["__WorkspaceSymbolClientCapabilities_resolveSupport_Type_1"]
4865 |     """ The client support partial workspace symbols. The client will send the
4866 |     request `workspaceSymbol/resolve` to the server to resolve additional
4867 |     properties.
4868 | 
4869 |     @since 3.17.0 """
4870 | 
4871 | 
4872 | class ExecuteCommandClientCapabilities(TypedDict):
4873 |     """The client capabilities of a {@link ExecuteCommandRequest}."""
4874 | 
4875 |     dynamicRegistration: NotRequired[bool]
4876 |     """ Execute command supports dynamic registration. """
4877 | 
4878 | 
4879 | class SemanticTokensWorkspaceClientCapabilities(TypedDict):
4880 |     """@since 3.16.0"""
4881 | 
4882 |     refreshSupport: NotRequired[bool]
4883 |     """ Whether the client implementation supports a refresh request sent from
4884 |     the server to the client.
4885 | 
4886 |     Note that this event is global and will force the client to refresh all
4887 |     semantic tokens currently shown. It should be used with absolute care
4888 |     and is useful for situation where a server for example detects a project
4889 |     wide change that requires such a calculation. """
4890 | 
4891 | 
4892 | class CodeLensWorkspaceClientCapabilities(TypedDict):
4893 |     """@since 3.16.0"""
4894 | 
4895 |     refreshSupport: NotRequired[bool]
4896 |     """ Whether the client implementation supports a refresh request sent from the
4897 |     server to the client.
4898 | 
4899 |     Note that this event is global and will force the client to refresh all
4900 |     code lenses currently shown. It should be used with absolute care and is
4901 |     useful for situation where a server for example detect a project wide
4902 |     change that requires such a calculation. """
4903 | 
4904 | 
4905 | class FileOperationClientCapabilities(TypedDict):
4906 |     """Capabilities relating to events from file operations by the user in the client.
4907 | 
4908 |     These events do not come from the file system, they come from user operations
4909 |     like renaming a file in the UI.
4910 | 
4911 |     @since 3.16.0
4912 |     """
4913 | 
4914 |     dynamicRegistration: NotRequired[bool]
4915 |     """ Whether the client supports dynamic registration for file requests/notifications. """
4916 |     didCreate: NotRequired[bool]
4917 |     """ The client has support for sending didCreateFiles notifications. """
4918 |     willCreate: NotRequired[bool]
4919 |     """ The client has support for sending willCreateFiles requests. """
4920 |     didRename: NotRequired[bool]
4921 |     """ The client has support for sending didRenameFiles notifications. """
4922 |     willRename: NotRequired[bool]
4923 |     """ The client has support for sending willRenameFiles requests. """
4924 |     didDelete: NotRequired[bool]
4925 |     """ The client has support for sending didDeleteFiles notifications. """
4926 |     willDelete: NotRequired[bool]
4927 |     """ The client has support for sending willDeleteFiles requests. """
4928 | 
4929 | 
4930 | class InlineValueWorkspaceClientCapabilities(TypedDict):
4931 |     """Client workspace capabilities specific to inline values.
4932 | 
4933 |     @since 3.17.0
4934 |     """
4935 | 
4936 |     refreshSupport: NotRequired[bool]
4937 |     """ Whether the client implementation supports a refresh request sent from the
4938 |     server to the client.
4939 | 
4940 |     Note that this event is global and will force the client to refresh all
4941 |     inline values currently shown. It should be used with absolute care and is
4942 |     useful for situation where a server for example detects a project wide
4943 |     change that requires such a calculation. """
4944 | 
4945 | 
4946 | class InlayHintWorkspaceClientCapabilities(TypedDict):
4947 |     """Client workspace capabilities specific to inlay hints.
4948 | 
4949 |     @since 3.17.0
4950 |     """
4951 | 
4952 |     refreshSupport: NotRequired[bool]
4953 |     """ Whether the client implementation supports a refresh request sent from
4954 |     the server to the client.
4955 | 
4956 |     Note that this event is global and will force the client to refresh all
4957 |     inlay hints currently shown. It should be used with absolute care and
4958 |     is useful for situation where a server for example detects a project wide
4959 |     change that requires such a calculation. """
4960 | 
4961 | 
4962 | class DiagnosticWorkspaceClientCapabilities(TypedDict):
4963 |     """Workspace client capabilities specific to diagnostic pull requests.
4964 | 
4965 |     @since 3.17.0
4966 |     """
4967 | 
4968 |     refreshSupport: NotRequired[bool]
4969 |     """ Whether the client implementation supports a refresh request sent from
4970 |     the server to the client.
4971 | 
4972 |     Note that this event is global and will force the client to refresh all
4973 |     pulled diagnostics currently shown. It should be used with absolute care and
4974 |     is useful for situation where a server for example detects a project wide
4975 |     change that requires such a calculation. """
4976 | 
4977 | 
4978 | class TextDocumentSyncClientCapabilities(TypedDict):
4979 |     dynamicRegistration: NotRequired[bool]
4980 |     """ Whether text document synchronization supports dynamic registration. """
4981 |     willSave: NotRequired[bool]
4982 |     """ The client supports sending will save notifications. """
4983 |     willSaveWaitUntil: NotRequired[bool]
4984 |     """ The client supports sending a will save request and
4985 |     waits for a response providing text edits which will
4986 |     be applied to the document before it is saved. """
4987 |     didSave: NotRequired[bool]
4988 |     """ The client supports did save notifications. """
4989 | 
4990 | 
4991 | class CompletionClientCapabilities(TypedDict):
4992 |     """Completion client capabilities"""
4993 | 
4994 |     dynamicRegistration: NotRequired[bool]
4995 |     """ Whether completion supports dynamic registration. """
4996 |     completionItem: NotRequired["__CompletionClientCapabilities_completionItem_Type_1"]
4997 |     """ The client supports the following `CompletionItem` specific
4998 |     capabilities. """
4999 |     completionItemKind: NotRequired["__CompletionClientCapabilities_completionItemKind_Type_1"]
5000 |     insertTextMode: NotRequired["InsertTextMode"]
5001 |     """ Defines how the client handles whitespace and indentation
5002 |     when accepting a completion item that uses multi line
5003 |     text in either `insertText` or `textEdit`.
5004 | 
5005 |     @since 3.17.0 """
5006 |     contextSupport: NotRequired[bool]
5007 |     """ The client supports to send additional context information for a
5008 |     `textDocument/completion` request. """
5009 |     completionList: NotRequired["__CompletionClientCapabilities_completionList_Type_1"]
5010 |     """ The client supports the following `CompletionList` specific
5011 |     capabilities.
5012 | 
5013 |     @since 3.17.0 """
5014 | 
5015 | 
5016 | class HoverClientCapabilities(TypedDict):
5017 |     dynamicRegistration: NotRequired[bool]
5018 |     """ Whether hover supports dynamic registration. """
5019 |     contentFormat: NotRequired[list["MarkupKind"]]
5020 |     """ Client supports the following content formats for the content
5021 |     property. The order describes the preferred format of the client. """
5022 | 
5023 | 
5024 | class SignatureHelpClientCapabilities(TypedDict):
5025 |     """Client Capabilities for a {@link SignatureHelpRequest}."""
5026 | 
5027 |     dynamicRegistration: NotRequired[bool]
5028 |     """ Whether signature help supports dynamic registration. """
5029 |     signatureInformation: NotRequired["__SignatureHelpClientCapabilities_signatureInformation_Type_1"]
5030 |     """ The client supports the following `SignatureInformation`
5031 |     specific properties. """
5032 |     contextSupport: NotRequired[bool]
5033 |     """ The client supports to send additional context information for a
5034 |     `textDocument/signatureHelp` request. A client that opts into
5035 |     contextSupport will also support the `retriggerCharacters` on
5036 |     `SignatureHelpOptions`.
5037 | 
5038 |     @since 3.15.0 """
5039 | 
5040 | 
5041 | class DeclarationClientCapabilities(TypedDict):
5042 |     """@since 3.14.0"""
5043 | 
5044 |     dynamicRegistration: NotRequired[bool]
5045 |     """ Whether declaration supports dynamic registration. If this is set to `true`
5046 |     the client supports the new `DeclarationRegistrationOptions` return value
5047 |     for the corresponding server capability as well. """
5048 |     linkSupport: NotRequired[bool]
5049 |     """ The client supports additional metadata in the form of declaration links. """
5050 | 
5051 | 
5052 | class DefinitionClientCapabilities(TypedDict):
5053 |     """Client Capabilities for a {@link DefinitionRequest}."""
5054 | 
5055 |     dynamicRegistration: NotRequired[bool]
5056 |     """ Whether definition supports dynamic registration. """
5057 |     linkSupport: NotRequired[bool]
5058 |     """ The client supports additional metadata in the form of definition links.
5059 | 
5060 |     @since 3.14.0 """
5061 | 
5062 | 
5063 | class TypeDefinitionClientCapabilities(TypedDict):
5064 |     """Since 3.6.0"""
5065 | 
5066 |     dynamicRegistration: NotRequired[bool]
5067 |     """ Whether implementation supports dynamic registration. If this is set to `true`
5068 |     the client supports the new `TypeDefinitionRegistrationOptions` return value
5069 |     for the corresponding server capability as well. """
5070 |     linkSupport: NotRequired[bool]
5071 |     """ The client supports additional metadata in the form of definition links.
5072 | 
5073 |     Since 3.14.0 """
5074 | 
5075 | 
5076 | class ImplementationClientCapabilities(TypedDict):
5077 |     """@since 3.6.0"""
5078 | 
5079 |     dynamicRegistration: NotRequired[bool]
5080 |     """ Whether implementation supports dynamic registration. If this is set to `true`
5081 |     the client supports the new `ImplementationRegistrationOptions` return value
5082 |     for the corresponding server capability as well. """
5083 |     linkSupport: NotRequired[bool]
5084 |     """ The client supports additional metadata in the form of definition links.
5085 | 
5086 |     @since 3.14.0 """
5087 | 
5088 | 
5089 | class ReferenceClientCapabilities(TypedDict):
5090 |     """Client Capabilities for a {@link ReferencesRequest}."""
5091 | 
5092 |     dynamicRegistration: NotRequired[bool]
5093 |     """ Whether references supports dynamic registration. """
5094 | 
5095 | 
5096 | class DocumentHighlightClientCapabilities(TypedDict):
5097 |     """Client Capabilities for a {@link DocumentHighlightRequest}."""
5098 | 
5099 |     dynamicRegistration: NotRequired[bool]
5100 |     """ Whether document highlight supports dynamic registration. """
5101 | 
5102 | 
5103 | class DocumentSymbolClientCapabilities(TypedDict):
5104 |     """Client Capabilities for a {@link DocumentSymbolRequest}."""
5105 | 
5106 |     dynamicRegistration: NotRequired[bool]
5107 |     """ Whether document symbol supports dynamic registration. """
5108 |     symbolKind: NotRequired["__DocumentSymbolClientCapabilities_symbolKind_Type_1"]
5109 |     """ Specific capabilities for the `SymbolKind` in the
5110 |     `textDocument/documentSymbol` request. """
5111 |     hierarchicalDocumentSymbolSupport: NotRequired[bool]
5112 |     """ The client supports hierarchical document symbols. """
5113 |     tagSupport: NotRequired["__DocumentSymbolClientCapabilities_tagSupport_Type_1"]
5114 |     """ The client supports tags on `SymbolInformation`. Tags are supported on
5115 |     `DocumentSymbol` if `hierarchicalDocumentSymbolSupport` is set to true.
5116 |     Clients supporting tags have to handle unknown tags gracefully.
5117 | 
5118 |     @since 3.16.0 """
5119 |     labelSupport: NotRequired[bool]
5120 |     """ The client supports an additional label presented in the UI when
5121 |     registering a document symbol provider.
5122 | 
5123 |     @since 3.16.0 """
5124 | 
5125 | 
5126 | class CodeActionClientCapabilities(TypedDict):
5127 |     """The Client Capabilities of a {@link CodeActionRequest}."""
5128 | 
5129 |     dynamicRegistration: NotRequired[bool]
5130 |     """ Whether code action supports dynamic registration. """
5131 |     codeActionLiteralSupport: NotRequired["__CodeActionClientCapabilities_codeActionLiteralSupport_Type_1"]
5132 |     """ The client support code action literals of type `CodeAction` as a valid
5133 |     response of the `textDocument/codeAction` request. If the property is not
5134 |     set the request can only return `Command` literals.
5135 | 
5136 |     @since 3.8.0 """
5137 |     isPreferredSupport: NotRequired[bool]
5138 |     """ Whether code action supports the `isPreferred` property.
5139 | 
5140 |     @since 3.15.0 """
5141 |     disabledSupport: NotRequired[bool]
5142 |     """ Whether code action supports the `disabled` property.
5143 | 
5144 |     @since 3.16.0 """
5145 |     dataSupport: NotRequired[bool]
5146 |     """ Whether code action supports the `data` property which is
5147 |     preserved between a `textDocument/codeAction` and a
5148 |     `codeAction/resolve` request.
5149 | 
5150 |     @since 3.16.0 """
5151 |     resolveSupport: NotRequired["__CodeActionClientCapabilities_resolveSupport_Type_1"]
5152 |     """ Whether the client supports resolving additional code action
5153 |     properties via a separate `codeAction/resolve` request.
5154 | 
5155 |     @since 3.16.0 """
5156 |     honorsChangeAnnotations: NotRequired[bool]
5157 |     """ Whether the client honors the change annotations in
5158 |     text edits and resource operations returned via the
5159 |     `CodeAction#edit` property by for example presenting
5160 |     the workspace edit in the user interface and asking
5161 |     for confirmation.
5162 | 
5163 |     @since 3.16.0 """
5164 | 
5165 | 
5166 | class CodeLensClientCapabilities(TypedDict):
5167 |     """The client capabilities  of a {@link CodeLensRequest}."""
5168 | 
5169 |     dynamicRegistration: NotRequired[bool]
5170 |     """ Whether code lens supports dynamic registration. """
5171 | 
5172 | 
5173 | class DocumentLinkClientCapabilities(TypedDict):
5174 |     """The client capabilities of a {@link DocumentLinkRequest}."""
5175 | 
5176 |     dynamicRegistration: NotRequired[bool]
5177 |     """ Whether document link supports dynamic registration. """
5178 |     tooltipSupport: NotRequired[bool]
5179 |     """ Whether the client supports the `tooltip` property on `DocumentLink`.
5180 | 
5181 |     @since 3.15.0 """
5182 | 
5183 | 
5184 | class DocumentColorClientCapabilities(TypedDict):
5185 |     dynamicRegistration: NotRequired[bool]
5186 |     """ Whether implementation supports dynamic registration. If this is set to `true`
5187 |     the client supports the new `DocumentColorRegistrationOptions` return value
5188 |     for the corresponding server capability as well. """
5189 | 
5190 | 
5191 | class DocumentFormattingClientCapabilities(TypedDict):
5192 |     """Client capabilities of a {@link DocumentFormattingRequest}."""
5193 | 
5194 |     dynamicRegistration: NotRequired[bool]
5195 |     """ Whether formatting supports dynamic registration. """
5196 | 
5197 | 
5198 | class DocumentRangeFormattingClientCapabilities(TypedDict):
5199 |     """Client capabilities of a {@link DocumentRangeFormattingRequest}."""
5200 | 
5201 |     dynamicRegistration: NotRequired[bool]
5202 |     """ Whether range formatting supports dynamic registration. """
5203 | 
5204 | 
5205 | class DocumentOnTypeFormattingClientCapabilities(TypedDict):
5206 |     """Client capabilities of a {@link DocumentOnTypeFormattingRequest}."""
5207 | 
5208 |     dynamicRegistration: NotRequired[bool]
5209 |     """ Whether on type formatting supports dynamic registration. """
5210 | 
5211 | 
5212 | class RenameClientCapabilities(TypedDict):
5213 |     dynamicRegistration: NotRequired[bool]
5214 |     """ Whether rename supports dynamic registration. """
5215 |     prepareSupport: NotRequired[bool]
5216 |     """ Client supports testing for validity of rename operations
5217 |     before execution.
5218 | 
5219 |     @since 3.12.0 """
5220 |     prepareSupportDefaultBehavior: NotRequired["PrepareSupportDefaultBehavior"]
5221 |     """ Client supports the default behavior result.
5222 | 
5223 |     The value indicates the default behavior used by the
5224 |     client.
5225 | 
5226 |     @since 3.16.0 """
5227 |     honorsChangeAnnotations: NotRequired[bool]
5228 |     """ Whether the client honors the change annotations in
5229 |     text edits and resource operations returned via the
5230 |     rename request's workspace edit by for example presenting
5231 |     the workspace edit in the user interface and asking
5232 |     for confirmation.
5233 | 
5234 |     @since 3.16.0 """
5235 | 
5236 | 
5237 | class FoldingRangeClientCapabilities(TypedDict):
5238 |     dynamicRegistration: NotRequired[bool]
5239 |     """ Whether implementation supports dynamic registration for folding range
5240 |     providers. If this is set to `true` the client supports the new
5241 |     `FoldingRangeRegistrationOptions` return value for the corresponding
5242 |     server capability as well. """
5243 |     rangeLimit: NotRequired[Uint]
5244 |     """ The maximum number of folding ranges that the client prefers to receive
5245 |     per document. The value serves as a hint, servers are free to follow the
5246 |     limit. """
5247 |     lineFoldingOnly: NotRequired[bool]
5248 |     """ If set, the client signals that it only supports folding complete lines.
5249 |     If set, client will ignore specified `startCharacter` and `endCharacter`
5250 |     properties in a FoldingRange. """
5251 |     foldingRangeKind: NotRequired["__FoldingRangeClientCapabilities_foldingRangeKind_Type_1"]
5252 |     """ Specific options for the folding range kind.
5253 | 
5254 |     @since 3.17.0 """
5255 |     foldingRange: NotRequired["__FoldingRangeClientCapabilities_foldingRange_Type_1"]
5256 |     """ Specific options for the folding range.
5257 | 
5258 |     @since 3.17.0 """
5259 | 
5260 | 
5261 | class SelectionRangeClientCapabilities(TypedDict):
5262 |     dynamicRegistration: NotRequired[bool]
5263 |     """ Whether implementation supports dynamic registration for selection range providers. If this is set to `true`
5264 |     the client supports the new `SelectionRangeRegistrationOptions` return value for the corresponding server
5265 |     capability as well. """
5266 | 
5267 | 
5268 | class PublishDiagnosticsClientCapabilities(TypedDict):
5269 |     """The publish diagnostic client capabilities."""
5270 | 
5271 |     relatedInformation: NotRequired[bool]
5272 |     """ Whether the clients accepts diagnostics with related information. """
5273 |     tagSupport: NotRequired["__PublishDiagnosticsClientCapabilities_tagSupport_Type_1"]
5274 |     """ Client supports the tag property to provide meta data about a diagnostic.
5275 |     Clients supporting tags have to handle unknown tags gracefully.
5276 | 
5277 |     @since 3.15.0 """
5278 |     versionSupport: NotRequired[bool]
5279 |     """ Whether the client interprets the version property of the
5280 |     `textDocument/publishDiagnostics` notification's parameter.
5281 | 
5282 |     @since 3.15.0 """
5283 |     codeDescriptionSupport: NotRequired[bool]
5284 |     """ Client supports a codeDescription property
5285 | 
5286 |     @since 3.16.0 """
5287 |     dataSupport: NotRequired[bool]
5288 |     """ Whether code action supports the `data` property which is
5289 |     preserved between a `textDocument/publishDiagnostics` and
5290 |     `textDocument/codeAction` request.
5291 | 
5292 |     @since 3.16.0 """
5293 | 
5294 | 
5295 | class CallHierarchyClientCapabilities(TypedDict):
5296 |     """@since 3.16.0"""
5297 | 
5298 |     dynamicRegistration: NotRequired[bool]
5299 |     """ Whether implementation supports dynamic registration. If this is set to `true`
5300 |     the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
5301 |     return value for the corresponding server capability as well. """
5302 | 
5303 | 
5304 | class SemanticTokensClientCapabilities(TypedDict):
5305 |     """@since 3.16.0"""
5306 | 
5307 |     dynamicRegistration: NotRequired[bool]
5308 |     """ Whether implementation supports dynamic registration. If this is set to `true`
5309 |     the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
5310 |     return value for the corresponding server capability as well. """
5311 |     requests: "__SemanticTokensClientCapabilities_requests_Type_1"
5312 |     """ Which requests the client supports and might send to the server
5313 |     depending on the server's capability. Please note that clients might not
5314 |     show semantic tokens or degrade some of the user experience if a range
5315 |     or full request is advertised by the client but not provided by the
5316 |     server. If for example the client capability `requests.full` and
5317 |     `request.range` are both set to true but the server only provides a
5318 |     range provider the client might not render a minimap correctly or might
5319 |     even decide to not show any semantic tokens at all. """
5320 |     tokenTypes: list[str]
5321 |     """ The token types that the client supports. """
5322 |     tokenModifiers: list[str]
5323 |     """ The token modifiers that the client supports. """
5324 |     formats: list["TokenFormat"]
5325 |     """ The token formats the clients supports. """
5326 |     overlappingTokenSupport: NotRequired[bool]
5327 |     """ Whether the client supports tokens that can overlap each other. """
5328 |     multilineTokenSupport: NotRequired[bool]
5329 |     """ Whether the client supports tokens that can span multiple lines. """
5330 |     serverCancelSupport: NotRequired[bool]
5331 |     """ Whether the client allows the server to actively cancel a
5332 |     semantic token request, e.g. supports returning
5333 |     LSPErrorCodes.ServerCancelled. If a server does the client
5334 |     needs to retrigger the request.
5335 | 
5336 |     @since 3.17.0 """
5337 |     augmentsSyntaxTokens: NotRequired[bool]
5338 |     """ Whether the client uses semantic tokens to augment existing
5339 |     syntax tokens. If set to `true` client side created syntax
5340 |     tokens and semantic tokens are both used for colorization. If
5341 |     set to `false` the client only uses the returned semantic tokens
5342 |     for colorization.
5343 | 
5344 |     If the value is `undefined` then the client behavior is not
5345 |     specified.
5346 | 
5347 |     @since 3.17.0 """
5348 | 
5349 | 
5350 | class LinkedEditingRangeClientCapabilities(TypedDict):
5351 |     """Client capabilities for the linked editing range request.
5352 | 
5353 |     @since 3.16.0
5354 |     """
5355 | 
5356 |     dynamicRegistration: NotRequired[bool]
5357 |     """ Whether implementation supports dynamic registration. If this is set to `true`
5358 |     the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
5359 |     return value for the corresponding server capability as well. """
5360 | 
5361 | 
5362 | class MonikerClientCapabilities(TypedDict):
5363 |     """Client capabilities specific to the moniker request.
5364 | 
5365 |     @since 3.16.0
5366 |     """
5367 | 
5368 |     dynamicRegistration: NotRequired[bool]
5369 |     """ Whether moniker supports dynamic registration. If this is set to `true`
5370 |     the client supports the new `MonikerRegistrationOptions` return value
5371 |     for the corresponding server capability as well. """
5372 | 
5373 | 
5374 | class TypeHierarchyClientCapabilities(TypedDict):
5375 |     """@since 3.17.0"""
5376 | 
5377 |     dynamicRegistration: NotRequired[bool]
5378 |     """ Whether implementation supports dynamic registration. If this is set to `true`
5379 |     the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
5380 |     return value for the corresponding server capability as well. """
5381 | 
5382 | 
5383 | class InlineValueClientCapabilities(TypedDict):
5384 |     """Client capabilities specific to inline values.
5385 | 
5386 |     @since 3.17.0
5387 |     """
5388 | 
5389 |     dynamicRegistration: NotRequired[bool]
5390 |     """ Whether implementation supports dynamic registration for inline value providers. """
5391 | 
5392 | 
5393 | class InlayHintClientCapabilities(TypedDict):
5394 |     """Inlay hint client capabilities.
5395 | 
5396 |     @since 3.17.0
5397 |     """
5398 | 
5399 |     dynamicRegistration: NotRequired[bool]
5400 |     """ Whether inlay hints support dynamic registration. """
5401 |     resolveSupport: NotRequired["__InlayHintClientCapabilities_resolveSupport_Type_1"]
5402 |     """ Indicates which properties a client can resolve lazily on an inlay
5403 |     hint. """
5404 | 
5405 | 
5406 | class DiagnosticClientCapabilities(TypedDict):
5407 |     """Client capabilities specific to diagnostic pull requests.
5408 | 
5409 |     @since 3.17.0
5410 |     """
5411 | 
5412 |     dynamicRegistration: NotRequired[bool]
5413 |     """ Whether implementation supports dynamic registration. If this is set to `true`
5414 |     the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
5415 |     return value for the corresponding server capability as well. """
5416 |     relatedDocumentSupport: NotRequired[bool]
5417 |     """ Whether the clients supports related documents for document diagnostic pulls. """
5418 | 
5419 | 
5420 | class NotebookDocumentSyncClientCapabilities(TypedDict):
5421 |     """Notebook specific client capabilities.
5422 | 
5423 |     @since 3.17.0
5424 |     """
5425 | 
5426 |     dynamicRegistration: NotRequired[bool]
5427 |     """ Whether implementation supports dynamic registration. If this is
5428 |     set to `true` the client supports the new
5429 |     `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
5430 |     return value for the corresponding server capability as well. """
5431 |     executionSummarySupport: NotRequired[bool]
5432 |     """ The client supports sending execution summary data per cell. """
5433 | 
5434 | 
5435 | class ShowMessageRequestClientCapabilities(TypedDict):
5436 |     """Show message request client capabilities"""
5437 | 
5438 |     messageActionItem: NotRequired["__ShowMessageRequestClientCapabilities_messageActionItem_Type_1"]
5439 |     """ Capabilities specific to the `MessageActionItem` type. """
5440 | 
5441 | 
5442 | class ShowDocumentClientCapabilities(TypedDict):
5443 |     """Client capabilities for the showDocument request.
5444 | 
5445 |     @since 3.16.0
5446 |     """
5447 | 
5448 |     support: bool
5449 |     """ The client has support for the showDocument
5450 |     request. """
5451 | 
5452 | 
5453 | class RegularExpressionsClientCapabilities(TypedDict):
5454 |     """Client capabilities specific to regular expressions.
5455 | 
5456 |     @since 3.16.0
5457 |     """
5458 | 
5459 |     engine: str
5460 |     """ The engine's name. """
5461 |     version: NotRequired[str]
5462 |     """ The engine's version. """
5463 | 
5464 | 
5465 | class MarkdownClientCapabilities(TypedDict):
5466 |     """Client capabilities specific to the used markdown parser.
5467 | 
5468 |     @since 3.16.0
5469 |     """
5470 | 
5471 |     parser: str
5472 |     """ The name of the parser. """
5473 |     version: NotRequired[str]
5474 |     """ The version of the parser. """
5475 |     allowedTags: NotRequired[list[str]]
5476 |     """ A list of HTML tags that the client allows / supports in
5477 |     Markdown.
5478 | 
5479 |     @since 3.17.0 """
5480 | 
5481 | 
5482 | class __CodeActionClientCapabilities_codeActionLiteralSupport_Type_1(TypedDict):
5483 |     codeActionKind: "__CodeActionClientCapabilities_codeActionLiteralSupport_codeActionKind_Type_1"
5484 |     """ The code action kind is support with the following value
5485 |     set. """
5486 | 
5487 | 
5488 | class __CodeActionClientCapabilities_codeActionLiteralSupport_codeActionKind_Type_1(TypedDict):
5489 |     valueSet: list["CodeActionKind"]
5490 |     """ The code action kind values the client supports. When this
5491 |     property exists the client also guarantees that it will
5492 |     handle values outside its set gracefully and falls back
5493 |     to a default value when unknown. """
5494 | 
5495 | 
5496 | class __CodeActionClientCapabilities_resolveSupport_Type_1(TypedDict):
5497 |     properties: list[str]
5498 |     """ The properties that a client can resolve lazily. """
5499 | 
5500 | 
5501 | class __CodeAction_disabled_Type_1(TypedDict):
5502 |     reason: str
5503 |     """ Human readable description of why the code action is currently disabled.
5504 | 
5505 |     This is displayed in the code actions UI. """
5506 | 
5507 | 
5508 | class __CompletionClientCapabilities_completionItemKind_Type_1(TypedDict):
5509 |     valueSet: NotRequired[list["CompletionItemKind"]]
5510 |     """ The completion item kind values the client supports. When this
5511 |     property exists the client also guarantees that it will
5512 |     handle values outside its set gracefully and falls back
5513 |     to a default value when unknown.
5514 | 
5515 |     If this property is not present the client only supports
5516 |     the completion items kinds from `Text` to `Reference` as defined in
5517 |     the initial version of the protocol. """
5518 | 
5519 | 
5520 | class __CompletionClientCapabilities_completionItem_Type_1(TypedDict):
5521 |     snippetSupport: NotRequired[bool]
5522 |     """ Client supports snippets as insert text.
5523 | 
5524 |     A snippet can define tab stops and placeholders with `$1`, `$2`
5525 |     and `${3:foo}`. `$0` defines the final tab stop, it defaults to
5526 |     the end of the snippet. Placeholders with equal identifiers are linked,
5527 |     that is typing in one will update others too. """
5528 |     commitCharactersSupport: NotRequired[bool]
5529 |     """ Client supports commit characters on a completion item. """
5530 |     documentationFormat: NotRequired[list["MarkupKind"]]
5531 |     """ Client supports the following content formats for the documentation
5532 |     property. The order describes the preferred format of the client. """
5533 |     deprecatedSupport: NotRequired[bool]
5534 |     """ Client supports the deprecated property on a completion item. """
5535 |     preselectSupport: NotRequired[bool]
5536 |     """ Client supports the preselect property on a completion item. """
5537 |     tagSupport: NotRequired["__CompletionClientCapabilities_completionItem_tagSupport_Type_1"]
5538 |     """ Client supports the tag property on a completion item. Clients supporting
5539 |     tags have to handle unknown tags gracefully. Clients especially need to
5540 |     preserve unknown tags when sending a completion item back to the server in
5541 |     a resolve call.
5542 | 
5543 |     @since 3.15.0 """
5544 |     insertReplaceSupport: NotRequired[bool]
5545 |     """ Client support insert replace edit to control different behavior if a
5546 |     completion item is inserted in the text or should replace text.
5547 | 
5548 |     @since 3.16.0 """
5549 |     resolveSupport: NotRequired["__CompletionClientCapabilities_completionItem_resolveSupport_Type_1"]
5550 |     """ Indicates which properties a client can resolve lazily on a completion
5551 |     item. Before version 3.16.0 only the predefined properties `documentation`
5552 |     and `details` could be resolved lazily.
5553 | 
5554 |     @since 3.16.0 """
5555 |     insertTextModeSupport: NotRequired["__CompletionClientCapabilities_completionItem_insertTextModeSupport_Type_1"]
5556 |     """ The client supports the `insertTextMode` property on
5557 |     a completion item to override the whitespace handling mode
5558 |     as defined by the client (see `insertTextMode`).
5559 | 
5560 |     @since 3.16.0 """
5561 |     labelDetailsSupport: NotRequired[bool]
5562 |     """ The client has support for completion item label
5563 |     details (see also `CompletionItemLabelDetails`).
5564 | 
5565 |     @since 3.17.0 """
5566 | 
5567 | 
5568 | class __CompletionClientCapabilities_completionItem_insertTextModeSupport_Type_1(TypedDict):
5569 |     valueSet: list["InsertTextMode"]
5570 | 
5571 | 
5572 | class __CompletionClientCapabilities_completionItem_resolveSupport_Type_1(TypedDict):
5573 |     properties: list[str]
5574 |     """ The properties that a client can resolve lazily. """
5575 | 
5576 | 
5577 | class __CompletionClientCapabilities_completionItem_tagSupport_Type_1(TypedDict):
5578 |     valueSet: list["CompletionItemTag"]
5579 |     """ The tags supported by the client. """
5580 | 
5581 | 
5582 | class __CompletionClientCapabilities_completionList_Type_1(TypedDict):
5583 |     itemDefaults: NotRequired[list[str]]
5584 |     """ The client supports the following itemDefaults on
5585 |     a completion list.
5586 | 
5587 |     The value lists the supported property names of the
5588 |     `CompletionList.itemDefaults` object. If omitted
5589 |     no properties are supported.
5590 | 
5591 |     @since 3.17.0 """
5592 | 
5593 | 
5594 | class __CompletionList_itemDefaults_Type_1(TypedDict):
5595 |     commitCharacters: NotRequired[list[str]]
5596 |     """ A default commit character set.
5597 | 
5598 |     @since 3.17.0 """
5599 |     editRange: NotRequired[Union["Range", "__CompletionList_itemDefaults_editRange_Type_1"]]
5600 |     """ A default edit range.
5601 | 
5602 |     @since 3.17.0 """
5603 |     insertTextFormat: NotRequired["InsertTextFormat"]
5604 |     """ A default insert text format.
5605 | 
5606 |     @since 3.17.0 """
5607 |     insertTextMode: NotRequired["InsertTextMode"]
5608 |     """ A default insert text mode.
5609 | 
5610 |     @since 3.17.0 """
5611 |     data: NotRequired["LSPAny"]
5612 |     """ A default data value.
5613 | 
5614 |     @since 3.17.0 """
5615 | 
5616 | 
5617 | class __CompletionList_itemDefaults_editRange_Type_1(TypedDict):
5618 |     insert: "Range"
5619 |     replace: "Range"
5620 | 
5621 | 
5622 | class __CompletionOptions_completionItem_Type_1(TypedDict):
5623 |     labelDetailsSupport: NotRequired[bool]
5624 |     """ The server has support for completion item label
5625 |     details (see also `CompletionItemLabelDetails`) when
5626 |     receiving a completion item in a resolve call.
5627 | 
5628 |     @since 3.17.0 """
5629 | 
5630 | 
5631 | class __CompletionOptions_completionItem_Type_2(TypedDict):
5632 |     labelDetailsSupport: NotRequired[bool]
5633 |     """ The server has support for completion item label
5634 |     details (see also `CompletionItemLabelDetails`) when
5635 |     receiving a completion item in a resolve call.
5636 | 
5637 |     @since 3.17.0 """
5638 | 
5639 | 
5640 | class __DocumentSymbolClientCapabilities_symbolKind_Type_1(TypedDict):
5641 |     valueSet: NotRequired[list["SymbolKind"]]
5642 |     """ The symbol kind values the client supports. When this
5643 |     property exists the client also guarantees that it will
5644 |     handle values outside its set gracefully and falls back
5645 |     to a default value when unknown.
5646 | 
5647 |     If this property is not present the client only supports
5648 |     the symbol kinds from `File` to `Array` as defined in
5649 |     the initial version of the protocol. """
5650 | 
5651 | 
5652 | class __DocumentSymbolClientCapabilities_tagSupport_Type_1(TypedDict):
5653 |     valueSet: list["SymbolTag"]
5654 |     """ The tags supported by the client. """
5655 | 
5656 | 
5657 | class __FoldingRangeClientCapabilities_foldingRangeKind_Type_1(TypedDict):
5658 |     valueSet: NotRequired[list["FoldingRangeKind"]]
5659 |     """ The folding range kind values the client supports. When this
5660 |     property exists the client also guarantees that it will
5661 |     handle values outside its set gracefully and falls back
5662 |     to a default value when unknown. """
5663 | 
5664 | 
5665 | class __FoldingRangeClientCapabilities_foldingRange_Type_1(TypedDict):
5666 |     collapsedText: NotRequired[bool]
5667 |     """ If set, the client signals that it supports setting collapsedText on
5668 |     folding ranges to display custom labels instead of the default text.
5669 | 
5670 |     @since 3.17.0 """
5671 | 
5672 | 
5673 | class __GeneralClientCapabilities_staleRequestSupport_Type_1(TypedDict):
5674 |     cancel: bool
5675 |     """ The client will actively cancel the request. """
5676 |     retryOnContentModified: list[str]
5677 |     """ The list of requests for which the client
5678 |     will retry the request if it receives a
5679 |     response with error code `ContentModified` """
5680 | 
5681 | 
5682 | class __InitializeResult_serverInfo_Type_1(TypedDict):
5683 |     name: str
5684 |     """ The name of the server as defined by the server. """
5685 |     version: NotRequired[str]
5686 |     """ The server's version as defined by the server. """
5687 | 
5688 | 
5689 | class __InlayHintClientCapabilities_resolveSupport_Type_1(TypedDict):
5690 |     properties: list[str]
5691 |     """ The properties that a client can resolve lazily. """
5692 | 
5693 | 
5694 | class __MarkedString_Type_1(TypedDict):
5695 |     language: str
5696 |     value: str
5697 | 
5698 | 
5699 | class __NotebookDocumentChangeEvent_cells_Type_1(TypedDict):
5700 |     structure: NotRequired["__NotebookDocumentChangeEvent_cells_structure_Type_1"]
5701 |     """ Changes to the cell structure to add or
5702 |     remove cells. """
5703 |     data: NotRequired[list["NotebookCell"]]
5704 |     """ Changes to notebook cells properties like its
5705 |     kind, execution summary or metadata. """
5706 |     textContent: NotRequired[list["__NotebookDocumentChangeEvent_cells_textContent_Type_1"]]
5707 |     """ Changes to the text content of notebook cells. """
5708 | 
5709 | 
5710 | class __NotebookDocumentChangeEvent_cells_structure_Type_1(TypedDict):
5711 |     array: "NotebookCellArrayChange"
5712 |     """ The change to the cell array. """
5713 |     didOpen: NotRequired[list["TextDocumentItem"]]
5714 |     """ Additional opened cell text documents. """
5715 |     didClose: NotRequired[list["TextDocumentIdentifier"]]
5716 |     """ Additional closed cell text documents. """
5717 | 
5718 | 
5719 | class __NotebookDocumentChangeEvent_cells_textContent_Type_1(TypedDict):
5720 |     document: "VersionedTextDocumentIdentifier"
5721 |     changes: list["TextDocumentContentChangeEvent"]
5722 | 
5723 | 
5724 | class __NotebookDocumentFilter_Type_1(TypedDict):
5725 |     notebookType: str
5726 |     """ The type of the enclosing notebook. """
5727 |     scheme: NotRequired[str]
5728 |     """ A Uri {@link Uri.scheme scheme}, like `file` or `untitled`. """
5729 |     pattern: NotRequired[str]
5730 |     """ A glob pattern. """
5731 | 
5732 | 
5733 | class __NotebookDocumentFilter_Type_2(TypedDict):
5734 |     notebookType: NotRequired[str]
5735 |     """ The type of the enclosing notebook. """
5736 |     scheme: str
5737 |     """ A Uri {@link Uri.scheme scheme}, like `file` or `untitled`. """
5738 |     pattern: NotRequired[str]
5739 |     """ A glob pattern. """
5740 | 
5741 | 
5742 | class __NotebookDocumentFilter_Type_3(TypedDict):
5743 |     notebookType: NotRequired[str]
5744 |     """ The type of the enclosing notebook. """
5745 |     scheme: NotRequired[str]
5746 |     """ A Uri {@link Uri.scheme scheme}, like `file` or `untitled`. """
5747 |     pattern: str
5748 |     """ A glob pattern. """
5749 | 
5750 | 
5751 | class __NotebookDocumentSyncOptions_notebookSelector_Type_1(TypedDict):
5752 |     notebook: Union[str, "NotebookDocumentFilter"]
5753 |     """ The notebook to be synced If a string
5754 |     value is provided it matches against the
5755 |     notebook type. '*' matches every notebook. """
5756 |     cells: NotRequired[list["__NotebookDocumentSyncOptions_notebookSelector_cells_Type_1"]]
5757 |     """ The cells of the matching notebook to be synced. """
5758 | 
5759 | 
5760 | class __NotebookDocumentSyncOptions_notebookSelector_Type_2(TypedDict):
5761 |     notebook: NotRequired[Union[str, "NotebookDocumentFilter"]]
5762 |     """ The notebook to be synced If a string
5763 |     value is provided it matches against the
5764 |     notebook type. '*' matches every notebook. """
5765 |     cells: list["__NotebookDocumentSyncOptions_notebookSelector_cells_Type_2"]
5766 |     """ The cells of the matching notebook to be synced. """
5767 | 
5768 | 
5769 | class __NotebookDocumentSyncOptions_notebookSelector_Type_3(TypedDict):
5770 |     notebook: Union[str, "NotebookDocumentFilter"]
5771 |     """ The notebook to be synced If a string
5772 |     value is provided it matches against the
5773 |     notebook type. '*' matches every notebook. """
5774 |     cells: NotRequired[list["__NotebookDocumentSyncOptions_notebookSelector_cells_Type_3"]]
5775 |     """ The cells of the matching notebook to be synced. """
5776 | 
5777 | 
5778 | class __NotebookDocumentSyncOptions_notebookSelector_Type_4(TypedDict):
5779 |     notebook: NotRequired[Union[str, "NotebookDocumentFilter"]]
5780 |     """ The notebook to be synced If a string
5781 |     value is provided it matches against the
5782 |     notebook type. '*' matches every notebook. """
5783 |     cells: list["__NotebookDocumentSyncOptions_notebookSelector_cells_Type_4"]
5784 |     """ The cells of the matching notebook to be synced. """
5785 | 
5786 | 
5787 | class __NotebookDocumentSyncOptions_notebookSelector_cells_Type_1(TypedDict):
5788 |     language: str
5789 | 
5790 | 
5791 | class __NotebookDocumentSyncOptions_notebookSelector_cells_Type_2(TypedDict):
5792 |     language: str
5793 | 
5794 | 
5795 | class __NotebookDocumentSyncOptions_notebookSelector_cells_Type_3(TypedDict):
5796 |     language: str
5797 | 
5798 | 
5799 | class __NotebookDocumentSyncOptions_notebookSelector_cells_Type_4(TypedDict):
5800 |     language: str
5801 | 
5802 | 
5803 | class __PrepareRenameResult_Type_1(TypedDict):
5804 |     range: "Range"
5805 |     placeholder: str
5806 | 
5807 | 
5808 | class __PrepareRenameResult_Type_2(TypedDict):
5809 |     defaultBehavior: bool
5810 | 
5811 | 
5812 | class __PublishDiagnosticsClientCapabilities_tagSupport_Type_1(TypedDict):
5813 |     valueSet: list["DiagnosticTag"]
5814 |     """ The tags supported by the client. """
5815 | 
5816 | 
5817 | class __SemanticTokensClientCapabilities_requests_Type_1(TypedDict):
5818 |     range: NotRequired[bool | dict]
5819 |     """ The client will send the `textDocument/semanticTokens/range` request if
5820 |     the server provides a corresponding handler. """
5821 |     full: NotRequired[Union[bool, "__SemanticTokensClientCapabilities_requests_full_Type_1"]]
5822 |     """ The client will send the `textDocument/semanticTokens/full` request if
5823 |     the server provides a corresponding handler. """
5824 | 
5825 | 
5826 | class __SemanticTokensClientCapabilities_requests_full_Type_1(TypedDict):
5827 |     delta: NotRequired[bool]
5828 |     """ The client will send the `textDocument/semanticTokens/full/delta` request if
5829 |     the server provides a corresponding handler. """
5830 | 
5831 | 
5832 | class __SemanticTokensOptions_full_Type_1(TypedDict):
5833 |     delta: NotRequired[bool]
5834 |     """ The server supports deltas for full documents. """
5835 | 
5836 | 
5837 | class __SemanticTokensOptions_full_Type_2(TypedDict):
5838 |     delta: NotRequired[bool]
5839 |     """ The server supports deltas for full documents. """
5840 | 
5841 | 
5842 | class __ServerCapabilities_workspace_Type_1(TypedDict):
5843 |     workspaceFolders: NotRequired["WorkspaceFoldersServerCapabilities"]
5844 |     """ The server supports workspace folder.
5845 | 
5846 |     @since 3.6.0 """
5847 |     fileOperations: NotRequired["FileOperationOptions"]
5848 |     """ The server is interested in notifications/requests for operations on files.
5849 | 
5850 |     @since 3.16.0 """
5851 | 
5852 | 
5853 | class __ShowMessageRequestClientCapabilities_messageActionItem_Type_1(TypedDict):
5854 |     additionalPropertiesSupport: NotRequired[bool]
5855 |     """ Whether the client supports additional attributes which
5856 |     are preserved and send back to the server in the
5857 |     request's response. """
5858 | 
5859 | 
5860 | class __SignatureHelpClientCapabilities_signatureInformation_Type_1(TypedDict):
5861 |     documentationFormat: NotRequired[list["MarkupKind"]]
5862 |     """ Client supports the following content formats for the documentation
5863 |     property. The order describes the preferred format of the client. """
5864 |     parameterInformation: NotRequired["__SignatureHelpClientCapabilities_signatureInformation_parameterInformation_Type_1"]
5865 |     """ Client capabilities specific to parameter information. """
5866 |     activeParameterSupport: NotRequired[bool]
5867 |     """ The client supports the `activeParameter` property on `SignatureInformation`
5868 |     literal.
5869 | 
5870 |     @since 3.16.0 """
5871 | 
5872 | 
5873 | class __SignatureHelpClientCapabilities_signatureInformation_parameterInformation_Type_1(TypedDict):
5874 |     labelOffsetSupport: NotRequired[bool]
5875 |     """ The client supports processing label offsets instead of a
5876 |     simple label string.
5877 | 
5878 |     @since 3.14.0 """
5879 | 
5880 | 
5881 | class __TextDocumentContentChangeEvent_Type_1(TypedDict):
5882 |     range: "Range"
5883 |     """ The range of the document that changed. """
5884 |     rangeLength: NotRequired[Uint]
5885 |     """ The optional length of the range that got replaced.
5886 | 
5887 |     @deprecated use range instead. """
5888 |     text: str
5889 |     """ The new text for the provided range. """
5890 | 
5891 | 
5892 | class __TextDocumentContentChangeEvent_Type_2(TypedDict):
5893 |     text: str
5894 |     """ The new text of the whole document. """
5895 | 
5896 | 
5897 | class __TextDocumentFilter_Type_1(TypedDict):
5898 |     language: str
5899 |     """ A language id, like `typescript`. """
5900 |     scheme: NotRequired[str]
5901 |     """ A Uri {@link Uri.scheme scheme}, like `file` or `untitled`. """
5902 |     pattern: NotRequired[str]
5903 |     """ A glob pattern, like `*.{ts,js}`. """
5904 | 
5905 | 
5906 | class __TextDocumentFilter_Type_2(TypedDict):
5907 |     language: NotRequired[str]
5908 |     """ A language id, like `typescript`. """
5909 |     scheme: str
5910 |     """ A Uri {@link Uri.scheme scheme}, like `file` or `untitled`. """
5911 |     pattern: NotRequired[str]
5912 |     """ A glob pattern, like `*.{ts,js}`. """
5913 | 
5914 | 
5915 | class __TextDocumentFilter_Type_3(TypedDict):
5916 |     language: NotRequired[str]
5917 |     """ A language id, like `typescript`. """
5918 |     scheme: NotRequired[str]
5919 |     """ A Uri {@link Uri.scheme scheme}, like `file` or `untitled`. """
5920 |     pattern: str
5921 |     """ A glob pattern, like `*.{ts,js}`. """
5922 | 
5923 | 
5924 | class __WorkspaceEditClientCapabilities_changeAnnotationSupport_Type_1(TypedDict):
5925 |     groupsOnLabel: NotRequired[bool]
5926 |     """ Whether the client groups edits with equal labels into tree nodes,
5927 |     for instance all edits labelled with "Changes in Strings" would
5928 |     be a tree node. """
5929 | 
5930 | 
5931 | class __WorkspaceSymbolClientCapabilities_resolveSupport_Type_1(TypedDict):
5932 |     properties: list[str]
5933 |     """ The properties that a client can resolve lazily. Usually
5934 |     `location.range` """
5935 | 
5936 | 
5937 | class __WorkspaceSymbolClientCapabilities_symbolKind_Type_1(TypedDict):
5938 |     valueSet: NotRequired[list["SymbolKind"]]
5939 |     """ The symbol kind values the client supports. When this
5940 |     property exists the client also guarantees that it will
5941 |     handle values outside its set gracefully and falls back
5942 |     to a default value when unknown.
5943 | 
5944 |     If this property is not present the client only supports
5945 |     the symbol kinds from `File` to `Array` as defined in
5946 |     the initial version of the protocol. """
5947 | 
5948 | 
5949 | class __WorkspaceSymbolClientCapabilities_tagSupport_Type_1(TypedDict):
5950 |     valueSet: list["SymbolTag"]
5951 |     """ The tags supported by the client. """
5952 | 
5953 | 
5954 | class __WorkspaceSymbol_location_Type_1(TypedDict):
5955 |     uri: "DocumentUri"
5956 | 
5957 | 
5958 | class ___InitializeParams_clientInfo_Type_1(TypedDict):
5959 |     name: str
5960 |     """ The name of the client as defined by the client. """
5961 |     version: NotRequired[str]
5962 |     """ The client's version as defined by the client. """
5963 | 
```
Page 14/14FirstPrevNextLast