#
tokens: 73973/50000 1/348 files (page 18/18)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 18 of 18. 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
│       ├── docs.yaml
│       ├── junie.yml
│       ├── publish.yml
│       └── pytest.yml
├── .gitignore
├── .serena
│   ├── .gitignore
│   ├── 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
│   ├── _config.yml
│   ├── .gitignore
│   ├── 01-about
│   │   ├── 000_intro.md
│   │   ├── 010_llm-integration.md
│   │   ├── 020_programming-languages.md
│   │   ├── 030_serena-in-action.md
│   │   ├── 035_tools.md
│   │   ├── 040_comparison-to-other-agents.md
│   │   └── 050_acknowledgements.md
│   ├── 02-usage
│   │   ├── 000_intro.md
│   │   ├── 010_prerequisites.md
│   │   ├── 020_running.md
│   │   ├── 030_clients.md
│   │   ├── 040_workflow.md
│   │   ├── 050_configuration.md
│   │   ├── 060_dashboard.md
│   │   ├── 070_security.md
│   │   └── 999_additional-usage.md
│   ├── 03-special-guides
│   │   ├── 000_intro.md
│   │   ├── custom_agent.md
│   │   ├── scala_setup_guide_for_serena.md
│   │   └── serena_on_chatgpt.md
│   ├── autogen_rst.py
│   ├── create_toc.py
│   └── index.md
├── flake.lock
├── flake.nix
├── lessons_learned.md
├── LICENSE
├── llms-install.md
├── public
│   └── .gitignore
├── pyproject.toml
├── README.md
├── repo_dir_sync.py
├── 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
│   └── profile_tool_call.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
│   │   ├── ls_manager.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.css
│   │   │   │   ├── dashboard.js
│   │   │   │   ├── index.html
│   │   │   │   ├── jquery.min.js
│   │   │   │   ├── serena-icon-16.png
│   │   │   │   ├── serena-icon-32.png
│   │   │   │   ├── serena-icon-48.png
│   │   │   │   ├── serena-logo-dark-mode.svg
│   │   │   │   ├── serena-logo.svg
│   │   │   │   ├── serena-logs-dark-mode.png
│   │   │   │   └── serena-logs.png
│   │   │   ├── project.template.yml
│   │   │   └── serena_config.template.yml
│   │   ├── symbol.py
│   │   ├── task_executor.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
│   │       ├── cli_util.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
│       │   ├── fortran_language_server.py
│       │   ├── gopls.py
│       │   ├── haskell_language_server.py
│       │   ├── intelephense.py
│       │   ├── jedi_server.py
│       │   ├── julia_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
│       │   ├── regal_server.py
│       │   ├── ruby_lsp.py
│       │   ├── rust_analyzer.py
│       │   ├── scala_language_server.py
│       │   ├── solargraph.py
│       │   ├── sourcekit_lsp.py
│       │   ├── terraform_ls.py
│       │   ├── typescript_language_server.py
│       │   ├── vts_language_server.py
│       │   ├── yaml_language_server.py
│       │   └── zls.py
│       ├── ls_config.py
│       ├── ls_exceptions.py
│       ├── ls_handler.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
│           ├── cache.py
│           ├── subprocess_util.py
│           └── zip.py
├── sync.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
│   │       ├── fortran
│   │       │   └── test_repo
│   │       │       ├── main.f90
│   │       │       └── modules
│   │       │           ├── geometry.f90
│   │       │           └── math_utils.f90
│   │       ├── go
│   │       │   └── test_repo
│   │       │       └── main.go
│   │       ├── haskell
│   │       │   └── test_repo
│   │       │       ├── app
│   │       │       │   └── Main.hs
│   │       │       ├── haskell-test-repo.cabal
│   │       │       ├── package.yaml
│   │       │       ├── src
│   │       │       │   ├── Calculator.hs
│   │       │       │   └── Helper.hs
│   │       │       └── stack.yaml
│   │       ├── java
│   │       │   └── test_repo
│   │       │       ├── pom.xml
│   │       │       └── src
│   │       │           └── main
│   │       │               └── java
│   │       │                   └── test_repo
│   │       │                       ├── Main.java
│   │       │                       ├── Model.java
│   │       │                       ├── ModelUser.java
│   │       │                       └── Utils.java
│   │       ├── julia
│   │       │   └── test_repo
│   │       │       ├── lib
│   │       │       │   └── helper.jl
│   │       │       └── main.jl
│   │       ├── 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
│   │       ├── rego
│   │       │   └── test_repo
│   │       │       ├── policies
│   │       │       │   ├── authz.rego
│   │       │       │   └── validation.rego
│   │       │       └── utils
│   │       │           └── helpers.rego
│   │       ├── 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
│   │       ├── scala
│   │       │   ├── build.sbt
│   │       │   ├── project
│   │       │   │   ├── build.properties
│   │       │   │   ├── metals.sbt
│   │       │   │   └── plugins.sbt
│   │       │   └── src
│   │       │       └── main
│   │       │           └── scala
│   │       │               └── com
│   │       │                   └── example
│   │       │                       ├── Main.scala
│   │       │                       └── Utils.scala
│   │       ├── 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
│   │       ├── yaml
│   │       │   └── test_repo
│   │       │       ├── config.yaml
│   │       │       ├── data.yaml
│   │       │       └── services.yml
│   │       └── 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_cli_project_commands.py
│   │   ├── test_edit_marker.py
│   │   ├── test_mcp.py
│   │   ├── test_serena_agent.py
│   │   ├── test_symbol_editing.py
│   │   ├── test_symbol.py
│   │   ├── test_task_executor.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
│       ├── fortran
│       │   ├── __init__.py
│       │   └── test_fortran_basic.py
│       ├── go
│       │   └── test_go_basic.py
│       ├── haskell
│       │   ├── __init__.py
│       │   └── test_haskell_basic.py
│       ├── java
│       │   └── test_java_basic.py
│       ├── julia
│       │   └── test_julia_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
│       ├── rego
│       │   └── test_rego_basic.py
│       ├── ruby
│       │   ├── test_ruby_basic.py
│       │   └── test_ruby_symbol_retrieval.py
│       ├── rust
│       │   ├── test_rust_2024_edition.py
│       │   └── test_rust_basic.py
│       ├── scala
│       │   └── test_scala_language_server.py
│       ├── swift
│       │   └── test_swift_basic.py
│       ├── terraform
│       │   └── test_terraform_basic.py
│       ├── typescript
│       │   └── test_typescript_basic.py
│       ├── util
│       │   └── test_zip.py
│       ├── yaml_ls
│       │   ├── __init__.py
│       │   └── test_yaml_basic.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 |     # TODO: I think this type is missing the 'children' field - DJ
2482 | 
2483 | 
2484 | class DocumentSymbolRegistrationOptions(TypedDict):
2485 |     """Registration options for a {@link DocumentSymbolRequest}."""
2486 | 
2487 |     documentSelector: Union["DocumentSelector", None]
2488 |     """ A document selector to identify the scope of the registration. If set to null
2489 |     the document selector provided on the client side will be used. """
2490 |     label: NotRequired[str]
2491 |     """ A human-readable string that is shown when multiple outlines trees
2492 |     are shown for the same document.
2493 | 
2494 |     @since 3.16.0 """
2495 | 
2496 | 
2497 | class CodeActionParams(TypedDict):
2498 |     """The parameters of a {@link CodeActionRequest}."""
2499 | 
2500 |     textDocument: "TextDocumentIdentifier"
2501 |     """ The document in which the command was invoked. """
2502 |     range: "Range"
2503 |     """ The range for which the command was invoked. """
2504 |     context: "CodeActionContext"
2505 |     """ Context carrying additional information. """
2506 |     workDoneToken: NotRequired["ProgressToken"]
2507 |     """ An optional token that a server can use to report work done progress. """
2508 |     partialResultToken: NotRequired["ProgressToken"]
2509 |     """ An optional token that a server can use to report partial results (e.g. streaming) to
2510 |     the client. """
2511 | 
2512 | 
2513 | class Command(TypedDict):
2514 |     """Represents a reference to a command. Provides a title which
2515 |     will be used to represent a command in the UI and, optionally,
2516 |     an array of arguments which will be passed to the command handler
2517 |     function when invoked.
2518 |     """
2519 | 
2520 |     title: str
2521 |     """ Title of the command, like `save`. """
2522 |     command: str
2523 |     """ The identifier of the actual command handler. """
2524 |     arguments: NotRequired[list["LSPAny"]]
2525 |     """ Arguments that the command handler should be
2526 |     invoked with. """
2527 | 
2528 | 
2529 | class CodeAction(TypedDict):
2530 |     """A code action represents a change that can be performed in code, e.g. to fix a problem or
2531 |     to refactor code.
2532 | 
2533 |     A CodeAction must set either `edit` and/or a `command`. If both are supplied, the `edit` is applied first, then the `command` is executed.
2534 |     """
2535 | 
2536 |     title: str
2537 |     """ A short, human-readable, title for this code action. """
2538 |     kind: NotRequired["CodeActionKind"]
2539 |     """ The kind of the code action.
2540 | 
2541 |     Used to filter code actions. """
2542 |     diagnostics: NotRequired[list["Diagnostic"]]
2543 |     """ The diagnostics that this code action resolves. """
2544 |     isPreferred: NotRequired[bool]
2545 |     """ Marks this as a preferred action. Preferred actions are used by the `auto fix` command and can be targeted
2546 |     by keybindings.
2547 | 
2548 |     A quick fix should be marked preferred if it properly addresses the underlying error.
2549 |     A refactoring should be marked preferred if it is the most reasonable choice of actions to take.
2550 | 
2551 |     @since 3.15.0 """
2552 |     disabled: NotRequired["__CodeAction_disabled_Type_1"]
2553 |     """ Marks that the code action cannot currently be applied.
2554 | 
2555 |     Clients should follow the following guidelines regarding disabled code actions:
2556 | 
2557 |       - Disabled code actions are not shown in automatic [lightbulbs](https://code.visualstudio.com/docs/editor/editingevolved#_code-action)
2558 |         code action menus.
2559 | 
2560 |       - Disabled actions are shown as faded out in the code action menu when the user requests a more specific type
2561 |         of code action, such as refactorings.
2562 | 
2563 |       - If the user has a [keybinding](https://code.visualstudio.com/docs/editor/refactoring#_keybindings-for-code-actions)
2564 |         that auto applies a code action and only disabled code actions are returned, the client should show the user an
2565 |         error message with `reason` in the editor.
2566 | 
2567 |     @since 3.16.0 """
2568 |     edit: NotRequired["WorkspaceEdit"]
2569 |     """ The workspace edit this code action performs. """
2570 |     command: NotRequired["Command"]
2571 |     """ A command this code action executes. If a code action
2572 |     provides an edit and a command, first the edit is
2573 |     executed and then the command. """
2574 |     data: NotRequired["LSPAny"]
2575 |     """ A data entry field that is preserved on a code action between
2576 |     a `textDocument/codeAction` and a `codeAction/resolve` request.
2577 | 
2578 |     @since 3.16.0 """
2579 | 
2580 | 
2581 | class CodeActionRegistrationOptions(TypedDict):
2582 |     """Registration options for a {@link CodeActionRequest}."""
2583 | 
2584 |     documentSelector: Union["DocumentSelector", None]
2585 |     """ A document selector to identify the scope of the registration. If set to null
2586 |     the document selector provided on the client side will be used. """
2587 |     codeActionKinds: NotRequired[list["CodeActionKind"]]
2588 |     """ CodeActionKinds that this server may return.
2589 | 
2590 |     The list of kinds may be generic, such as `CodeActionKind.Refactor`, or the server
2591 |     may list out every specific kind they provide. """
2592 |     resolveProvider: NotRequired[bool]
2593 |     """ The server provides support to resolve additional
2594 |     information for a code action.
2595 | 
2596 |     @since 3.16.0 """
2597 | 
2598 | 
2599 | class WorkspaceSymbolParams(TypedDict):
2600 |     """The parameters of a {@link WorkspaceSymbolRequest}."""
2601 | 
2602 |     query: str
2603 |     """ A query string to filter symbols by. Clients may send an empty
2604 |     string here to request all symbols. """
2605 |     workDoneToken: NotRequired["ProgressToken"]
2606 |     """ An optional token that a server can use to report work done progress. """
2607 |     partialResultToken: NotRequired["ProgressToken"]
2608 |     """ An optional token that a server can use to report partial results (e.g. streaming) to
2609 |     the client. """
2610 | 
2611 | 
2612 | class WorkspaceSymbol(TypedDict):
2613 |     """A special workspace symbol that supports locations without a range.
2614 | 
2615 |     See also SymbolInformation.
2616 | 
2617 |     @since 3.17.0
2618 |     """
2619 | 
2620 |     location: Union["Location", "__WorkspaceSymbol_location_Type_1"]
2621 |     """ The location of the symbol. Whether a server is allowed to
2622 |     return a location without a range depends on the client
2623 |     capability `workspace.symbol.resolveSupport`.
2624 | 
2625 |     See SymbolInformation#location for more details. """
2626 |     data: NotRequired["LSPAny"]
2627 |     """ A data entry field that is preserved on a workspace symbol between a
2628 |     workspace symbol request and a workspace symbol resolve request. """
2629 |     name: str
2630 |     """ The name of this symbol. """
2631 |     kind: "SymbolKind"
2632 |     """ The kind of this symbol. """
2633 |     tags: NotRequired[list["SymbolTag"]]
2634 |     """ Tags for this symbol.
2635 | 
2636 |     @since 3.16.0 """
2637 |     containerName: NotRequired[str]
2638 |     """ The name of the symbol containing this symbol. This information is for
2639 |     user interface purposes (e.g. to render a qualifier in the user interface
2640 |     if necessary). It can't be used to re-infer a hierarchy for the document
2641 |     symbols. """
2642 | 
2643 | 
2644 | class WorkspaceSymbolRegistrationOptions(TypedDict):
2645 |     """Registration options for a {@link WorkspaceSymbolRequest}."""
2646 | 
2647 |     resolveProvider: NotRequired[bool]
2648 |     """ The server provides support to resolve additional
2649 |     information for a workspace symbol.
2650 | 
2651 |     @since 3.17.0 """
2652 | 
2653 | 
2654 | class CodeLensParams(TypedDict):
2655 |     """The parameters of a {@link CodeLensRequest}."""
2656 | 
2657 |     textDocument: "TextDocumentIdentifier"
2658 |     """ The document to request code lens for. """
2659 |     workDoneToken: NotRequired["ProgressToken"]
2660 |     """ An optional token that a server can use to report work done progress. """
2661 |     partialResultToken: NotRequired["ProgressToken"]
2662 |     """ An optional token that a server can use to report partial results (e.g. streaming) to
2663 |     the client. """
2664 | 
2665 | 
2666 | class CodeLens(TypedDict):
2667 |     """A code lens represents a {@link Command command} that should be shown along with
2668 |     source text, like the number of references, a way to run tests, etc.
2669 | 
2670 |     A code lens is _unresolved_ when no command is associated to it. For performance
2671 |     reasons the creation of a code lens and resolving should be done in two stages.
2672 |     """
2673 | 
2674 |     range: "Range"
2675 |     """ The range in which this code lens is valid. Should only span a single line. """
2676 |     command: NotRequired["Command"]
2677 |     """ The command this code lens represents. """
2678 |     data: NotRequired["LSPAny"]
2679 |     """ A data entry field that is preserved on a code lens item between
2680 |     a {@link CodeLensRequest} and a [CodeLensResolveRequest]
2681 |     (#CodeLensResolveRequest) """
2682 | 
2683 | 
2684 | class CodeLensRegistrationOptions(TypedDict):
2685 |     """Registration options for a {@link CodeLensRequest}."""
2686 | 
2687 |     documentSelector: Union["DocumentSelector", None]
2688 |     """ A document selector to identify the scope of the registration. If set to null
2689 |     the document selector provided on the client side will be used. """
2690 |     resolveProvider: NotRequired[bool]
2691 |     """ Code lens has a resolve provider as well. """
2692 | 
2693 | 
2694 | class DocumentLinkParams(TypedDict):
2695 |     """The parameters of a {@link DocumentLinkRequest}."""
2696 | 
2697 |     textDocument: "TextDocumentIdentifier"
2698 |     """ The document to provide document links for. """
2699 |     workDoneToken: NotRequired["ProgressToken"]
2700 |     """ An optional token that a server can use to report work done progress. """
2701 |     partialResultToken: NotRequired["ProgressToken"]
2702 |     """ An optional token that a server can use to report partial results (e.g. streaming) to
2703 |     the client. """
2704 | 
2705 | 
2706 | class DocumentLink(TypedDict):
2707 |     """A document link is a range in a text document that links to an internal or external resource, like another
2708 |     text document or a web site.
2709 |     """
2710 | 
2711 |     range: "Range"
2712 |     """ The range this link applies to. """
2713 |     target: NotRequired[str]
2714 |     """ The uri this link points to. If missing a resolve request is sent later. """
2715 |     tooltip: NotRequired[str]
2716 |     """ The tooltip text when you hover over this link.
2717 | 
2718 |     If a tooltip is provided, is will be displayed in a string that includes instructions on how to
2719 |     trigger the link, such as `{0} (ctrl + click)`. The specific instructions vary depending on OS,
2720 |     user settings, and localization.
2721 | 
2722 |     @since 3.15.0 """
2723 |     data: NotRequired["LSPAny"]
2724 |     """ A data entry field that is preserved on a document link between a
2725 |     DocumentLinkRequest and a DocumentLinkResolveRequest. """
2726 | 
2727 | 
2728 | class DocumentLinkRegistrationOptions(TypedDict):
2729 |     """Registration options for a {@link DocumentLinkRequest}."""
2730 | 
2731 |     documentSelector: Union["DocumentSelector", None]
2732 |     """ A document selector to identify the scope of the registration. If set to null
2733 |     the document selector provided on the client side will be used. """
2734 |     resolveProvider: NotRequired[bool]
2735 |     """ Document links have a resolve provider as well. """
2736 | 
2737 | 
2738 | class DocumentFormattingParams(TypedDict):
2739 |     """The parameters of a {@link DocumentFormattingRequest}."""
2740 | 
2741 |     textDocument: "TextDocumentIdentifier"
2742 |     """ The document to format. """
2743 |     options: "FormattingOptions"
2744 |     """ The format options. """
2745 |     workDoneToken: NotRequired["ProgressToken"]
2746 |     """ An optional token that a server can use to report work done progress. """
2747 | 
2748 | 
2749 | class DocumentFormattingRegistrationOptions(TypedDict):
2750 |     """Registration options for a {@link DocumentFormattingRequest}."""
2751 | 
2752 |     documentSelector: Union["DocumentSelector", None]
2753 |     """ A document selector to identify the scope of the registration. If set to null
2754 |     the document selector provided on the client side will be used. """
2755 | 
2756 | 
2757 | class DocumentRangeFormattingParams(TypedDict):
2758 |     """The parameters of a {@link DocumentRangeFormattingRequest}."""
2759 | 
2760 |     textDocument: "TextDocumentIdentifier"
2761 |     """ The document to format. """
2762 |     range: "Range"
2763 |     """ The range to format """
2764 |     options: "FormattingOptions"
2765 |     """ The format options """
2766 |     workDoneToken: NotRequired["ProgressToken"]
2767 |     """ An optional token that a server can use to report work done progress. """
2768 | 
2769 | 
2770 | class DocumentRangeFormattingRegistrationOptions(TypedDict):
2771 |     """Registration options for a {@link DocumentRangeFormattingRequest}."""
2772 | 
2773 |     documentSelector: Union["DocumentSelector", None]
2774 |     """ A document selector to identify the scope of the registration. If set to null
2775 |     the document selector provided on the client side will be used. """
2776 | 
2777 | 
2778 | class DocumentOnTypeFormattingParams(TypedDict):
2779 |     """The parameters of a {@link DocumentOnTypeFormattingRequest}."""
2780 | 
2781 |     textDocument: "TextDocumentIdentifier"
2782 |     """ The document to format. """
2783 |     position: "Position"
2784 |     """ The position around which the on type formatting should happen.
2785 |     This is not necessarily the exact position where the character denoted
2786 |     by the property `ch` got typed. """
2787 |     ch: str
2788 |     """ The character that has been typed that triggered the formatting
2789 |     on type request. That is not necessarily the last character that
2790 |     got inserted into the document since the client could auto insert
2791 |     characters as well (e.g. like automatic brace completion). """
2792 |     options: "FormattingOptions"
2793 |     """ The formatting options. """
2794 | 
2795 | 
2796 | class DocumentOnTypeFormattingRegistrationOptions(TypedDict):
2797 |     """Registration options for a {@link DocumentOnTypeFormattingRequest}."""
2798 | 
2799 |     documentSelector: Union["DocumentSelector", None]
2800 |     """ A document selector to identify the scope of the registration. If set to null
2801 |     the document selector provided on the client side will be used. """
2802 |     firstTriggerCharacter: str
2803 |     """ A character on which formatting should be triggered, like `{`. """
2804 |     moreTriggerCharacter: NotRequired[list[str]]
2805 |     """ More trigger characters. """
2806 | 
2807 | 
2808 | class RenameParams(TypedDict):
2809 |     """The parameters of a {@link RenameRequest}."""
2810 | 
2811 |     textDocument: "TextDocumentIdentifier"
2812 |     """ The document to rename. """
2813 |     position: "Position"
2814 |     """ The position at which this request was sent. """
2815 |     newName: str
2816 |     """ The new name of the symbol. If the given name is not valid the
2817 |     request must return a {@link ResponseError} with an
2818 |     appropriate message set. """
2819 |     workDoneToken: NotRequired["ProgressToken"]
2820 |     """ An optional token that a server can use to report work done progress. """
2821 | 
2822 | 
2823 | class RenameRegistrationOptions(TypedDict):
2824 |     """Registration options for a {@link RenameRequest}."""
2825 | 
2826 |     documentSelector: Union["DocumentSelector", None]
2827 |     """ A document selector to identify the scope of the registration. If set to null
2828 |     the document selector provided on the client side will be used. """
2829 |     prepareProvider: NotRequired[bool]
2830 |     """ Renames should be checked and tested before being executed.
2831 | 
2832 |     @since version 3.12.0 """
2833 | 
2834 | 
2835 | class PrepareRenameParams(TypedDict):
2836 |     textDocument: "TextDocumentIdentifier"
2837 |     """ The text document. """
2838 |     position: "Position"
2839 |     """ The position inside the text document. """
2840 |     workDoneToken: NotRequired["ProgressToken"]
2841 |     """ An optional token that a server can use to report work done progress. """
2842 | 
2843 | 
2844 | class ExecuteCommandParams(TypedDict):
2845 |     """The parameters of a {@link ExecuteCommandRequest}."""
2846 | 
2847 |     command: str
2848 |     """ The identifier of the actual command handler. """
2849 |     arguments: NotRequired[list["LSPAny"]]
2850 |     """ Arguments that the command should be invoked with. """
2851 |     workDoneToken: NotRequired["ProgressToken"]
2852 |     """ An optional token that a server can use to report work done progress. """
2853 | 
2854 | 
2855 | class ExecuteCommandRegistrationOptions(TypedDict):
2856 |     """Registration options for a {@link ExecuteCommandRequest}."""
2857 | 
2858 |     commands: list[str]
2859 |     """ The commands to be executed on the server """
2860 | 
2861 | 
2862 | class ApplyWorkspaceEditParams(TypedDict):
2863 |     """The parameters passed via a apply workspace edit request."""
2864 | 
2865 |     label: NotRequired[str]
2866 |     """ An optional label of the workspace edit. This label is
2867 |     presented in the user interface for example on an undo
2868 |     stack to undo the workspace edit. """
2869 |     edit: "WorkspaceEdit"
2870 |     """ The edits to apply. """
2871 | 
2872 | 
2873 | class ApplyWorkspaceEditResult(TypedDict):
2874 |     """The result returned from the apply workspace edit request.
2875 | 
2876 |     @since 3.17 renamed from ApplyWorkspaceEditResponse
2877 |     """
2878 | 
2879 |     applied: bool
2880 |     """ Indicates whether the edit was applied or not. """
2881 |     failureReason: NotRequired[str]
2882 |     """ An optional textual description for why the edit was not applied.
2883 |     This may be used by the server for diagnostic logging or to provide
2884 |     a suitable error for a request that triggered the edit. """
2885 |     failedChange: NotRequired[Uint]
2886 |     """ Depending on the client's failure handling strategy `failedChange` might
2887 |     contain the index of the change that failed. This property is only available
2888 |     if the client signals a `failureHandlingStrategy` in its client capabilities. """
2889 | 
2890 | 
2891 | class WorkDoneProgressBegin(TypedDict):
2892 |     kind: Literal["begin"]
2893 |     title: str
2894 |     """ Mandatory title of the progress operation. Used to briefly inform about
2895 |     the kind of operation being performed.
2896 | 
2897 |     Examples: "Indexing" or "Linking dependencies". """
2898 |     cancellable: NotRequired[bool]
2899 |     """ Controls if a cancel button should show to allow the user to cancel the
2900 |     long running operation. Clients that don't support cancellation are allowed
2901 |     to ignore the setting. """
2902 |     message: NotRequired[str]
2903 |     """ Optional, more detailed associated progress message. Contains
2904 |     complementary information to the `title`.
2905 | 
2906 |     Examples: "3/25 files", "project/src/module2", "node_modules/some_dep".
2907 |     If unset, the previous progress message (if any) is still valid. """
2908 |     percentage: NotRequired[Uint]
2909 |     """ Optional progress percentage to display (value 100 is considered 100%).
2910 |     If not provided infinite progress is assumed and clients are allowed
2911 |     to ignore the `percentage` value in subsequent in report notifications.
2912 | 
2913 |     The value should be steadily rising. Clients are free to ignore values
2914 |     that are not following this rule. The value range is [0, 100]. """
2915 | 
2916 | 
2917 | class WorkDoneProgressReport(TypedDict):
2918 |     kind: Literal["report"]
2919 |     cancellable: NotRequired[bool]
2920 |     """ Controls enablement state of a cancel button.
2921 | 
2922 |     Clients that don't support cancellation or don't support controlling the button's
2923 |     enablement state are allowed to ignore the property. """
2924 |     message: NotRequired[str]
2925 |     """ Optional, more detailed associated progress message. Contains
2926 |     complementary information to the `title`.
2927 | 
2928 |     Examples: "3/25 files", "project/src/module2", "node_modules/some_dep".
2929 |     If unset, the previous progress message (if any) is still valid. """
2930 |     percentage: NotRequired[Uint]
2931 |     """ Optional progress percentage to display (value 100 is considered 100%).
2932 |     If not provided infinite progress is assumed and clients are allowed
2933 |     to ignore the `percentage` value in subsequent in report notifications.
2934 | 
2935 |     The value should be steadily rising. Clients are free to ignore values
2936 |     that are not following this rule. The value range is [0, 100] """
2937 | 
2938 | 
2939 | class WorkDoneProgressEnd(TypedDict):
2940 |     kind: Literal["end"]
2941 |     message: NotRequired[str]
2942 |     """ Optional, a final message indicating to for example indicate the outcome
2943 |     of the operation. """
2944 | 
2945 | 
2946 | class SetTraceParams(TypedDict):
2947 |     value: "TraceValues"
2948 | 
2949 | 
2950 | class LogTraceParams(TypedDict):
2951 |     message: str
2952 |     verbose: NotRequired[str]
2953 | 
2954 | 
2955 | class CancelParams(TypedDict):
2956 |     id: int | str
2957 |     """ The request id to cancel. """
2958 | 
2959 | 
2960 | class ProgressParams(TypedDict):
2961 |     token: "ProgressToken"
2962 |     """ The progress token provided by the client or server. """
2963 |     value: "LSPAny"
2964 |     """ The progress data. """
2965 | 
2966 | 
2967 | class TextDocumentPositionParams(TypedDict):
2968 |     """A parameter literal used in requests to pass a text document and a position inside that
2969 |     document.
2970 |     """
2971 | 
2972 |     textDocument: "TextDocumentIdentifier"
2973 |     """ The text document. """
2974 |     position: "Position"
2975 |     """ The position inside the text document. """
2976 | 
2977 | 
2978 | class WorkDoneProgressParams(TypedDict):
2979 |     workDoneToken: NotRequired["ProgressToken"]
2980 |     """ An optional token that a server can use to report work done progress. """
2981 | 
2982 | 
2983 | class PartialResultParams(TypedDict):
2984 |     partialResultToken: NotRequired["ProgressToken"]
2985 |     """ An optional token that a server can use to report partial results (e.g. streaming) to
2986 |     the client. """
2987 | 
2988 | 
2989 | class LocationLink(TypedDict):
2990 |     """Represents the connection of two locations. Provides additional metadata over normal {@link Location locations},
2991 |     including an origin range.
2992 |     """
2993 | 
2994 |     originSelectionRange: NotRequired["Range"]
2995 |     """ Span of the origin of this link.
2996 | 
2997 |     Used as the underlined span for mouse interaction. Defaults to the word range at
2998 |     the definition position. """
2999 |     targetUri: "DocumentUri"
3000 |     """ The target resource identifier of this link. """
3001 |     targetRange: "Range"
3002 |     """ The full target range of this link. If the target for example is a symbol then target range is the
3003 |     range enclosing this symbol not including leading/trailing whitespace but everything else
3004 |     like comments. This information is typically used to highlight the range in the editor. """
3005 |     targetSelectionRange: "Range"
3006 |     """ The range that should be selected and revealed when this link is being followed, e.g the name of a function.
3007 |     Must be contained by the `targetRange`. See also `DocumentSymbol#range` """
3008 | 
3009 | 
3010 | class Range(TypedDict):
3011 |     """A range in a text document expressed as (zero-based) start and end positions.
3012 | 
3013 |     If you want to specify a range that contains a line including the line ending
3014 |     character(s) then use an end position denoting the start of the next line.
3015 |     For example:
3016 |     ```ts
3017 |     {
3018 |         start: { line: 5, character: 23 }
3019 |         end : { line 6, character : 0 }
3020 |     }
3021 |     ```
3022 |     """
3023 | 
3024 |     start: "Position"
3025 |     """ The range's start position. """
3026 |     end: "Position"
3027 |     """ The range's end position. """
3028 | 
3029 | 
3030 | class ImplementationOptions(TypedDict):
3031 |     workDoneProgress: NotRequired[bool]
3032 | 
3033 | 
3034 | class StaticRegistrationOptions(TypedDict):
3035 |     """Static registration options to be returned in the initialize
3036 |     request.
3037 |     """
3038 | 
3039 |     id: NotRequired[str]
3040 |     """ The id used to register the request. The id can be used to deregister
3041 |     the request again. See also Registration#id. """
3042 | 
3043 | 
3044 | class TypeDefinitionOptions(TypedDict):
3045 |     workDoneProgress: NotRequired[bool]
3046 | 
3047 | 
3048 | class WorkspaceFoldersChangeEvent(TypedDict):
3049 |     """The workspace folder change event."""
3050 | 
3051 |     added: list["WorkspaceFolder"]
3052 |     """ The array of added workspace folders """
3053 |     removed: list["WorkspaceFolder"]
3054 |     """ The array of the removed workspace folders """
3055 | 
3056 | 
3057 | class ConfigurationItem(TypedDict):
3058 |     scopeUri: NotRequired[str]
3059 |     """ The scope to get the configuration section for. """
3060 |     section: NotRequired[str]
3061 |     """ The configuration section asked for. """
3062 | 
3063 | 
3064 | class TextDocumentIdentifier(TypedDict):
3065 |     """A literal to identify a text document in the client."""
3066 | 
3067 |     uri: "DocumentUri"
3068 |     """ The text document's uri. """
3069 | 
3070 | 
3071 | class Color(TypedDict):
3072 |     """Represents a color in RGBA space."""
3073 | 
3074 |     red: float
3075 |     """ The red component of this color in the range [0-1]. """
3076 |     green: float
3077 |     """ The green component of this color in the range [0-1]. """
3078 |     blue: float
3079 |     """ The blue component of this color in the range [0-1]. """
3080 |     alpha: float
3081 |     """ The alpha component of this color in the range [0-1]. """
3082 | 
3083 | 
3084 | class DocumentColorOptions(TypedDict):
3085 |     workDoneProgress: NotRequired[bool]
3086 | 
3087 | 
3088 | class FoldingRangeOptions(TypedDict):
3089 |     workDoneProgress: NotRequired[bool]
3090 | 
3091 | 
3092 | class DeclarationOptions(TypedDict):
3093 |     workDoneProgress: NotRequired[bool]
3094 | 
3095 | 
3096 | class Position(TypedDict):
3097 |     r"""Position in a text document expressed as zero-based line and character
3098 |     offset. Prior to 3.17 the offsets were always based on a UTF-16 string
3099 |     representation. So a string of the form `a𐐀b` the character offset of the
3100 |     character `a` is 0, the character offset of `𐐀` is 1 and the character
3101 |     offset of b is 3 since `𐐀` is represented using two code units in UTF-16.
3102 |     Since 3.17 clients and servers can agree on a different string encoding
3103 |     representation (e.g. UTF-8). The client announces it's supported encoding
3104 |     via the client capability [`general.positionEncodings`](#clientCapabilities).
3105 |     The value is an array of position encodings the client supports, with
3106 |     decreasing preference (e.g. the encoding at index `0` is the most preferred
3107 |     one). To stay backwards compatible the only mandatory encoding is UTF-16
3108 |     represented via the string `utf-16`. The server can pick one of the
3109 |     encodings offered by the client and signals that encoding back to the
3110 |     client via the initialize result's property
3111 |     [`capabilities.positionEncoding`](#serverCapabilities). If the string value
3112 |     `utf-16` is missing from the client's capability `general.positionEncodings`
3113 |     servers can safely assume that the client supports UTF-16. If the server
3114 |     omits the position encoding in its initialize result the encoding defaults
3115 |     to the string value `utf-16`. Implementation considerations: since the
3116 |     conversion from one encoding into another requires the content of the
3117 |     file / line the conversion is best done where the file is read which is
3118 |     usually on the server side.
3119 | 
3120 |     Positions are line end character agnostic. So you can not specify a position
3121 |     that denotes `\r|\n` or `\n|` where `|` represents the character offset.
3122 | 
3123 |     @since 3.17.0 - support for negotiated position encoding.
3124 |     """
3125 | 
3126 |     line: Uint
3127 |     """ Line position in a document (zero-based).
3128 | 
3129 |     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.
3130 |     If a line number is negative, it defaults to 0. """
3131 |     character: Uint
3132 |     """ Character offset on a line in a document (zero-based).
3133 | 
3134 |     The meaning of this offset is determined by the negotiated
3135 |     `PositionEncodingKind`.
3136 | 
3137 |     If the character value is greater than the line length it defaults back to the
3138 |     line length. """
3139 | 
3140 | 
3141 | class SelectionRangeOptions(TypedDict):
3142 |     workDoneProgress: NotRequired[bool]
3143 | 
3144 | 
3145 | class CallHierarchyOptions(TypedDict):
3146 |     """Call hierarchy options used during static registration.
3147 | 
3148 |     @since 3.16.0
3149 |     """
3150 | 
3151 |     workDoneProgress: NotRequired[bool]
3152 | 
3153 | 
3154 | class SemanticTokensOptions(TypedDict):
3155 |     """@since 3.16.0"""
3156 | 
3157 |     legend: "SemanticTokensLegend"
3158 |     """ The legend used by the server """
3159 |     range: NotRequired[bool | dict]
3160 |     """ Server supports providing semantic tokens for a specific range
3161 |     of a document. """
3162 |     full: NotRequired[Union[bool, "__SemanticTokensOptions_full_Type_2"]]
3163 |     """ Server supports providing semantic tokens for a full document. """
3164 |     workDoneProgress: NotRequired[bool]
3165 | 
3166 | 
3167 | class SemanticTokensEdit(TypedDict):
3168 |     """@since 3.16.0"""
3169 | 
3170 |     start: Uint
3171 |     """ The start offset of the edit. """
3172 |     deleteCount: Uint
3173 |     """ The count of elements to remove. """
3174 |     data: NotRequired[list[Uint]]
3175 |     """ The elements to insert. """
3176 | 
3177 | 
3178 | class LinkedEditingRangeOptions(TypedDict):
3179 |     workDoneProgress: NotRequired[bool]
3180 | 
3181 | 
3182 | class FileCreate(TypedDict):
3183 |     """Represents information on a file/folder create.
3184 | 
3185 |     @since 3.16.0
3186 |     """
3187 | 
3188 |     uri: str
3189 |     """ A file:// URI for the location of the file/folder being created. """
3190 | 
3191 | 
3192 | class TextDocumentEdit(TypedDict):
3193 |     """Describes textual changes on a text document. A TextDocumentEdit describes all changes
3194 |     on a document version Si and after they are applied move the document to version Si+1.
3195 |     So the creator of a TextDocumentEdit doesn't need to sort the array of edits or do any
3196 |     kind of ordering. However the edits must be non overlapping.
3197 |     """
3198 | 
3199 |     textDocument: "OptionalVersionedTextDocumentIdentifier"
3200 |     """ The text document to change. """
3201 |     edits: list[Union["TextEdit", "AnnotatedTextEdit"]]
3202 |     """ The edits to be applied.
3203 | 
3204 |     @since 3.16.0 - support for AnnotatedTextEdit. This is guarded using a
3205 |     client capability. """
3206 | 
3207 | 
3208 | class CreateFile(TypedDict):
3209 |     """Create file operation."""
3210 | 
3211 |     kind: Literal["create"]
3212 |     """ A create """
3213 |     uri: "DocumentUri"
3214 |     """ The resource to create. """
3215 |     options: NotRequired["CreateFileOptions"]
3216 |     """ Additional options """
3217 |     annotationId: NotRequired["ChangeAnnotationIdentifier"]
3218 |     """ An optional annotation identifier describing the operation.
3219 | 
3220 |     @since 3.16.0 """
3221 | 
3222 | 
3223 | class RenameFile(TypedDict):
3224 |     """Rename file operation"""
3225 | 
3226 |     kind: Literal["rename"]
3227 |     """ A rename """
3228 |     oldUri: "DocumentUri"
3229 |     """ The old (existing) location. """
3230 |     newUri: "DocumentUri"
3231 |     """ The new location. """
3232 |     options: NotRequired["RenameFileOptions"]
3233 |     """ Rename options. """
3234 |     annotationId: NotRequired["ChangeAnnotationIdentifier"]
3235 |     """ An optional annotation identifier describing the operation.
3236 | 
3237 |     @since 3.16.0 """
3238 | 
3239 | 
3240 | class DeleteFile(TypedDict):
3241 |     """Delete file operation"""
3242 | 
3243 |     kind: Literal["delete"]
3244 |     """ A delete """
3245 |     uri: "DocumentUri"
3246 |     """ The file to delete. """
3247 |     options: NotRequired["DeleteFileOptions"]
3248 |     """ Delete options. """
3249 |     annotationId: NotRequired["ChangeAnnotationIdentifier"]
3250 |     """ An optional annotation identifier describing the operation.
3251 | 
3252 |     @since 3.16.0 """
3253 | 
3254 | 
3255 | class ChangeAnnotation(TypedDict):
3256 |     """Additional information that describes document changes.
3257 | 
3258 |     @since 3.16.0
3259 |     """
3260 | 
3261 |     label: str
3262 |     """ A human-readable string describing the actual change. The string
3263 |     is rendered prominent in the user interface. """
3264 |     needsConfirmation: NotRequired[bool]
3265 |     """ A flag which indicates that user confirmation is needed
3266 |     before applying the change. """
3267 |     description: NotRequired[str]
3268 |     """ A human-readable string which is rendered less prominent in
3269 |     the user interface. """
3270 | 
3271 | 
3272 | class FileOperationFilter(TypedDict):
3273 |     """A filter to describe in which file operation requests or notifications
3274 |     the server is interested in receiving.
3275 | 
3276 |     @since 3.16.0
3277 |     """
3278 | 
3279 |     scheme: NotRequired[str]
3280 |     """ A Uri scheme like `file` or `untitled`. """
3281 |     pattern: "FileOperationPattern"
3282 |     """ The actual file operation pattern. """
3283 | 
3284 | 
3285 | class FileRename(TypedDict):
3286 |     """Represents information on a file/folder rename.
3287 | 
3288 |     @since 3.16.0
3289 |     """
3290 | 
3291 |     oldUri: str
3292 |     """ A file:// URI for the original location of the file/folder being renamed. """
3293 |     newUri: str
3294 |     """ A file:// URI for the new location of the file/folder being renamed. """
3295 | 
3296 | 
3297 | class FileDelete(TypedDict):
3298 |     """Represents information on a file/folder delete.
3299 | 
3300 |     @since 3.16.0
3301 |     """
3302 | 
3303 |     uri: str
3304 |     """ A file:// URI for the location of the file/folder being deleted. """
3305 | 
3306 | 
3307 | class MonikerOptions(TypedDict):
3308 |     workDoneProgress: NotRequired[bool]
3309 | 
3310 | 
3311 | class TypeHierarchyOptions(TypedDict):
3312 |     """Type hierarchy options used during static registration.
3313 | 
3314 |     @since 3.17.0
3315 |     """
3316 | 
3317 |     workDoneProgress: NotRequired[bool]
3318 | 
3319 | 
3320 | class InlineValueContext(TypedDict):
3321 |     """@since 3.17.0"""
3322 | 
3323 |     frameId: int
3324 |     """ The stack frame (as a DAP Id) where the execution has stopped. """
3325 |     stoppedLocation: "Range"
3326 |     """ The document range where execution has stopped.
3327 |     Typically the end position of the range denotes the line where the inline values are shown. """
3328 | 
3329 | 
3330 | class InlineValueText(TypedDict):
3331 |     """Provide inline value as text.
3332 | 
3333 |     @since 3.17.0
3334 |     """
3335 | 
3336 |     range: "Range"
3337 |     """ The document range for which the inline value applies. """
3338 |     text: str
3339 |     """ The text of the inline value. """
3340 | 
3341 | 
3342 | class InlineValueVariableLookup(TypedDict):
3343 |     """Provide inline value through a variable lookup.
3344 |     If only a range is specified, the variable name will be extracted from the underlying document.
3345 |     An optional variable name can be used to override the extracted name.
3346 | 
3347 |     @since 3.17.0
3348 |     """
3349 | 
3350 |     range: "Range"
3351 |     """ The document range for which the inline value applies.
3352 |     The range is used to extract the variable name from the underlying document. """
3353 |     variableName: NotRequired[str]
3354 |     """ If specified the name of the variable to look up. """
3355 |     caseSensitiveLookup: bool
3356 |     """ How to perform the lookup. """
3357 | 
3358 | 
3359 | class InlineValueEvaluatableExpression(TypedDict):
3360 |     """Provide an inline value through an expression evaluation.
3361 |     If only a range is specified, the expression will be extracted from the underlying document.
3362 |     An optional expression can be used to override the extracted expression.
3363 | 
3364 |     @since 3.17.0
3365 |     """
3366 | 
3367 |     range: "Range"
3368 |     """ The document range for which the inline value applies.
3369 |     The range is used to extract the evaluatable expression from the underlying document. """
3370 |     expression: NotRequired[str]
3371 |     """ If specified the expression overrides the extracted expression. """
3372 | 
3373 | 
3374 | class InlineValueOptions(TypedDict):
3375 |     """Inline value options used during static registration.
3376 | 
3377 |     @since 3.17.0
3378 |     """
3379 | 
3380 |     workDoneProgress: NotRequired[bool]
3381 | 
3382 | 
3383 | class InlayHintLabelPart(TypedDict):
3384 |     """An inlay hint label part allows for interactive and composite labels
3385 |     of inlay hints.
3386 | 
3387 |     @since 3.17.0
3388 |     """
3389 | 
3390 |     value: str
3391 |     """ The value of this label part. """
3392 |     tooltip: NotRequired[Union[str, "MarkupContent"]]
3393 |     """ The tooltip text when you hover over this label part. Depending on
3394 |     the client capability `inlayHint.resolveSupport` clients might resolve
3395 |     this property late using the resolve request. """
3396 |     location: NotRequired["Location"]
3397 |     """ An optional source code location that represents this
3398 |     label part.
3399 | 
3400 |     The editor will use this location for the hover and for code navigation
3401 |     features: This part will become a clickable link that resolves to the
3402 |     definition of the symbol at the given location (not necessarily the
3403 |     location itself), it shows the hover that shows at the given location,
3404 |     and it shows a context menu with further code navigation commands.
3405 | 
3406 |     Depending on the client capability `inlayHint.resolveSupport` clients
3407 |     might resolve this property late using the resolve request. """
3408 |     command: NotRequired["Command"]
3409 |     """ An optional command for this label part.
3410 | 
3411 |     Depending on the client capability `inlayHint.resolveSupport` clients
3412 |     might resolve this property late using the resolve request. """
3413 | 
3414 | 
3415 | class MarkupContent(TypedDict):
3416 |     r"""A `MarkupContent` literal represents a string value which content is interpreted base on its
3417 |     kind flag. Currently the protocol supports `plaintext` and `markdown` as markup kinds.
3418 | 
3419 |     If the kind is `markdown` then the value can contain fenced code blocks like in GitHub issues.
3420 |     See https://help.github.com/articles/creating-and-highlighting-code-blocks/#syntax-highlighting
3421 | 
3422 |     Here is an example how such a string can be constructed using JavaScript / TypeScript:
3423 |     ```ts
3424 |     let markdown: MarkdownContent = {
3425 |      kind: MarkupKind.Markdown,
3426 |      value: [
3427 |        '# Header',
3428 |        'Some text',
3429 |        '```typescript',
3430 |        'someCode();',
3431 |        '```'
3432 |      ].join('\n')
3433 |     };
3434 |     ```
3435 | 
3436 |     *Please Note* that clients might sanitize the return markdown. A client could decide to
3437 |     remove HTML from the markdown to avoid script execution.
3438 |     """
3439 | 
3440 |     kind: "MarkupKind"
3441 |     """ The type of the Markup """
3442 |     value: str
3443 |     """ The content itself """
3444 | 
3445 | 
3446 | class InlayHintOptions(TypedDict):
3447 |     """Inlay hint options used during static registration.
3448 | 
3449 |     @since 3.17.0
3450 |     """
3451 | 
3452 |     resolveProvider: NotRequired[bool]
3453 |     """ The server provides support to resolve additional
3454 |     information for an inlay hint item. """
3455 |     workDoneProgress: NotRequired[bool]
3456 | 
3457 | 
3458 | class RelatedFullDocumentDiagnosticReport(TypedDict):
3459 |     """A full diagnostic report with a set of related documents.
3460 | 
3461 |     @since 3.17.0
3462 |     """
3463 | 
3464 |     relatedDocuments: NotRequired[
3465 |         dict[
3466 |             "DocumentUri",
3467 |             Union["FullDocumentDiagnosticReport", "UnchangedDocumentDiagnosticReport"],
3468 |         ]
3469 |     ]
3470 |     """ Diagnostics of related documents. This information is useful
3471 |     in programming languages where code in a file A can generate
3472 |     diagnostics in a file B which A depends on. An example of
3473 |     such a language is C/C++ where marco definitions in a file
3474 |     a.cpp and result in errors in a header file b.hpp.
3475 | 
3476 |     @since 3.17.0 """
3477 |     kind: Literal["full"]
3478 |     """ A full document diagnostic report. """
3479 |     resultId: NotRequired[str]
3480 |     """ An optional result id. If provided it will
3481 |     be sent on the next diagnostic request for the
3482 |     same document. """
3483 |     items: list["Diagnostic"]
3484 |     """ The actual items. """
3485 | 
3486 | 
3487 | class RelatedUnchangedDocumentDiagnosticReport(TypedDict):
3488 |     """An unchanged diagnostic report with a set of related documents.
3489 | 
3490 |     @since 3.17.0
3491 |     """
3492 | 
3493 |     relatedDocuments: NotRequired[
3494 |         dict[
3495 |             "DocumentUri",
3496 |             Union["FullDocumentDiagnosticReport", "UnchangedDocumentDiagnosticReport"],
3497 |         ]
3498 |     ]
3499 |     """ Diagnostics of related documents. This information is useful
3500 |     in programming languages where code in a file A can generate
3501 |     diagnostics in a file B which A depends on. An example of
3502 |     such a language is C/C++ where marco definitions in a file
3503 |     a.cpp and result in errors in a header file b.hpp.
3504 | 
3505 |     @since 3.17.0 """
3506 |     kind: Literal["unchanged"]
3507 |     """ A document diagnostic report indicating
3508 |     no changes to the last result. A server can
3509 |     only return `unchanged` if result ids are
3510 |     provided. """
3511 |     resultId: str
3512 |     """ A result id which will be sent on the next
3513 |     diagnostic request for the same document. """
3514 | 
3515 | 
3516 | class FullDocumentDiagnosticReport(TypedDict):
3517 |     """A diagnostic report with a full set of problems.
3518 | 
3519 |     @since 3.17.0
3520 |     """
3521 | 
3522 |     kind: Literal["full"]
3523 |     """ A full document diagnostic report. """
3524 |     resultId: NotRequired[str]
3525 |     """ An optional result id. If provided it will
3526 |     be sent on the next diagnostic request for the
3527 |     same document. """
3528 |     items: list["Diagnostic"]
3529 |     """ The actual items. """
3530 | 
3531 | 
3532 | class UnchangedDocumentDiagnosticReport(TypedDict):
3533 |     """A diagnostic report indicating that the last returned
3534 |     report is still accurate.
3535 | 
3536 |     @since 3.17.0
3537 |     """
3538 | 
3539 |     kind: Literal["unchanged"]
3540 |     """ A document diagnostic report indicating
3541 |     no changes to the last result. A server can
3542 |     only return `unchanged` if result ids are
3543 |     provided. """
3544 |     resultId: str
3545 |     """ A result id which will be sent on the next
3546 |     diagnostic request for the same document. """
3547 | 
3548 | 
3549 | class DiagnosticOptions(TypedDict):
3550 |     """Diagnostic options.
3551 | 
3552 |     @since 3.17.0
3553 |     """
3554 | 
3555 |     identifier: NotRequired[str]
3556 |     """ An optional identifier under which the diagnostics are
3557 |     managed by the client. """
3558 |     interFileDependencies: bool
3559 |     """ Whether the language has inter file dependencies meaning that
3560 |     editing code in one file can result in a different diagnostic
3561 |     set in another file. Inter file dependencies are common for
3562 |     most programming languages and typically uncommon for linters. """
3563 |     workspaceDiagnostics: bool
3564 |     """ The server provides support for workspace diagnostics as well. """
3565 |     workDoneProgress: NotRequired[bool]
3566 | 
3567 | 
3568 | class PreviousResultId(TypedDict):
3569 |     """A previous result id in a workspace pull request.
3570 | 
3571 |     @since 3.17.0
3572 |     """
3573 | 
3574 |     uri: "DocumentUri"
3575 |     """ The URI for which the client knowns a
3576 |     result id. """
3577 |     value: str
3578 |     """ The value of the previous result id. """
3579 | 
3580 | 
3581 | class NotebookDocument(TypedDict):
3582 |     """A notebook document.
3583 | 
3584 |     @since 3.17.0
3585 |     """
3586 | 
3587 |     uri: "URI"
3588 |     """ The notebook document's uri. """
3589 |     notebookType: str
3590 |     """ The type of the notebook. """
3591 |     version: int
3592 |     """ The version number of this document (it will increase after each
3593 |     change, including undo/redo). """
3594 |     metadata: NotRequired["LSPObject"]
3595 |     """ Additional metadata stored with the notebook
3596 |     document.
3597 | 
3598 |     Note: should always be an object literal (e.g. LSPObject) """
3599 |     cells: list["NotebookCell"]
3600 |     """ The cells of a notebook. """
3601 | 
3602 | 
3603 | class TextDocumentItem(TypedDict):
3604 |     """An item to transfer a text document from the client to the
3605 |     server.
3606 |     """
3607 | 
3608 |     uri: "DocumentUri"
3609 |     """ The text document's uri. """
3610 |     languageId: str
3611 |     """ The text document's language identifier. """
3612 |     version: int
3613 |     """ The version number of this document (it will increase after each
3614 |     change, including undo/redo). """
3615 |     text: str
3616 |     """ The content of the opened text document. """
3617 | 
3618 | 
3619 | class VersionedNotebookDocumentIdentifier(TypedDict):
3620 |     """A versioned notebook document identifier.
3621 | 
3622 |     @since 3.17.0
3623 |     """
3624 | 
3625 |     version: int
3626 |     """ The version number of this notebook document. """
3627 |     uri: "URI"
3628 |     """ The notebook document's uri. """
3629 | 
3630 | 
3631 | class NotebookDocumentChangeEvent(TypedDict):
3632 |     """A change event for a notebook document.
3633 | 
3634 |     @since 3.17.0
3635 |     """
3636 | 
3637 |     metadata: NotRequired["LSPObject"]
3638 |     """ The changed meta data if any.
3639 | 
3640 |     Note: should always be an object literal (e.g. LSPObject) """
3641 |     cells: NotRequired["__NotebookDocumentChangeEvent_cells_Type_1"]
3642 |     """ Changes to cells """
3643 | 
3644 | 
3645 | class NotebookDocumentIdentifier(TypedDict):
3646 |     """A literal to identify a notebook document in the client.
3647 | 
3648 |     @since 3.17.0
3649 |     """
3650 | 
3651 |     uri: "URI"
3652 |     """ The notebook document's uri. """
3653 | 
3654 | 
3655 | class Registration(TypedDict):
3656 |     """General parameters to to register for an notification or to register a provider."""
3657 | 
3658 |     id: str
3659 |     """ The id used to register the request. The id can be used to deregister
3660 |     the request again. """
3661 |     method: str
3662 |     """ The method / capability to register for. """
3663 |     registerOptions: NotRequired["LSPAny"]
3664 |     """ Options necessary for the registration. """
3665 | 
3666 | 
3667 | class Unregistration(TypedDict):
3668 |     """General parameters to unregister a request or notification."""
3669 | 
3670 |     id: str
3671 |     """ The id used to unregister the request or notification. Usually an id
3672 |     provided during the register request. """
3673 |     method: str
3674 |     """ The method to unregister for. """
3675 | 
3676 | 
3677 | class WorkspaceFoldersInitializeParams(TypedDict):
3678 |     workspaceFolders: NotRequired[list["WorkspaceFolder"] | None]
3679 |     """ The workspace folders configured in the client when the server starts.
3680 | 
3681 |     This property is only available if the client supports workspace folders.
3682 |     It can be `null` if the client supports workspace folders but none are
3683 |     configured.
3684 | 
3685 |     @since 3.6.0 """
3686 | 
3687 | 
3688 | class ServerCapabilities(TypedDict):
3689 |     """Defines the capabilities provided by a language
3690 |     server.
3691 |     """
3692 | 
3693 |     positionEncoding: NotRequired["PositionEncodingKind"]
3694 |     """ The position encoding the server picked from the encodings offered
3695 |     by the client via the client capability `general.positionEncodings`.
3696 | 
3697 |     If the client didn't provide any position encodings the only valid
3698 |     value that a server can return is 'utf-16'.
3699 | 
3700 |     If omitted it defaults to 'utf-16'.
3701 | 
3702 |     @since 3.17.0 """
3703 |     textDocumentSync: NotRequired[Union["TextDocumentSyncOptions", "TextDocumentSyncKind"]]
3704 |     """ Defines how text documents are synced. Is either a detailed structure
3705 |     defining each notification or for backwards compatibility the
3706 |     TextDocumentSyncKind number. """
3707 |     notebookDocumentSync: NotRequired[Union["NotebookDocumentSyncOptions", "NotebookDocumentSyncRegistrationOptions"]]
3708 |     """ Defines how notebook documents are synced.
3709 | 
3710 |     @since 3.17.0 """
3711 |     completionProvider: NotRequired["CompletionOptions"]
3712 |     """ The server provides completion support. """
3713 |     hoverProvider: NotRequired[Union[bool, "HoverOptions"]]
3714 |     """ The server provides hover support. """
3715 |     signatureHelpProvider: NotRequired["SignatureHelpOptions"]
3716 |     """ The server provides signature help support. """
3717 |     declarationProvider: NotRequired[Union[bool, "DeclarationOptions", "DeclarationRegistrationOptions"]]
3718 |     """ The server provides Goto Declaration support. """
3719 |     definitionProvider: NotRequired[Union[bool, "DefinitionOptions"]]
3720 |     """ The server provides goto definition support. """
3721 |     typeDefinitionProvider: NotRequired[Union[bool, "TypeDefinitionOptions", "TypeDefinitionRegistrationOptions"]]
3722 |     """ The server provides Goto Type Definition support. """
3723 |     implementationProvider: NotRequired[Union[bool, "ImplementationOptions", "ImplementationRegistrationOptions"]]
3724 |     """ The server provides Goto Implementation support. """
3725 |     referencesProvider: NotRequired[Union[bool, "ReferenceOptions"]]
3726 |     """ The server provides find references support. """
3727 |     documentHighlightProvider: NotRequired[Union[bool, "DocumentHighlightOptions"]]
3728 |     """ The server provides document highlight support. """
3729 |     documentSymbolProvider: NotRequired[Union[bool, "DocumentSymbolOptions"]]
3730 |     """ The server provides document symbol support. """
3731 |     codeActionProvider: NotRequired[Union[bool, "CodeActionOptions"]]
3732 |     """ The server provides code actions. CodeActionOptions may only be
3733 |     specified if the client states that it supports
3734 |     `codeActionLiteralSupport` in its initial `initialize` request. """
3735 |     codeLensProvider: NotRequired["CodeLensOptions"]
3736 |     """ The server provides code lens. """
3737 |     documentLinkProvider: NotRequired["DocumentLinkOptions"]
3738 |     """ The server provides document link support. """
3739 |     colorProvider: NotRequired[Union[bool, "DocumentColorOptions", "DocumentColorRegistrationOptions"]]
3740 |     """ The server provides color provider support. """
3741 |     workspaceSymbolProvider: NotRequired[Union[bool, "WorkspaceSymbolOptions"]]
3742 |     """ The server provides workspace symbol support. """
3743 |     documentFormattingProvider: NotRequired[Union[bool, "DocumentFormattingOptions"]]
3744 |     """ The server provides document formatting. """
3745 |     documentRangeFormattingProvider: NotRequired[Union[bool, "DocumentRangeFormattingOptions"]]
3746 |     """ The server provides document range formatting. """
3747 |     documentOnTypeFormattingProvider: NotRequired["DocumentOnTypeFormattingOptions"]
3748 |     """ The server provides document formatting on typing. """
3749 |     renameProvider: NotRequired[Union[bool, "RenameOptions"]]
3750 |     """ The server provides rename support. RenameOptions may only be
3751 |     specified if the client states that it supports
3752 |     `prepareSupport` in its initial `initialize` request. """
3753 |     foldingRangeProvider: NotRequired[Union[bool, "FoldingRangeOptions", "FoldingRangeRegistrationOptions"]]
3754 |     """ The server provides folding provider support. """
3755 |     selectionRangeProvider: NotRequired[Union[bool, "SelectionRangeOptions", "SelectionRangeRegistrationOptions"]]
3756 |     """ The server provides selection range support. """
3757 |     executeCommandProvider: NotRequired["ExecuteCommandOptions"]
3758 |     """ The server provides execute command support. """
3759 |     callHierarchyProvider: NotRequired[Union[bool, "CallHierarchyOptions", "CallHierarchyRegistrationOptions"]]
3760 |     """ The server provides call hierarchy support.
3761 | 
3762 |     @since 3.16.0 """
3763 |     linkedEditingRangeProvider: NotRequired[Union[bool, "LinkedEditingRangeOptions", "LinkedEditingRangeRegistrationOptions"]]
3764 |     """ The server provides linked editing range support.
3765 | 
3766 |     @since 3.16.0 """
3767 |     semanticTokensProvider: NotRequired[Union["SemanticTokensOptions", "SemanticTokensRegistrationOptions"]]
3768 |     """ The server provides semantic tokens support.
3769 | 
3770 |     @since 3.16.0 """
3771 |     monikerProvider: NotRequired[Union[bool, "MonikerOptions", "MonikerRegistrationOptions"]]
3772 |     """ The server provides moniker support.
3773 | 
3774 |     @since 3.16.0 """
3775 |     typeHierarchyProvider: NotRequired[Union[bool, "TypeHierarchyOptions", "TypeHierarchyRegistrationOptions"]]
3776 |     """ The server provides type hierarchy support.
3777 | 
3778 |     @since 3.17.0 """
3779 |     inlineValueProvider: NotRequired[Union[bool, "InlineValueOptions", "InlineValueRegistrationOptions"]]
3780 |     """ The server provides inline values.
3781 | 
3782 |     @since 3.17.0 """
3783 |     inlayHintProvider: NotRequired[Union[bool, "InlayHintOptions", "InlayHintRegistrationOptions"]]
3784 |     """ The server provides inlay hints.
3785 | 
3786 |     @since 3.17.0 """
3787 |     diagnosticProvider: NotRequired[Union["DiagnosticOptions", "DiagnosticRegistrationOptions"]]
3788 |     """ The server has support for pull model diagnostics.
3789 | 
3790 |     @since 3.17.0 """
3791 |     workspace: NotRequired["__ServerCapabilities_workspace_Type_1"]
3792 |     """ Workspace specific server capabilities. """
3793 |     experimental: NotRequired["LSPAny"]
3794 |     """ Experimental server capabilities. """
3795 | 
3796 | 
3797 | class VersionedTextDocumentIdentifier(TypedDict):
3798 |     """A text document identifier to denote a specific version of a text document."""
3799 | 
3800 |     version: int
3801 |     """ The version number of this document. """
3802 |     uri: "DocumentUri"
3803 |     """ The text document's uri. """
3804 | 
3805 | 
3806 | class SaveOptions(TypedDict):
3807 |     """Save options."""
3808 | 
3809 |     includeText: NotRequired[bool]
3810 |     """ The client is supposed to include the content on save. """
3811 | 
3812 | 
3813 | class FileEvent(TypedDict):
3814 |     """An event describing a file change."""
3815 | 
3816 |     uri: "DocumentUri"
3817 |     """ The file's uri. """
3818 |     type: "FileChangeType"
3819 |     """ The change type. """
3820 | 
3821 | 
3822 | class FileSystemWatcher(TypedDict):
3823 |     globPattern: "GlobPattern"
3824 |     """ The glob pattern to watch. See {@link GlobPattern glob pattern} for more detail.
3825 | 
3826 |     @since 3.17.0 support for relative patterns. """
3827 |     kind: NotRequired["WatchKind"]
3828 |     """ The kind of events of interest. If omitted it defaults
3829 |     to WatchKind.Create | WatchKind.Change | WatchKind.Delete
3830 |     which is 7. """
3831 | 
3832 | 
3833 | class Diagnostic(TypedDict):
3834 |     """Represents a diagnostic, such as a compiler error or warning. Diagnostic objects
3835 |     are only valid in the scope of a resource.
3836 |     """
3837 | 
3838 |     range: "Range"
3839 |     """ The range at which the message applies """
3840 |     severity: NotRequired["DiagnosticSeverity"]
3841 |     """ The diagnostic's severity. Can be omitted. If omitted it is up to the
3842 |     client to interpret diagnostics as error, warning, info or hint. """
3843 |     code: NotRequired[int | str]
3844 |     """ The diagnostic's code, which usually appear in the user interface. """
3845 |     codeDescription: NotRequired["CodeDescription"]
3846 |     """ An optional property to describe the error code.
3847 |     Requires the code field (above) to be present/not null.
3848 | 
3849 |     @since 3.16.0 """
3850 |     source: NotRequired[str]
3851 |     """ A human-readable string describing the source of this
3852 |     diagnostic, e.g. 'typescript' or 'super lint'. It usually
3853 |     appears in the user interface. """
3854 |     message: str
3855 |     """ The diagnostic's message. It usually appears in the user interface """
3856 |     tags: NotRequired[list["DiagnosticTag"]]
3857 |     """ Additional metadata about the diagnostic.
3858 | 
3859 |     @since 3.15.0 """
3860 |     relatedInformation: NotRequired[list["DiagnosticRelatedInformation"]]
3861 |     """ An array of related diagnostic information, e.g. when symbol-names within
3862 |     a scope collide all definitions can be marked via this property. """
3863 |     data: NotRequired["LSPAny"]
3864 |     """ A data entry field that is preserved between a `textDocument/publishDiagnostics`
3865 |     notification and `textDocument/codeAction` request.
3866 | 
3867 |     @since 3.16.0 """
3868 | 
3869 | 
3870 | class CompletionContext(TypedDict):
3871 |     """Contains additional information about the context in which a completion request is triggered."""
3872 | 
3873 |     triggerKind: "CompletionTriggerKind"
3874 |     """ How the completion was triggered. """
3875 |     triggerCharacter: NotRequired[str]
3876 |     """ The trigger character (a single character) that has trigger code complete.
3877 |     Is undefined if `triggerKind !== CompletionTriggerKind.TriggerCharacter` """
3878 | 
3879 | 
3880 | class CompletionItemLabelDetails(TypedDict):
3881 |     """Additional details for a completion item label.
3882 | 
3883 |     @since 3.17.0
3884 |     """
3885 | 
3886 |     detail: NotRequired[str]
3887 |     """ An optional string which is rendered less prominently directly after {@link CompletionItem.label label},
3888 |     without any spacing. Should be used for function signatures and type annotations. """
3889 |     description: NotRequired[str]
3890 |     """ An optional string which is rendered less prominently after {@link CompletionItem.detail}. Should be used
3891 |     for fully qualified names and file paths. """
3892 | 
3893 | 
3894 | class InsertReplaceEdit(TypedDict):
3895 |     """A special text edit to provide an insert and a replace operation.
3896 | 
3897 |     @since 3.16.0
3898 |     """
3899 | 
3900 |     newText: str
3901 |     """ The string to be inserted. """
3902 |     insert: "Range"
3903 |     """ The range if the insert is requested """
3904 |     replace: "Range"
3905 |     """ The range if the replace is requested. """
3906 | 
3907 | 
3908 | class CompletionOptions(TypedDict):
3909 |     """Completion options."""
3910 | 
3911 |     triggerCharacters: NotRequired[list[str]]
3912 |     """ Most tools trigger completion request automatically without explicitly requesting
3913 |     it using a keyboard shortcut (e.g. Ctrl+Space). Typically they do so when the user
3914 |     starts to type an identifier. For example if the user types `c` in a JavaScript file
3915 |     code complete will automatically pop up present `console` besides others as a
3916 |     completion item. Characters that make up identifiers don't need to be listed here.
3917 | 
3918 |     If code complete should automatically be trigger on characters not being valid inside
3919 |     an identifier (for example `.` in JavaScript) list them in `triggerCharacters`. """
3920 |     allCommitCharacters: NotRequired[list[str]]
3921 |     """ The list of all possible characters that commit a completion. This field can be used
3922 |     if clients don't support individual commit characters per completion item. See
3923 |     `ClientCapabilities.textDocument.completion.completionItem.commitCharactersSupport`
3924 | 
3925 |     If a server provides both `allCommitCharacters` and commit characters on an individual
3926 |     completion item the ones on the completion item win.
3927 | 
3928 |     @since 3.2.0 """
3929 |     resolveProvider: NotRequired[bool]
3930 |     """ The server provides support to resolve additional
3931 |     information for a completion item. """
3932 |     completionItem: NotRequired["__CompletionOptions_completionItem_Type_2"]
3933 |     """ The server supports the following `CompletionItem` specific
3934 |     capabilities.
3935 | 
3936 |     @since 3.17.0 """
3937 |     workDoneProgress: NotRequired[bool]
3938 | 
3939 | 
3940 | class HoverOptions(TypedDict):
3941 |     """Hover options."""
3942 | 
3943 |     workDoneProgress: NotRequired[bool]
3944 | 
3945 | 
3946 | class SignatureHelpContext(TypedDict):
3947 |     """Additional information about the context in which a signature help request was triggered.
3948 | 
3949 |     @since 3.15.0
3950 |     """
3951 | 
3952 |     triggerKind: "SignatureHelpTriggerKind"
3953 |     """ Action that caused signature help to be triggered. """
3954 |     triggerCharacter: NotRequired[str]
3955 |     """ Character that caused signature help to be triggered.
3956 | 
3957 |     This is undefined when `triggerKind !== SignatureHelpTriggerKind.TriggerCharacter` """
3958 |     isRetrigger: bool
3959 |     """ `true` if signature help was already showing when it was triggered.
3960 | 
3961 |     Retriggers occurs when the signature help is already active and can be caused by actions such as
3962 |     typing a trigger character, a cursor move, or document content changes. """
3963 |     activeSignatureHelp: NotRequired["SignatureHelp"]
3964 |     """ The currently active `SignatureHelp`.
3965 | 
3966 |     The `activeSignatureHelp` has its `SignatureHelp.activeSignature` field updated based on
3967 |     the user navigating through available signatures. """
3968 | 
3969 | 
3970 | class SignatureInformation(TypedDict):
3971 |     """Represents the signature of something callable. A signature
3972 |     can have a label, like a function-name, a doc-comment, and
3973 |     a set of parameters.
3974 |     """
3975 | 
3976 |     label: str
3977 |     """ The label of this signature. Will be shown in
3978 |     the UI. """
3979 |     documentation: NotRequired[Union[str, "MarkupContent"]]
3980 |     """ The human-readable doc-comment of this signature. Will be shown
3981 |     in the UI but can be omitted. """
3982 |     parameters: NotRequired[list["ParameterInformation"]]
3983 |     """ The parameters of this signature. """
3984 |     activeParameter: NotRequired[Uint]
3985 |     """ The index of the active parameter.
3986 | 
3987 |     If provided, this is used in place of `SignatureHelp.activeParameter`.
3988 | 
3989 |     @since 3.16.0 """
3990 | 
3991 | 
3992 | class SignatureHelpOptions(TypedDict):
3993 |     """Server Capabilities for a {@link SignatureHelpRequest}."""
3994 | 
3995 |     triggerCharacters: NotRequired[list[str]]
3996 |     """ List of characters that trigger signature help automatically. """
3997 |     retriggerCharacters: NotRequired[list[str]]
3998 |     """ List of characters that re-trigger signature help.
3999 | 
4000 |     These trigger characters are only active when signature help is already showing. All trigger characters
4001 |     are also counted as re-trigger characters.
4002 | 
4003 |     @since 3.15.0 """
4004 |     workDoneProgress: NotRequired[bool]
4005 | 
4006 | 
4007 | class DefinitionOptions(TypedDict):
4008 |     """Server Capabilities for a {@link DefinitionRequest}."""
4009 | 
4010 |     workDoneProgress: NotRequired[bool]
4011 | 
4012 | 
4013 | class ReferenceContext(TypedDict):
4014 |     """Value-object that contains additional information when
4015 |     requesting references.
4016 |     """
4017 | 
4018 |     includeDeclaration: bool
4019 |     """ Include the declaration of the current symbol. """
4020 | 
4021 | 
4022 | class ReferenceOptions(TypedDict):
4023 |     """Reference options."""
4024 | 
4025 |     workDoneProgress: NotRequired[bool]
4026 | 
4027 | 
4028 | class DocumentHighlightOptions(TypedDict):
4029 |     """Provider options for a {@link DocumentHighlightRequest}."""
4030 | 
4031 |     workDoneProgress: NotRequired[bool]
4032 | 
4033 | 
4034 | class BaseSymbolInformation(TypedDict):
4035 |     """A base for all symbol information."""
4036 | 
4037 |     name: str
4038 |     """ The name of this symbol. """
4039 |     kind: "SymbolKind"
4040 |     """ The kind of this symbol. """
4041 |     tags: NotRequired[list["SymbolTag"]]
4042 |     """ Tags for this symbol.
4043 | 
4044 |     @since 3.16.0 """
4045 |     containerName: NotRequired[str]
4046 |     """ The name of the symbol containing this symbol. This information is for
4047 |     user interface purposes (e.g. to render a qualifier in the user interface
4048 |     if necessary). It can't be used to re-infer a hierarchy for the document
4049 |     symbols. """
4050 | 
4051 | 
4052 | class DocumentSymbolOptions(TypedDict):
4053 |     """Provider options for a {@link DocumentSymbolRequest}."""
4054 | 
4055 |     label: NotRequired[str]
4056 |     """ A human-readable string that is shown when multiple outlines trees
4057 |     are shown for the same document.
4058 | 
4059 |     @since 3.16.0 """
4060 |     workDoneProgress: NotRequired[bool]
4061 | 
4062 | 
4063 | class CodeActionContext(TypedDict):
4064 |     """Contains additional diagnostic information about the context in which
4065 |     a {@link CodeActionProvider.provideCodeActions code action} is run.
4066 |     """
4067 | 
4068 |     diagnostics: list["Diagnostic"]
4069 |     """ An array of diagnostics known on the client side overlapping the range provided to the
4070 |     `textDocument/codeAction` request. They are provided so that the server knows which
4071 |     errors are currently presented to the user for the given range. There is no guarantee
4072 |     that these accurately reflect the error state of the resource. The primary parameter
4073 |     to compute code actions is the provided range. """
4074 |     only: NotRequired[list["CodeActionKind"]]
4075 |     """ Requested kind of actions to return.
4076 | 
4077 |     Actions not of this kind are filtered out by the client before being shown. So servers
4078 |     can omit computing them. """
4079 |     triggerKind: NotRequired["CodeActionTriggerKind"]
4080 |     """ The reason why code actions were requested.
4081 | 
4082 |     @since 3.17.0 """
4083 | 
4084 | 
4085 | class CodeActionOptions(TypedDict):
4086 |     """Provider options for a {@link CodeActionRequest}."""
4087 | 
4088 |     codeActionKinds: NotRequired[list["CodeActionKind"]]
4089 |     """ CodeActionKinds that this server may return.
4090 | 
4091 |     The list of kinds may be generic, such as `CodeActionKind.Refactor`, or the server
4092 |     may list out every specific kind they provide. """
4093 |     resolveProvider: NotRequired[bool]
4094 |     """ The server provides support to resolve additional
4095 |     information for a code action.
4096 | 
4097 |     @since 3.16.0 """
4098 |     workDoneProgress: NotRequired[bool]
4099 | 
4100 | 
4101 | class WorkspaceSymbolOptions(TypedDict):
4102 |     """Server capabilities for a {@link WorkspaceSymbolRequest}."""
4103 | 
4104 |     resolveProvider: NotRequired[bool]
4105 |     """ The server provides support to resolve additional
4106 |     information for a workspace symbol.
4107 | 
4108 |     @since 3.17.0 """
4109 |     workDoneProgress: NotRequired[bool]
4110 | 
4111 | 
4112 | class CodeLensOptions(TypedDict):
4113 |     """Code Lens provider options of a {@link CodeLensRequest}."""
4114 | 
4115 |     resolveProvider: NotRequired[bool]
4116 |     """ Code lens has a resolve provider as well. """
4117 |     workDoneProgress: NotRequired[bool]
4118 | 
4119 | 
4120 | class DocumentLinkOptions(TypedDict):
4121 |     """Provider options for a {@link DocumentLinkRequest}."""
4122 | 
4123 |     resolveProvider: NotRequired[bool]
4124 |     """ Document links have a resolve provider as well. """
4125 |     workDoneProgress: NotRequired[bool]
4126 | 
4127 | 
4128 | class FormattingOptions(TypedDict):
4129 |     """Value-object describing what options formatting should use."""
4130 | 
4131 |     tabSize: Uint
4132 |     """ Size of a tab in spaces. """
4133 |     insertSpaces: bool
4134 |     """ Prefer spaces over tabs. """
4135 |     trimTrailingWhitespace: NotRequired[bool]
4136 |     """ Trim trailing whitespace on a line.
4137 | 
4138 |     @since 3.15.0 """
4139 |     insertFinalNewline: NotRequired[bool]
4140 |     """ Insert a newline character at the end of the file if one does not exist.
4141 | 
4142 |     @since 3.15.0 """
4143 |     trimFinalNewlines: NotRequired[bool]
4144 |     """ Trim all newlines after the final newline at the end of the file.
4145 | 
4146 |     @since 3.15.0 """
4147 | 
4148 | 
4149 | class DocumentFormattingOptions(TypedDict):
4150 |     """Provider options for a {@link DocumentFormattingRequest}."""
4151 | 
4152 |     workDoneProgress: NotRequired[bool]
4153 | 
4154 | 
4155 | class DocumentRangeFormattingOptions(TypedDict):
4156 |     """Provider options for a {@link DocumentRangeFormattingRequest}."""
4157 | 
4158 |     workDoneProgress: NotRequired[bool]
4159 | 
4160 | 
4161 | class DocumentOnTypeFormattingOptions(TypedDict):
4162 |     """Provider options for a {@link DocumentOnTypeFormattingRequest}."""
4163 | 
4164 |     firstTriggerCharacter: str
4165 |     """ A character on which formatting should be triggered, like `{`. """
4166 |     moreTriggerCharacter: NotRequired[list[str]]
4167 |     """ More trigger characters. """
4168 | 
4169 | 
4170 | class RenameOptions(TypedDict):
4171 |     """Provider options for a {@link RenameRequest}."""
4172 | 
4173 |     prepareProvider: NotRequired[bool]
4174 |     """ Renames should be checked and tested before being executed.
4175 | 
4176 |     @since version 3.12.0 """
4177 |     workDoneProgress: NotRequired[bool]
4178 | 
4179 | 
4180 | class ExecuteCommandOptions(TypedDict):
4181 |     """The server capabilities of a {@link ExecuteCommandRequest}."""
4182 | 
4183 |     commands: list[str]
4184 |     """ The commands to be executed on the server """
4185 |     workDoneProgress: NotRequired[bool]
4186 | 
4187 | 
4188 | class SemanticTokensLegend(TypedDict):
4189 |     """@since 3.16.0"""
4190 | 
4191 |     tokenTypes: list[str]
4192 |     """ The token types a server uses. """
4193 |     tokenModifiers: list[str]
4194 |     """ The token modifiers a server uses. """
4195 | 
4196 | 
4197 | class OptionalVersionedTextDocumentIdentifier(TypedDict):
4198 |     """A text document identifier to optionally denote a specific version of a text document."""
4199 | 
4200 |     version: int | None
4201 |     """ The version number of this document. If a versioned text document identifier
4202 |     is sent from the server to the client and the file is not open in the editor
4203 |     (the server has not received an open notification before) the server can send
4204 |     `null` to indicate that the version is unknown and the content on disk is the
4205 |     truth (as specified with document content ownership). """
4206 |     uri: "DocumentUri"
4207 |     """ The text document's uri. """
4208 | 
4209 | 
4210 | class AnnotatedTextEdit(TypedDict):
4211 |     """A special text edit with an additional change annotation.
4212 | 
4213 |     @since 3.16.0.
4214 |     """
4215 | 
4216 |     annotationId: "ChangeAnnotationIdentifier"
4217 |     """ The actual identifier of the change annotation """
4218 |     range: "Range"
4219 |     """ The range of the text document to be manipulated. To insert
4220 |     text into a document create a range where start === end. """
4221 |     newText: str
4222 |     """ The string to be inserted. For delete operations use an
4223 |     empty string. """
4224 | 
4225 | 
4226 | class ResourceOperation(TypedDict):
4227 |     """A generic resource operation."""
4228 | 
4229 |     kind: str
4230 |     """ The resource operation kind. """
4231 |     annotationId: NotRequired["ChangeAnnotationIdentifier"]
4232 |     """ An optional annotation identifier describing the operation.
4233 | 
4234 |     @since 3.16.0 """
4235 | 
4236 | 
4237 | class CreateFileOptions(TypedDict):
4238 |     """Options to create a file."""
4239 | 
4240 |     overwrite: NotRequired[bool]
4241 |     """ Overwrite existing file. Overwrite wins over `ignoreIfExists` """
4242 |     ignoreIfExists: NotRequired[bool]
4243 |     """ Ignore if exists. """
4244 | 
4245 | 
4246 | class RenameFileOptions(TypedDict):
4247 |     """Rename file options"""
4248 | 
4249 |     overwrite: NotRequired[bool]
4250 |     """ Overwrite target if existing. Overwrite wins over `ignoreIfExists` """
4251 |     ignoreIfExists: NotRequired[bool]
4252 |     """ Ignores if target exists. """
4253 | 
4254 | 
4255 | class DeleteFileOptions(TypedDict):
4256 |     """Delete file options"""
4257 | 
4258 |     recursive: NotRequired[bool]
4259 |     """ Delete the content recursively if a folder is denoted. """
4260 |     ignoreIfNotExists: NotRequired[bool]
4261 |     """ Ignore the operation if the file doesn't exist. """
4262 | 
4263 | 
4264 | class FileOperationPattern(TypedDict):
4265 |     """A pattern to describe in which file operation requests or notifications
4266 |     the server is interested in receiving.
4267 | 
4268 |     @since 3.16.0
4269 |     """
4270 | 
4271 |     glob: str
4272 |     """ The glob pattern to match. Glob patterns can have the following syntax:
4273 |     - `*` to match one or more characters in a path segment
4274 |     - `?` to match on one character in a path segment
4275 |     - `**` to match any number of path segments, including none
4276 |     - `{}` to group sub patterns into an OR expression. (e.g. `**\u200b/*.{ts,js}` matches all TypeScript and JavaScript files)
4277 |     - `[]` to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …)
4278 |     - `[!...]` 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`) """
4279 |     matches: NotRequired["FileOperationPatternKind"]
4280 |     """ Whether to match files or folders with this pattern.
4281 | 
4282 |     Matches both if undefined. """
4283 |     options: NotRequired["FileOperationPatternOptions"]
4284 |     """ Additional options used during matching. """
4285 | 
4286 | 
4287 | class WorkspaceFullDocumentDiagnosticReport(TypedDict):
4288 |     """A full document diagnostic report for a workspace diagnostic result.
4289 | 
4290 |     @since 3.17.0
4291 |     """
4292 | 
4293 |     uri: "DocumentUri"
4294 |     """ The URI for which diagnostic information is reported. """
4295 |     version: int | None
4296 |     """ The version number for which the diagnostics are reported.
4297 |     If the document is not marked as open `null` can be provided. """
4298 |     kind: Literal["full"]
4299 |     """ A full document diagnostic report. """
4300 |     resultId: NotRequired[str]
4301 |     """ An optional result id. If provided it will
4302 |     be sent on the next diagnostic request for the
4303 |     same document. """
4304 |     items: list["Diagnostic"]
4305 |     """ The actual items. """
4306 | 
4307 | 
4308 | class WorkspaceUnchangedDocumentDiagnosticReport(TypedDict):
4309 |     """An unchanged document diagnostic report for a workspace diagnostic result.
4310 | 
4311 |     @since 3.17.0
4312 |     """
4313 | 
4314 |     uri: "DocumentUri"
4315 |     """ The URI for which diagnostic information is reported. """
4316 |     version: int | None
4317 |     """ The version number for which the diagnostics are reported.
4318 |     If the document is not marked as open `null` can be provided. """
4319 |     kind: Literal["unchanged"]
4320 |     """ A document diagnostic report indicating
4321 |     no changes to the last result. A server can
4322 |     only return `unchanged` if result ids are
4323 |     provided. """
4324 |     resultId: str
4325 |     """ A result id which will be sent on the next
4326 |     diagnostic request for the same document. """
4327 | 
4328 | 
4329 | class NotebookCell(TypedDict):
4330 |     """A notebook cell.
4331 | 
4332 |     A cell's document URI must be unique across ALL notebook
4333 |     cells and can therefore be used to uniquely identify a
4334 |     notebook cell or the cell's text document.
4335 | 
4336 |     @since 3.17.0
4337 |     """
4338 | 
4339 |     kind: "NotebookCellKind"
4340 |     """ The cell's kind """
4341 |     document: "DocumentUri"
4342 |     """ The URI of the cell's text document
4343 |     content. """
4344 |     metadata: NotRequired["LSPObject"]
4345 |     """ Additional metadata stored with the cell.
4346 | 
4347 |     Note: should always be an object literal (e.g. LSPObject) """
4348 |     executionSummary: NotRequired["ExecutionSummary"]
4349 |     """ Additional execution summary information
4350 |     if supported by the client. """
4351 | 
4352 | 
4353 | class NotebookCellArrayChange(TypedDict):
4354 |     """A change describing how to move a `NotebookCell`
4355 |     array from state S to S'.
4356 | 
4357 |     @since 3.17.0
4358 |     """
4359 | 
4360 |     start: Uint
4361 |     """ The start oftest of the cell that changed. """
4362 |     deleteCount: Uint
4363 |     """ The deleted cells """
4364 |     cells: NotRequired[list["NotebookCell"]]
4365 |     """ The new cells, if any """
4366 | 
4367 | 
4368 | class ClientCapabilities(TypedDict):
4369 |     """Defines the capabilities provided by the client."""
4370 | 
4371 |     workspace: NotRequired["WorkspaceClientCapabilities"]
4372 |     """ Workspace specific client capabilities. """
4373 |     textDocument: NotRequired["TextDocumentClientCapabilities"]
4374 |     """ Text document specific client capabilities. """
4375 |     notebookDocument: NotRequired["NotebookDocumentClientCapabilities"]
4376 |     """ Capabilities specific to the notebook document support.
4377 | 
4378 |     @since 3.17.0 """
4379 |     window: NotRequired["WindowClientCapabilities"]
4380 |     """ Window specific client capabilities. """
4381 |     general: NotRequired["GeneralClientCapabilities"]
4382 |     """ General client capabilities.
4383 | 
4384 |     @since 3.16.0 """
4385 |     experimental: NotRequired["LSPAny"]
4386 |     """ Experimental client capabilities. """
4387 | 
4388 | 
4389 | class TextDocumentSyncOptions(TypedDict):
4390 |     openClose: NotRequired[bool]
4391 |     """ Open and close notifications are sent to the server. If omitted open close notification should not
4392 |     be sent. """
4393 |     change: NotRequired["TextDocumentSyncKind"]
4394 |     """ Change notifications are sent to the server. See TextDocumentSyncKind.None, TextDocumentSyncKind.Full
4395 |     and TextDocumentSyncKind.Incremental. If omitted it defaults to TextDocumentSyncKind.None. """
4396 |     willSave: NotRequired[bool]
4397 |     """ If present will save notifications are sent to the server. If omitted the notification should not be
4398 |     sent. """
4399 |     willSaveWaitUntil: NotRequired[bool]
4400 |     """ If present will save wait until requests are sent to the server. If omitted the request should not be
4401 |     sent. """
4402 |     save: NotRequired[Union[bool, "SaveOptions"]]
4403 |     """ If present save notifications are sent to the server. If omitted the notification should not be
4404 |     sent. """
4405 | 
4406 | 
4407 | class NotebookDocumentSyncOptions(TypedDict):
4408 |     """Options specific to a notebook plus its cells
4409 |     to be synced to the server.
4410 | 
4411 |     If a selector provides a notebook document
4412 |     filter but no cell selector all cells of a
4413 |     matching notebook document will be synced.
4414 | 
4415 |     If a selector provides no notebook document
4416 |     filter but only a cell selector all notebook
4417 |     document that contain at least one matching
4418 |     cell will be synced.
4419 | 
4420 |     @since 3.17.0
4421 |     """
4422 | 
4423 |     notebookSelector: list[
4424 |         Union[
4425 |             "__NotebookDocumentSyncOptions_notebookSelector_Type_1",
4426 |             "__NotebookDocumentSyncOptions_notebookSelector_Type_2",
4427 |         ]
4428 |     ]
4429 |     """ The notebooks to be synced """
4430 |     save: NotRequired[bool]
4431 |     """ Whether save notification should be forwarded to
4432 |     the server. Will only be honored if mode === `notebook`. """
4433 | 
4434 | 
4435 | class NotebookDocumentSyncRegistrationOptions(TypedDict):
4436 |     """Registration options specific to a notebook.
4437 | 
4438 |     @since 3.17.0
4439 |     """
4440 | 
4441 |     notebookSelector: list[
4442 |         Union[
4443 |             "__NotebookDocumentSyncOptions_notebookSelector_Type_3",
4444 |             "__NotebookDocumentSyncOptions_notebookSelector_Type_4",
4445 |         ]
4446 |     ]
4447 |     """ The notebooks to be synced """
4448 |     save: NotRequired[bool]
4449 |     """ Whether save notification should be forwarded to
4450 |     the server. Will only be honored if mode === `notebook`. """
4451 |     id: NotRequired[str]
4452 |     """ The id used to register the request. The id can be used to deregister
4453 |     the request again. See also Registration#id. """
4454 | 
4455 | 
4456 | class WorkspaceFoldersServerCapabilities(TypedDict):
4457 |     supported: NotRequired[bool]
4458 |     """ The server has support for workspace folders """
4459 |     changeNotifications: NotRequired[str | bool]
4460 |     """ Whether the server wants to receive workspace folder
4461 |     change notifications.
4462 | 
4463 |     If a string is provided the string is treated as an ID
4464 |     under which the notification is registered on the client
4465 |     side. The ID can be used to unregister for these events
4466 |     using the `client/unregisterCapability` request. """
4467 | 
4468 | 
4469 | class FileOperationOptions(TypedDict):
4470 |     """Options for notifications/requests for user operations on files.
4471 | 
4472 |     @since 3.16.0
4473 |     """
4474 | 
4475 |     didCreate: NotRequired["FileOperationRegistrationOptions"]
4476 |     """ The server is interested in receiving didCreateFiles notifications. """
4477 |     willCreate: NotRequired["FileOperationRegistrationOptions"]
4478 |     """ The server is interested in receiving willCreateFiles requests. """
4479 |     didRename: NotRequired["FileOperationRegistrationOptions"]
4480 |     """ The server is interested in receiving didRenameFiles notifications. """
4481 |     willRename: NotRequired["FileOperationRegistrationOptions"]
4482 |     """ The server is interested in receiving willRenameFiles requests. """
4483 |     didDelete: NotRequired["FileOperationRegistrationOptions"]
4484 |     """ The server is interested in receiving didDeleteFiles file notifications. """
4485 |     willDelete: NotRequired["FileOperationRegistrationOptions"]
4486 |     """ The server is interested in receiving willDeleteFiles file requests. """
4487 | 
4488 | 
4489 | class CodeDescription(TypedDict):
4490 |     """Structure to capture a description for an error code.
4491 | 
4492 |     @since 3.16.0
4493 |     """
4494 | 
4495 |     href: "URI"
4496 |     """ An URI to open with more information about the diagnostic error. """
4497 | 
4498 | 
4499 | class DiagnosticRelatedInformation(TypedDict):
4500 |     """Represents a related message and source code location for a diagnostic. This should be
4501 |     used to point to code locations that cause or related to a diagnostics, e.g when duplicating
4502 |     a symbol in a scope.
4503 |     """
4504 | 
4505 |     location: "Location"
4506 |     """ The location of this related diagnostic information. """
4507 |     message: str
4508 |     """ The message of this related diagnostic information. """
4509 | 
4510 | 
4511 | class ParameterInformation(TypedDict):
4512 |     """Represents a parameter of a callable-signature. A parameter can
4513 |     have a label and a doc-comment.
4514 |     """
4515 | 
4516 |     label: str | list[Uint | Uint]
4517 |     """ The label of this parameter information.
4518 | 
4519 |     Either a string or an inclusive start and exclusive end offsets within its containing
4520 |     signature label. (see SignatureInformation.label). The offsets are based on a UTF-16
4521 |     string representation as `Position` and `Range` does.
4522 | 
4523 |     *Note*: a label of type string should be a substring of its containing signature label.
4524 |     Its intended use case is to highlight the parameter label part in the `SignatureInformation.label`. """
4525 |     documentation: NotRequired[Union[str, "MarkupContent"]]
4526 |     """ The human-readable doc-comment of this parameter. Will be shown
4527 |     in the UI but can be omitted. """
4528 | 
4529 | 
4530 | class NotebookCellTextDocumentFilter(TypedDict):
4531 |     """A notebook cell text document filter denotes a cell text
4532 |     document by different properties.
4533 | 
4534 |     @since 3.17.0
4535 |     """
4536 | 
4537 |     notebook: Union[str, "NotebookDocumentFilter"]
4538 |     """ A filter that matches against the notebook
4539 |     containing the notebook cell. If a string
4540 |     value is provided it matches against the
4541 |     notebook type. '*' matches every notebook. """
4542 |     language: NotRequired[str]
4543 |     """ A language id like `python`.
4544 | 
4545 |     Will be matched against the language id of the
4546 |     notebook cell document. '*' matches every language. """
4547 | 
4548 | 
4549 | class FileOperationPatternOptions(TypedDict):
4550 |     """Matching options for the file operation pattern.
4551 | 
4552 |     @since 3.16.0
4553 |     """
4554 | 
4555 |     ignoreCase: NotRequired[bool]
4556 |     """ The pattern should be matched ignoring casing. """
4557 | 
4558 | 
4559 | class ExecutionSummary(TypedDict):
4560 |     executionOrder: Uint
4561 |     """ A strict monotonically increasing value
4562 |     indicating the execution order of a cell
4563 |     inside a notebook. """
4564 |     success: NotRequired[bool]
4565 |     """ Whether the execution was successful or
4566 |     not if known by the client. """
4567 | 
4568 | 
4569 | class WorkspaceClientCapabilities(TypedDict):
4570 |     """Workspace specific client capabilities."""
4571 | 
4572 |     applyEdit: NotRequired[bool]
4573 |     """ The client supports applying batch edits
4574 |     to the workspace by supporting the request
4575 |     'workspace/applyEdit' """
4576 |     workspaceEdit: NotRequired["WorkspaceEditClientCapabilities"]
4577 |     """ Capabilities specific to `WorkspaceEdit`s. """
4578 |     didChangeConfiguration: NotRequired["DidChangeConfigurationClientCapabilities"]
4579 |     """ Capabilities specific to the `workspace/didChangeConfiguration` notification. """
4580 |     didChangeWatchedFiles: NotRequired["DidChangeWatchedFilesClientCapabilities"]
4581 |     """ Capabilities specific to the `workspace/didChangeWatchedFiles` notification. """
4582 |     symbol: NotRequired["WorkspaceSymbolClientCapabilities"]
4583 |     """ Capabilities specific to the `workspace/symbol` request. """
4584 |     executeCommand: NotRequired["ExecuteCommandClientCapabilities"]
4585 |     """ Capabilities specific to the `workspace/executeCommand` request. """
4586 |     workspaceFolders: NotRequired[bool]
4587 |     """ The client has support for workspace folders.
4588 | 
4589 |     @since 3.6.0 """
4590 |     configuration: NotRequired[bool]
4591 |     """ The client supports `workspace/configuration` requests.
4592 | 
4593 |     @since 3.6.0 """
4594 |     semanticTokens: NotRequired["SemanticTokensWorkspaceClientCapabilities"]
4595 |     """ Capabilities specific to the semantic token requests scoped to the
4596 |     workspace.
4597 | 
4598 |     @since 3.16.0. """
4599 |     codeLens: NotRequired["CodeLensWorkspaceClientCapabilities"]
4600 |     """ Capabilities specific to the code lens requests scoped to the
4601 |     workspace.
4602 | 
4603 |     @since 3.16.0. """
4604 |     fileOperations: NotRequired["FileOperationClientCapabilities"]
4605 |     """ The client has support for file notifications/requests for user operations on files.
4606 | 
4607 |     Since 3.16.0 """
4608 |     inlineValue: NotRequired["InlineValueWorkspaceClientCapabilities"]
4609 |     """ Capabilities specific to the inline values requests scoped to the
4610 |     workspace.
4611 | 
4612 |     @since 3.17.0. """
4613 |     inlayHint: NotRequired["InlayHintWorkspaceClientCapabilities"]
4614 |     """ Capabilities specific to the inlay hint requests scoped to the
4615 |     workspace.
4616 | 
4617 |     @since 3.17.0. """
4618 |     diagnostics: NotRequired["DiagnosticWorkspaceClientCapabilities"]
4619 |     """ Capabilities specific to the diagnostic requests scoped to the
4620 |     workspace.
4621 | 
4622 |     @since 3.17.0. """
4623 | 
4624 | 
4625 | class TextDocumentClientCapabilities(TypedDict):
4626 |     """Text document specific client capabilities."""
4627 | 
4628 |     synchronization: NotRequired["TextDocumentSyncClientCapabilities"]
4629 |     """ Defines which synchronization capabilities the client supports. """
4630 |     completion: NotRequired["CompletionClientCapabilities"]
4631 |     """ Capabilities specific to the `textDocument/completion` request. """
4632 |     hover: NotRequired["HoverClientCapabilities"]
4633 |     """ Capabilities specific to the `textDocument/hover` request. """
4634 |     signatureHelp: NotRequired["SignatureHelpClientCapabilities"]
4635 |     """ Capabilities specific to the `textDocument/signatureHelp` request. """
4636 |     declaration: NotRequired["DeclarationClientCapabilities"]
4637 |     """ Capabilities specific to the `textDocument/declaration` request.
4638 | 
4639 |     @since 3.14.0 """
4640 |     definition: NotRequired["DefinitionClientCapabilities"]
4641 |     """ Capabilities specific to the `textDocument/definition` request. """
4642 |     typeDefinition: NotRequired["TypeDefinitionClientCapabilities"]
4643 |     """ Capabilities specific to the `textDocument/typeDefinition` request.
4644 | 
4645 |     @since 3.6.0 """
4646 |     implementation: NotRequired["ImplementationClientCapabilities"]
4647 |     """ Capabilities specific to the `textDocument/implementation` request.
4648 | 
4649 |     @since 3.6.0 """
4650 |     references: NotRequired["ReferenceClientCapabilities"]
4651 |     """ Capabilities specific to the `textDocument/references` request. """
4652 |     documentHighlight: NotRequired["DocumentHighlightClientCapabilities"]
4653 |     """ Capabilities specific to the `textDocument/documentHighlight` request. """
4654 |     documentSymbol: NotRequired["DocumentSymbolClientCapabilities"]
4655 |     """ Capabilities specific to the `textDocument/documentSymbol` request. """
4656 |     codeAction: NotRequired["CodeActionClientCapabilities"]
4657 |     """ Capabilities specific to the `textDocument/codeAction` request. """
4658 |     codeLens: NotRequired["CodeLensClientCapabilities"]
4659 |     """ Capabilities specific to the `textDocument/codeLens` request. """
4660 |     documentLink: NotRequired["DocumentLinkClientCapabilities"]
4661 |     """ Capabilities specific to the `textDocument/documentLink` request. """
4662 |     colorProvider: NotRequired["DocumentColorClientCapabilities"]
4663 |     """ Capabilities specific to the `textDocument/documentColor` and the
4664 |     `textDocument/colorPresentation` request.
4665 | 
4666 |     @since 3.6.0 """
4667 |     formatting: NotRequired["DocumentFormattingClientCapabilities"]
4668 |     """ Capabilities specific to the `textDocument/formatting` request. """
4669 |     rangeFormatting: NotRequired["DocumentRangeFormattingClientCapabilities"]
4670 |     """ Capabilities specific to the `textDocument/rangeFormatting` request. """
4671 |     onTypeFormatting: NotRequired["DocumentOnTypeFormattingClientCapabilities"]
4672 |     """ Capabilities specific to the `textDocument/onTypeFormatting` request. """
4673 |     rename: NotRequired["RenameClientCapabilities"]
4674 |     """ Capabilities specific to the `textDocument/rename` request. """
4675 |     foldingRange: NotRequired["FoldingRangeClientCapabilities"]
4676 |     """ Capabilities specific to the `textDocument/foldingRange` request.
4677 | 
4678 |     @since 3.10.0 """
4679 |     selectionRange: NotRequired["SelectionRangeClientCapabilities"]
4680 |     """ Capabilities specific to the `textDocument/selectionRange` request.
4681 | 
4682 |     @since 3.15.0 """
4683 |     publishDiagnostics: NotRequired["PublishDiagnosticsClientCapabilities"]
4684 |     """ Capabilities specific to the `textDocument/publishDiagnostics` notification. """
4685 |     callHierarchy: NotRequired["CallHierarchyClientCapabilities"]
4686 |     """ Capabilities specific to the various call hierarchy requests.
4687 | 
4688 |     @since 3.16.0 """
4689 |     semanticTokens: NotRequired["SemanticTokensClientCapabilities"]
4690 |     """ Capabilities specific to the various semantic token request.
4691 | 
4692 |     @since 3.16.0 """
4693 |     linkedEditingRange: NotRequired["LinkedEditingRangeClientCapabilities"]
4694 |     """ Capabilities specific to the `textDocument/linkedEditingRange` request.
4695 | 
4696 |     @since 3.16.0 """
4697 |     moniker: NotRequired["MonikerClientCapabilities"]
4698 |     """ Client capabilities specific to the `textDocument/moniker` request.
4699 | 
4700 |     @since 3.16.0 """
4701 |     typeHierarchy: NotRequired["TypeHierarchyClientCapabilities"]
4702 |     """ Capabilities specific to the various type hierarchy requests.
4703 | 
4704 |     @since 3.17.0 """
4705 |     inlineValue: NotRequired["InlineValueClientCapabilities"]
4706 |     """ Capabilities specific to the `textDocument/inlineValue` request.
4707 | 
4708 |     @since 3.17.0 """
4709 |     inlayHint: NotRequired["InlayHintClientCapabilities"]
4710 |     """ Capabilities specific to the `textDocument/inlayHint` request.
4711 | 
4712 |     @since 3.17.0 """
4713 |     diagnostic: NotRequired["DiagnosticClientCapabilities"]
4714 |     """ Capabilities specific to the diagnostic pull model.
4715 | 
4716 |     @since 3.17.0 """
4717 | 
4718 | 
4719 | class NotebookDocumentClientCapabilities(TypedDict):
4720 |     """Capabilities specific to the notebook document support.
4721 | 
4722 |     @since 3.17.0
4723 |     """
4724 | 
4725 |     synchronization: "NotebookDocumentSyncClientCapabilities"
4726 |     """ Capabilities specific to notebook document synchronization
4727 | 
4728 |     @since 3.17.0 """
4729 | 
4730 | 
4731 | class WindowClientCapabilities(TypedDict):
4732 |     workDoneProgress: NotRequired[bool]
4733 |     """ It indicates whether the client supports server initiated
4734 |     progress using the `window/workDoneProgress/create` request.
4735 | 
4736 |     The capability also controls Whether client supports handling
4737 |     of progress notifications. If set servers are allowed to report a
4738 |     `workDoneProgress` property in the request specific server
4739 |     capabilities.
4740 | 
4741 |     @since 3.15.0 """
4742 |     showMessage: NotRequired["ShowMessageRequestClientCapabilities"]
4743 |     """ Capabilities specific to the showMessage request.
4744 | 
4745 |     @since 3.16.0 """
4746 |     showDocument: NotRequired["ShowDocumentClientCapabilities"]
4747 |     """ Capabilities specific to the showDocument request.
4748 | 
4749 |     @since 3.16.0 """
4750 | 
4751 | 
4752 | class GeneralClientCapabilities(TypedDict):
4753 |     """General client capabilities.
4754 | 
4755 |     @since 3.16.0
4756 |     """
4757 | 
4758 |     staleRequestSupport: NotRequired["__GeneralClientCapabilities_staleRequestSupport_Type_1"]
4759 |     """ Client capability that signals how the client
4760 |     handles stale requests (e.g. a request
4761 |     for which the client will not process the response
4762 |     anymore since the information is outdated).
4763 | 
4764 |     @since 3.17.0 """
4765 |     regularExpressions: NotRequired["RegularExpressionsClientCapabilities"]
4766 |     """ Client capabilities specific to regular expressions.
4767 | 
4768 |     @since 3.16.0 """
4769 |     markdown: NotRequired["MarkdownClientCapabilities"]
4770 |     """ Client capabilities specific to the client's markdown parser.
4771 | 
4772 |     @since 3.16.0 """
4773 |     positionEncodings: NotRequired[list["PositionEncodingKind"]]
4774 |     """ The position encodings supported by the client. Client and server
4775 |     have to agree on the same position encoding to ensure that offsets
4776 |     (e.g. character position in a line) are interpreted the same on both
4777 |     sides.
4778 | 
4779 |     To keep the protocol backwards compatible the following applies: if
4780 |     the value 'utf-16' is missing from the array of position encodings
4781 |     servers can assume that the client supports UTF-16. UTF-16 is
4782 |     therefore a mandatory encoding.
4783 | 
4784 |     If omitted it defaults to ['utf-16'].
4785 | 
4786 |     Implementation considerations: since the conversion from one encoding
4787 |     into another requires the content of the file / line the conversion
4788 |     is best done where the file is read which is usually on the server
4789 |     side.
4790 | 
4791 |     @since 3.17.0 """
4792 | 
4793 | 
4794 | class RelativePattern(TypedDict):
4795 |     """A relative pattern is a helper to construct glob patterns that are matched
4796 |     relatively to a base URI. The common value for a `baseUri` is a workspace
4797 |     folder root, but it can be another absolute URI as well.
4798 | 
4799 |     @since 3.17.0
4800 |     """
4801 | 
4802 |     baseUri: Union["WorkspaceFolder", "URI"]
4803 |     """ A workspace folder or a base URI to which this pattern will be matched
4804 |     against relatively. """
4805 |     pattern: "Pattern"
4806 |     """ The actual glob pattern; """
4807 | 
4808 | 
4809 | class WorkspaceEditClientCapabilities(TypedDict):
4810 |     documentChanges: NotRequired[bool]
4811 |     """ The client supports versioned document changes in `WorkspaceEdit`s """
4812 |     resourceOperations: NotRequired[list["ResourceOperationKind"]]
4813 |     """ The resource operations the client supports. Clients should at least
4814 |     support 'create', 'rename' and 'delete' files and folders.
4815 | 
4816 |     @since 3.13.0 """
4817 |     failureHandling: NotRequired["FailureHandlingKind"]
4818 |     """ The failure handling strategy of a client if applying the workspace edit
4819 |     fails.
4820 | 
4821 |     @since 3.13.0 """
4822 |     normalizesLineEndings: NotRequired[bool]
4823 |     """ Whether the client normalizes line endings to the client specific
4824 |     setting.
4825 |     If set to `true` the client will normalize line ending characters
4826 |     in a workspace edit to the client-specified new line
4827 |     character.
4828 | 
4829 |     @since 3.16.0 """
4830 |     changeAnnotationSupport: NotRequired["__WorkspaceEditClientCapabilities_changeAnnotationSupport_Type_1"]
4831 |     """ Whether the client in general supports change annotations on text edits,
4832 |     create file, rename file and delete file changes.
4833 | 
4834 |     @since 3.16.0 """
4835 | 
4836 | 
4837 | class DidChangeConfigurationClientCapabilities(TypedDict):
4838 |     dynamicRegistration: NotRequired[bool]
4839 |     """ Did change configuration notification supports dynamic registration. """
4840 | 
4841 | 
4842 | class DidChangeWatchedFilesClientCapabilities(TypedDict):
4843 |     dynamicRegistration: NotRequired[bool]
4844 |     """ Did change watched files notification supports dynamic registration. Please note
4845 |     that the current protocol doesn't support static configuration for file changes
4846 |     from the server side. """
4847 |     relativePatternSupport: NotRequired[bool]
4848 |     """ Whether the client has support for {@link  RelativePattern relative pattern}
4849 |     or not.
4850 | 
4851 |     @since 3.17.0 """
4852 | 
4853 | 
4854 | class WorkspaceSymbolClientCapabilities(TypedDict):
4855 |     """Client capabilities for a {@link WorkspaceSymbolRequest}."""
4856 | 
4857 |     dynamicRegistration: NotRequired[bool]
4858 |     """ Symbol request supports dynamic registration. """
4859 |     symbolKind: NotRequired["__WorkspaceSymbolClientCapabilities_symbolKind_Type_1"]
4860 |     """ Specific capabilities for the `SymbolKind` in the `workspace/symbol` request. """
4861 |     tagSupport: NotRequired["__WorkspaceSymbolClientCapabilities_tagSupport_Type_1"]
4862 |     """ The client supports tags on `SymbolInformation`.
4863 |     Clients supporting tags have to handle unknown tags gracefully.
4864 | 
4865 |     @since 3.16.0 """
4866 |     resolveSupport: NotRequired["__WorkspaceSymbolClientCapabilities_resolveSupport_Type_1"]
4867 |     """ The client support partial workspace symbols. The client will send the
4868 |     request `workspaceSymbol/resolve` to the server to resolve additional
4869 |     properties.
4870 | 
4871 |     @since 3.17.0 """
4872 | 
4873 | 
4874 | class ExecuteCommandClientCapabilities(TypedDict):
4875 |     """The client capabilities of a {@link ExecuteCommandRequest}."""
4876 | 
4877 |     dynamicRegistration: NotRequired[bool]
4878 |     """ Execute command supports dynamic registration. """
4879 | 
4880 | 
4881 | class SemanticTokensWorkspaceClientCapabilities(TypedDict):
4882 |     """@since 3.16.0"""
4883 | 
4884 |     refreshSupport: NotRequired[bool]
4885 |     """ Whether the client implementation supports a refresh request sent from
4886 |     the server to the client.
4887 | 
4888 |     Note that this event is global and will force the client to refresh all
4889 |     semantic tokens currently shown. It should be used with absolute care
4890 |     and is useful for situation where a server for example detects a project
4891 |     wide change that requires such a calculation. """
4892 | 
4893 | 
4894 | class CodeLensWorkspaceClientCapabilities(TypedDict):
4895 |     """@since 3.16.0"""
4896 | 
4897 |     refreshSupport: NotRequired[bool]
4898 |     """ Whether the client implementation supports a refresh request sent from the
4899 |     server to the client.
4900 | 
4901 |     Note that this event is global and will force the client to refresh all
4902 |     code lenses currently shown. It should be used with absolute care and is
4903 |     useful for situation where a server for example detect a project wide
4904 |     change that requires such a calculation. """
4905 | 
4906 | 
4907 | class FileOperationClientCapabilities(TypedDict):
4908 |     """Capabilities relating to events from file operations by the user in the client.
4909 | 
4910 |     These events do not come from the file system, they come from user operations
4911 |     like renaming a file in the UI.
4912 | 
4913 |     @since 3.16.0
4914 |     """
4915 | 
4916 |     dynamicRegistration: NotRequired[bool]
4917 |     """ Whether the client supports dynamic registration for file requests/notifications. """
4918 |     didCreate: NotRequired[bool]
4919 |     """ The client has support for sending didCreateFiles notifications. """
4920 |     willCreate: NotRequired[bool]
4921 |     """ The client has support for sending willCreateFiles requests. """
4922 |     didRename: NotRequired[bool]
4923 |     """ The client has support for sending didRenameFiles notifications. """
4924 |     willRename: NotRequired[bool]
4925 |     """ The client has support for sending willRenameFiles requests. """
4926 |     didDelete: NotRequired[bool]
4927 |     """ The client has support for sending didDeleteFiles notifications. """
4928 |     willDelete: NotRequired[bool]
4929 |     """ The client has support for sending willDeleteFiles requests. """
4930 | 
4931 | 
4932 | class InlineValueWorkspaceClientCapabilities(TypedDict):
4933 |     """Client workspace capabilities specific to inline values.
4934 | 
4935 |     @since 3.17.0
4936 |     """
4937 | 
4938 |     refreshSupport: NotRequired[bool]
4939 |     """ Whether the client implementation supports a refresh request sent from the
4940 |     server to the client.
4941 | 
4942 |     Note that this event is global and will force the client to refresh all
4943 |     inline values currently shown. It should be used with absolute care and is
4944 |     useful for situation where a server for example detects a project wide
4945 |     change that requires such a calculation. """
4946 | 
4947 | 
4948 | class InlayHintWorkspaceClientCapabilities(TypedDict):
4949 |     """Client workspace capabilities specific to inlay hints.
4950 | 
4951 |     @since 3.17.0
4952 |     """
4953 | 
4954 |     refreshSupport: NotRequired[bool]
4955 |     """ Whether the client implementation supports a refresh request sent from
4956 |     the server to the client.
4957 | 
4958 |     Note that this event is global and will force the client to refresh all
4959 |     inlay hints currently shown. It should be used with absolute care and
4960 |     is useful for situation where a server for example detects a project wide
4961 |     change that requires such a calculation. """
4962 | 
4963 | 
4964 | class DiagnosticWorkspaceClientCapabilities(TypedDict):
4965 |     """Workspace client capabilities specific to diagnostic pull requests.
4966 | 
4967 |     @since 3.17.0
4968 |     """
4969 | 
4970 |     refreshSupport: NotRequired[bool]
4971 |     """ Whether the client implementation supports a refresh request sent from
4972 |     the server to the client.
4973 | 
4974 |     Note that this event is global and will force the client to refresh all
4975 |     pulled diagnostics currently shown. It should be used with absolute care and
4976 |     is useful for situation where a server for example detects a project wide
4977 |     change that requires such a calculation. """
4978 | 
4979 | 
4980 | class TextDocumentSyncClientCapabilities(TypedDict):
4981 |     dynamicRegistration: NotRequired[bool]
4982 |     """ Whether text document synchronization supports dynamic registration. """
4983 |     willSave: NotRequired[bool]
4984 |     """ The client supports sending will save notifications. """
4985 |     willSaveWaitUntil: NotRequired[bool]
4986 |     """ The client supports sending a will save request and
4987 |     waits for a response providing text edits which will
4988 |     be applied to the document before it is saved. """
4989 |     didSave: NotRequired[bool]
4990 |     """ The client supports did save notifications. """
4991 | 
4992 | 
4993 | class CompletionClientCapabilities(TypedDict):
4994 |     """Completion client capabilities"""
4995 | 
4996 |     dynamicRegistration: NotRequired[bool]
4997 |     """ Whether completion supports dynamic registration. """
4998 |     completionItem: NotRequired["__CompletionClientCapabilities_completionItem_Type_1"]
4999 |     """ The client supports the following `CompletionItem` specific
5000 |     capabilities. """
5001 |     completionItemKind: NotRequired["__CompletionClientCapabilities_completionItemKind_Type_1"]
5002 |     insertTextMode: NotRequired["InsertTextMode"]
5003 |     """ Defines how the client handles whitespace and indentation
5004 |     when accepting a completion item that uses multi line
5005 |     text in either `insertText` or `textEdit`.
5006 | 
5007 |     @since 3.17.0 """
5008 |     contextSupport: NotRequired[bool]
5009 |     """ The client supports to send additional context information for a
5010 |     `textDocument/completion` request. """
5011 |     completionList: NotRequired["__CompletionClientCapabilities_completionList_Type_1"]
5012 |     """ The client supports the following `CompletionList` specific
5013 |     capabilities.
5014 | 
5015 |     @since 3.17.0 """
5016 | 
5017 | 
5018 | class HoverClientCapabilities(TypedDict):
5019 |     dynamicRegistration: NotRequired[bool]
5020 |     """ Whether hover supports dynamic registration. """
5021 |     contentFormat: NotRequired[list["MarkupKind"]]
5022 |     """ Client supports the following content formats for the content
5023 |     property. The order describes the preferred format of the client. """
5024 | 
5025 | 
5026 | class SignatureHelpClientCapabilities(TypedDict):
5027 |     """Client Capabilities for a {@link SignatureHelpRequest}."""
5028 | 
5029 |     dynamicRegistration: NotRequired[bool]
5030 |     """ Whether signature help supports dynamic registration. """
5031 |     signatureInformation: NotRequired["__SignatureHelpClientCapabilities_signatureInformation_Type_1"]
5032 |     """ The client supports the following `SignatureInformation`
5033 |     specific properties. """
5034 |     contextSupport: NotRequired[bool]
5035 |     """ The client supports to send additional context information for a
5036 |     `textDocument/signatureHelp` request. A client that opts into
5037 |     contextSupport will also support the `retriggerCharacters` on
5038 |     `SignatureHelpOptions`.
5039 | 
5040 |     @since 3.15.0 """
5041 | 
5042 | 
5043 | class DeclarationClientCapabilities(TypedDict):
5044 |     """@since 3.14.0"""
5045 | 
5046 |     dynamicRegistration: NotRequired[bool]
5047 |     """ Whether declaration supports dynamic registration. If this is set to `true`
5048 |     the client supports the new `DeclarationRegistrationOptions` return value
5049 |     for the corresponding server capability as well. """
5050 |     linkSupport: NotRequired[bool]
5051 |     """ The client supports additional metadata in the form of declaration links. """
5052 | 
5053 | 
5054 | class DefinitionClientCapabilities(TypedDict):
5055 |     """Client Capabilities for a {@link DefinitionRequest}."""
5056 | 
5057 |     dynamicRegistration: NotRequired[bool]
5058 |     """ Whether definition supports dynamic registration. """
5059 |     linkSupport: NotRequired[bool]
5060 |     """ The client supports additional metadata in the form of definition links.
5061 | 
5062 |     @since 3.14.0 """
5063 | 
5064 | 
5065 | class TypeDefinitionClientCapabilities(TypedDict):
5066 |     """Since 3.6.0"""
5067 | 
5068 |     dynamicRegistration: NotRequired[bool]
5069 |     """ Whether implementation supports dynamic registration. If this is set to `true`
5070 |     the client supports the new `TypeDefinitionRegistrationOptions` return value
5071 |     for the corresponding server capability as well. """
5072 |     linkSupport: NotRequired[bool]
5073 |     """ The client supports additional metadata in the form of definition links.
5074 | 
5075 |     Since 3.14.0 """
5076 | 
5077 | 
5078 | class ImplementationClientCapabilities(TypedDict):
5079 |     """@since 3.6.0"""
5080 | 
5081 |     dynamicRegistration: NotRequired[bool]
5082 |     """ Whether implementation supports dynamic registration. If this is set to `true`
5083 |     the client supports the new `ImplementationRegistrationOptions` return value
5084 |     for the corresponding server capability as well. """
5085 |     linkSupport: NotRequired[bool]
5086 |     """ The client supports additional metadata in the form of definition links.
5087 | 
5088 |     @since 3.14.0 """
5089 | 
5090 | 
5091 | class ReferenceClientCapabilities(TypedDict):
5092 |     """Client Capabilities for a {@link ReferencesRequest}."""
5093 | 
5094 |     dynamicRegistration: NotRequired[bool]
5095 |     """ Whether references supports dynamic registration. """
5096 | 
5097 | 
5098 | class DocumentHighlightClientCapabilities(TypedDict):
5099 |     """Client Capabilities for a {@link DocumentHighlightRequest}."""
5100 | 
5101 |     dynamicRegistration: NotRequired[bool]
5102 |     """ Whether document highlight supports dynamic registration. """
5103 | 
5104 | 
5105 | class DocumentSymbolClientCapabilities(TypedDict):
5106 |     """Client Capabilities for a {@link DocumentSymbolRequest}."""
5107 | 
5108 |     dynamicRegistration: NotRequired[bool]
5109 |     """ Whether document symbol supports dynamic registration. """
5110 |     symbolKind: NotRequired["__DocumentSymbolClientCapabilities_symbolKind_Type_1"]
5111 |     """ Specific capabilities for the `SymbolKind` in the
5112 |     `textDocument/documentSymbol` request. """
5113 |     hierarchicalDocumentSymbolSupport: NotRequired[bool]
5114 |     """ The client supports hierarchical document symbols. """
5115 |     tagSupport: NotRequired["__DocumentSymbolClientCapabilities_tagSupport_Type_1"]
5116 |     """ The client supports tags on `SymbolInformation`. Tags are supported on
5117 |     `DocumentSymbol` if `hierarchicalDocumentSymbolSupport` is set to true.
5118 |     Clients supporting tags have to handle unknown tags gracefully.
5119 | 
5120 |     @since 3.16.0 """
5121 |     labelSupport: NotRequired[bool]
5122 |     """ The client supports an additional label presented in the UI when
5123 |     registering a document symbol provider.
5124 | 
5125 |     @since 3.16.0 """
5126 | 
5127 | 
5128 | class CodeActionClientCapabilities(TypedDict):
5129 |     """The Client Capabilities of a {@link CodeActionRequest}."""
5130 | 
5131 |     dynamicRegistration: NotRequired[bool]
5132 |     """ Whether code action supports dynamic registration. """
5133 |     codeActionLiteralSupport: NotRequired["__CodeActionClientCapabilities_codeActionLiteralSupport_Type_1"]
5134 |     """ The client support code action literals of type `CodeAction` as a valid
5135 |     response of the `textDocument/codeAction` request. If the property is not
5136 |     set the request can only return `Command` literals.
5137 | 
5138 |     @since 3.8.0 """
5139 |     isPreferredSupport: NotRequired[bool]
5140 |     """ Whether code action supports the `isPreferred` property.
5141 | 
5142 |     @since 3.15.0 """
5143 |     disabledSupport: NotRequired[bool]
5144 |     """ Whether code action supports the `disabled` property.
5145 | 
5146 |     @since 3.16.0 """
5147 |     dataSupport: NotRequired[bool]
5148 |     """ Whether code action supports the `data` property which is
5149 |     preserved between a `textDocument/codeAction` and a
5150 |     `codeAction/resolve` request.
5151 | 
5152 |     @since 3.16.0 """
5153 |     resolveSupport: NotRequired["__CodeActionClientCapabilities_resolveSupport_Type_1"]
5154 |     """ Whether the client supports resolving additional code action
5155 |     properties via a separate `codeAction/resolve` request.
5156 | 
5157 |     @since 3.16.0 """
5158 |     honorsChangeAnnotations: NotRequired[bool]
5159 |     """ Whether the client honors the change annotations in
5160 |     text edits and resource operations returned via the
5161 |     `CodeAction#edit` property by for example presenting
5162 |     the workspace edit in the user interface and asking
5163 |     for confirmation.
5164 | 
5165 |     @since 3.16.0 """
5166 | 
5167 | 
5168 | class CodeLensClientCapabilities(TypedDict):
5169 |     """The client capabilities  of a {@link CodeLensRequest}."""
5170 | 
5171 |     dynamicRegistration: NotRequired[bool]
5172 |     """ Whether code lens supports dynamic registration. """
5173 | 
5174 | 
5175 | class DocumentLinkClientCapabilities(TypedDict):
5176 |     """The client capabilities of a {@link DocumentLinkRequest}."""
5177 | 
5178 |     dynamicRegistration: NotRequired[bool]
5179 |     """ Whether document link supports dynamic registration. """
5180 |     tooltipSupport: NotRequired[bool]
5181 |     """ Whether the client supports the `tooltip` property on `DocumentLink`.
5182 | 
5183 |     @since 3.15.0 """
5184 | 
5185 | 
5186 | class DocumentColorClientCapabilities(TypedDict):
5187 |     dynamicRegistration: NotRequired[bool]
5188 |     """ Whether implementation supports dynamic registration. If this is set to `true`
5189 |     the client supports the new `DocumentColorRegistrationOptions` return value
5190 |     for the corresponding server capability as well. """
5191 | 
5192 | 
5193 | class DocumentFormattingClientCapabilities(TypedDict):
5194 |     """Client capabilities of a {@link DocumentFormattingRequest}."""
5195 | 
5196 |     dynamicRegistration: NotRequired[bool]
5197 |     """ Whether formatting supports dynamic registration. """
5198 | 
5199 | 
5200 | class DocumentRangeFormattingClientCapabilities(TypedDict):
5201 |     """Client capabilities of a {@link DocumentRangeFormattingRequest}."""
5202 | 
5203 |     dynamicRegistration: NotRequired[bool]
5204 |     """ Whether range formatting supports dynamic registration. """
5205 | 
5206 | 
5207 | class DocumentOnTypeFormattingClientCapabilities(TypedDict):
5208 |     """Client capabilities of a {@link DocumentOnTypeFormattingRequest}."""
5209 | 
5210 |     dynamicRegistration: NotRequired[bool]
5211 |     """ Whether on type formatting supports dynamic registration. """
5212 | 
5213 | 
5214 | class RenameClientCapabilities(TypedDict):
5215 |     dynamicRegistration: NotRequired[bool]
5216 |     """ Whether rename supports dynamic registration. """
5217 |     prepareSupport: NotRequired[bool]
5218 |     """ Client supports testing for validity of rename operations
5219 |     before execution.
5220 | 
5221 |     @since 3.12.0 """
5222 |     prepareSupportDefaultBehavior: NotRequired["PrepareSupportDefaultBehavior"]
5223 |     """ Client supports the default behavior result.
5224 | 
5225 |     The value indicates the default behavior used by the
5226 |     client.
5227 | 
5228 |     @since 3.16.0 """
5229 |     honorsChangeAnnotations: NotRequired[bool]
5230 |     """ Whether the client honors the change annotations in
5231 |     text edits and resource operations returned via the
5232 |     rename request's workspace edit by for example presenting
5233 |     the workspace edit in the user interface and asking
5234 |     for confirmation.
5235 | 
5236 |     @since 3.16.0 """
5237 | 
5238 | 
5239 | class FoldingRangeClientCapabilities(TypedDict):
5240 |     dynamicRegistration: NotRequired[bool]
5241 |     """ Whether implementation supports dynamic registration for folding range
5242 |     providers. If this is set to `true` the client supports the new
5243 |     `FoldingRangeRegistrationOptions` return value for the corresponding
5244 |     server capability as well. """
5245 |     rangeLimit: NotRequired[Uint]
5246 |     """ The maximum number of folding ranges that the client prefers to receive
5247 |     per document. The value serves as a hint, servers are free to follow the
5248 |     limit. """
5249 |     lineFoldingOnly: NotRequired[bool]
5250 |     """ If set, the client signals that it only supports folding complete lines.
5251 |     If set, client will ignore specified `startCharacter` and `endCharacter`
5252 |     properties in a FoldingRange. """
5253 |     foldingRangeKind: NotRequired["__FoldingRangeClientCapabilities_foldingRangeKind_Type_1"]
5254 |     """ Specific options for the folding range kind.
5255 | 
5256 |     @since 3.17.0 """
5257 |     foldingRange: NotRequired["__FoldingRangeClientCapabilities_foldingRange_Type_1"]
5258 |     """ Specific options for the folding range.
5259 | 
5260 |     @since 3.17.0 """
5261 | 
5262 | 
5263 | class SelectionRangeClientCapabilities(TypedDict):
5264 |     dynamicRegistration: NotRequired[bool]
5265 |     """ Whether implementation supports dynamic registration for selection range providers. If this is set to `true`
5266 |     the client supports the new `SelectionRangeRegistrationOptions` return value for the corresponding server
5267 |     capability as well. """
5268 | 
5269 | 
5270 | class PublishDiagnosticsClientCapabilities(TypedDict):
5271 |     """The publish diagnostic client capabilities."""
5272 | 
5273 |     relatedInformation: NotRequired[bool]
5274 |     """ Whether the clients accepts diagnostics with related information. """
5275 |     tagSupport: NotRequired["__PublishDiagnosticsClientCapabilities_tagSupport_Type_1"]
5276 |     """ Client supports the tag property to provide meta data about a diagnostic.
5277 |     Clients supporting tags have to handle unknown tags gracefully.
5278 | 
5279 |     @since 3.15.0 """
5280 |     versionSupport: NotRequired[bool]
5281 |     """ Whether the client interprets the version property of the
5282 |     `textDocument/publishDiagnostics` notification's parameter.
5283 | 
5284 |     @since 3.15.0 """
5285 |     codeDescriptionSupport: NotRequired[bool]
5286 |     """ Client supports a codeDescription property
5287 | 
5288 |     @since 3.16.0 """
5289 |     dataSupport: NotRequired[bool]
5290 |     """ Whether code action supports the `data` property which is
5291 |     preserved between a `textDocument/publishDiagnostics` and
5292 |     `textDocument/codeAction` request.
5293 | 
5294 |     @since 3.16.0 """
5295 | 
5296 | 
5297 | class CallHierarchyClientCapabilities(TypedDict):
5298 |     """@since 3.16.0"""
5299 | 
5300 |     dynamicRegistration: NotRequired[bool]
5301 |     """ Whether implementation supports dynamic registration. If this is set to `true`
5302 |     the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
5303 |     return value for the corresponding server capability as well. """
5304 | 
5305 | 
5306 | class SemanticTokensClientCapabilities(TypedDict):
5307 |     """@since 3.16.0"""
5308 | 
5309 |     dynamicRegistration: NotRequired[bool]
5310 |     """ Whether implementation supports dynamic registration. If this is set to `true`
5311 |     the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
5312 |     return value for the corresponding server capability as well. """
5313 |     requests: "__SemanticTokensClientCapabilities_requests_Type_1"
5314 |     """ Which requests the client supports and might send to the server
5315 |     depending on the server's capability. Please note that clients might not
5316 |     show semantic tokens or degrade some of the user experience if a range
5317 |     or full request is advertised by the client but not provided by the
5318 |     server. If for example the client capability `requests.full` and
5319 |     `request.range` are both set to true but the server only provides a
5320 |     range provider the client might not render a minimap correctly or might
5321 |     even decide to not show any semantic tokens at all. """
5322 |     tokenTypes: list[str]
5323 |     """ The token types that the client supports. """
5324 |     tokenModifiers: list[str]
5325 |     """ The token modifiers that the client supports. """
5326 |     formats: list["TokenFormat"]
5327 |     """ The token formats the clients supports. """
5328 |     overlappingTokenSupport: NotRequired[bool]
5329 |     """ Whether the client supports tokens that can overlap each other. """
5330 |     multilineTokenSupport: NotRequired[bool]
5331 |     """ Whether the client supports tokens that can span multiple lines. """
5332 |     serverCancelSupport: NotRequired[bool]
5333 |     """ Whether the client allows the server to actively cancel a
5334 |     semantic token request, e.g. supports returning
5335 |     LSPErrorCodes.ServerCancelled. If a server does the client
5336 |     needs to retrigger the request.
5337 | 
5338 |     @since 3.17.0 """
5339 |     augmentsSyntaxTokens: NotRequired[bool]
5340 |     """ Whether the client uses semantic tokens to augment existing
5341 |     syntax tokens. If set to `true` client side created syntax
5342 |     tokens and semantic tokens are both used for colorization. If
5343 |     set to `false` the client only uses the returned semantic tokens
5344 |     for colorization.
5345 | 
5346 |     If the value is `undefined` then the client behavior is not
5347 |     specified.
5348 | 
5349 |     @since 3.17.0 """
5350 | 
5351 | 
5352 | class LinkedEditingRangeClientCapabilities(TypedDict):
5353 |     """Client capabilities for the linked editing range request.
5354 | 
5355 |     @since 3.16.0
5356 |     """
5357 | 
5358 |     dynamicRegistration: NotRequired[bool]
5359 |     """ Whether implementation supports dynamic registration. If this is set to `true`
5360 |     the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
5361 |     return value for the corresponding server capability as well. """
5362 | 
5363 | 
5364 | class MonikerClientCapabilities(TypedDict):
5365 |     """Client capabilities specific to the moniker request.
5366 | 
5367 |     @since 3.16.0
5368 |     """
5369 | 
5370 |     dynamicRegistration: NotRequired[bool]
5371 |     """ Whether moniker supports dynamic registration. If this is set to `true`
5372 |     the client supports the new `MonikerRegistrationOptions` return value
5373 |     for the corresponding server capability as well. """
5374 | 
5375 | 
5376 | class TypeHierarchyClientCapabilities(TypedDict):
5377 |     """@since 3.17.0"""
5378 | 
5379 |     dynamicRegistration: NotRequired[bool]
5380 |     """ Whether implementation supports dynamic registration. If this is set to `true`
5381 |     the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
5382 |     return value for the corresponding server capability as well. """
5383 | 
5384 | 
5385 | class InlineValueClientCapabilities(TypedDict):
5386 |     """Client capabilities specific to inline values.
5387 | 
5388 |     @since 3.17.0
5389 |     """
5390 | 
5391 |     dynamicRegistration: NotRequired[bool]
5392 |     """ Whether implementation supports dynamic registration for inline value providers. """
5393 | 
5394 | 
5395 | class InlayHintClientCapabilities(TypedDict):
5396 |     """Inlay hint client capabilities.
5397 | 
5398 |     @since 3.17.0
5399 |     """
5400 | 
5401 |     dynamicRegistration: NotRequired[bool]
5402 |     """ Whether inlay hints support dynamic registration. """
5403 |     resolveSupport: NotRequired["__InlayHintClientCapabilities_resolveSupport_Type_1"]
5404 |     """ Indicates which properties a client can resolve lazily on an inlay
5405 |     hint. """
5406 | 
5407 | 
5408 | class DiagnosticClientCapabilities(TypedDict):
5409 |     """Client capabilities specific to diagnostic pull requests.
5410 | 
5411 |     @since 3.17.0
5412 |     """
5413 | 
5414 |     dynamicRegistration: NotRequired[bool]
5415 |     """ Whether implementation supports dynamic registration. If this is set to `true`
5416 |     the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
5417 |     return value for the corresponding server capability as well. """
5418 |     relatedDocumentSupport: NotRequired[bool]
5419 |     """ Whether the clients supports related documents for document diagnostic pulls. """
5420 | 
5421 | 
5422 | class NotebookDocumentSyncClientCapabilities(TypedDict):
5423 |     """Notebook specific client capabilities.
5424 | 
5425 |     @since 3.17.0
5426 |     """
5427 | 
5428 |     dynamicRegistration: NotRequired[bool]
5429 |     """ Whether implementation supports dynamic registration. If this is
5430 |     set to `true` the client supports the new
5431 |     `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
5432 |     return value for the corresponding server capability as well. """
5433 |     executionSummarySupport: NotRequired[bool]
5434 |     """ The client supports sending execution summary data per cell. """
5435 | 
5436 | 
5437 | class ShowMessageRequestClientCapabilities(TypedDict):
5438 |     """Show message request client capabilities"""
5439 | 
5440 |     messageActionItem: NotRequired["__ShowMessageRequestClientCapabilities_messageActionItem_Type_1"]
5441 |     """ Capabilities specific to the `MessageActionItem` type. """
5442 | 
5443 | 
5444 | class ShowDocumentClientCapabilities(TypedDict):
5445 |     """Client capabilities for the showDocument request.
5446 | 
5447 |     @since 3.16.0
5448 |     """
5449 | 
5450 |     support: bool
5451 |     """ The client has support for the showDocument
5452 |     request. """
5453 | 
5454 | 
5455 | class RegularExpressionsClientCapabilities(TypedDict):
5456 |     """Client capabilities specific to regular expressions.
5457 | 
5458 |     @since 3.16.0
5459 |     """
5460 | 
5461 |     engine: str
5462 |     """ The engine's name. """
5463 |     version: NotRequired[str]
5464 |     """ The engine's version. """
5465 | 
5466 | 
5467 | class MarkdownClientCapabilities(TypedDict):
5468 |     """Client capabilities specific to the used markdown parser.
5469 | 
5470 |     @since 3.16.0
5471 |     """
5472 | 
5473 |     parser: str
5474 |     """ The name of the parser. """
5475 |     version: NotRequired[str]
5476 |     """ The version of the parser. """
5477 |     allowedTags: NotRequired[list[str]]
5478 |     """ A list of HTML tags that the client allows / supports in
5479 |     Markdown.
5480 | 
5481 |     @since 3.17.0 """
5482 | 
5483 | 
5484 | class __CodeActionClientCapabilities_codeActionLiteralSupport_Type_1(TypedDict):
5485 |     codeActionKind: "__CodeActionClientCapabilities_codeActionLiteralSupport_codeActionKind_Type_1"
5486 |     """ The code action kind is support with the following value
5487 |     set. """
5488 | 
5489 | 
5490 | class __CodeActionClientCapabilities_codeActionLiteralSupport_codeActionKind_Type_1(TypedDict):
5491 |     valueSet: list["CodeActionKind"]
5492 |     """ The code action kind values the client supports. When this
5493 |     property exists the client also guarantees that it will
5494 |     handle values outside its set gracefully and falls back
5495 |     to a default value when unknown. """
5496 | 
5497 | 
5498 | class __CodeActionClientCapabilities_resolveSupport_Type_1(TypedDict):
5499 |     properties: list[str]
5500 |     """ The properties that a client can resolve lazily. """
5501 | 
5502 | 
5503 | class __CodeAction_disabled_Type_1(TypedDict):
5504 |     reason: str
5505 |     """ Human readable description of why the code action is currently disabled.
5506 | 
5507 |     This is displayed in the code actions UI. """
5508 | 
5509 | 
5510 | class __CompletionClientCapabilities_completionItemKind_Type_1(TypedDict):
5511 |     valueSet: NotRequired[list["CompletionItemKind"]]
5512 |     """ The completion item kind values the client supports. When this
5513 |     property exists the client also guarantees that it will
5514 |     handle values outside its set gracefully and falls back
5515 |     to a default value when unknown.
5516 | 
5517 |     If this property is not present the client only supports
5518 |     the completion items kinds from `Text` to `Reference` as defined in
5519 |     the initial version of the protocol. """
5520 | 
5521 | 
5522 | class __CompletionClientCapabilities_completionItem_Type_1(TypedDict):
5523 |     snippetSupport: NotRequired[bool]
5524 |     """ Client supports snippets as insert text.
5525 | 
5526 |     A snippet can define tab stops and placeholders with `$1`, `$2`
5527 |     and `${3:foo}`. `$0` defines the final tab stop, it defaults to
5528 |     the end of the snippet. Placeholders with equal identifiers are linked,
5529 |     that is typing in one will update others too. """
5530 |     commitCharactersSupport: NotRequired[bool]
5531 |     """ Client supports commit characters on a completion item. """
5532 |     documentationFormat: NotRequired[list["MarkupKind"]]
5533 |     """ Client supports the following content formats for the documentation
5534 |     property. The order describes the preferred format of the client. """
5535 |     deprecatedSupport: NotRequired[bool]
5536 |     """ Client supports the deprecated property on a completion item. """
5537 |     preselectSupport: NotRequired[bool]
5538 |     """ Client supports the preselect property on a completion item. """
5539 |     tagSupport: NotRequired["__CompletionClientCapabilities_completionItem_tagSupport_Type_1"]
5540 |     """ Client supports the tag property on a completion item. Clients supporting
5541 |     tags have to handle unknown tags gracefully. Clients especially need to
5542 |     preserve unknown tags when sending a completion item back to the server in
5543 |     a resolve call.
5544 | 
5545 |     @since 3.15.0 """
5546 |     insertReplaceSupport: NotRequired[bool]
5547 |     """ Client support insert replace edit to control different behavior if a
5548 |     completion item is inserted in the text or should replace text.
5549 | 
5550 |     @since 3.16.0 """
5551 |     resolveSupport: NotRequired["__CompletionClientCapabilities_completionItem_resolveSupport_Type_1"]
5552 |     """ Indicates which properties a client can resolve lazily on a completion
5553 |     item. Before version 3.16.0 only the predefined properties `documentation`
5554 |     and `details` could be resolved lazily.
5555 | 
5556 |     @since 3.16.0 """
5557 |     insertTextModeSupport: NotRequired["__CompletionClientCapabilities_completionItem_insertTextModeSupport_Type_1"]
5558 |     """ The client supports the `insertTextMode` property on
5559 |     a completion item to override the whitespace handling mode
5560 |     as defined by the client (see `insertTextMode`).
5561 | 
5562 |     @since 3.16.0 """
5563 |     labelDetailsSupport: NotRequired[bool]
5564 |     """ The client has support for completion item label
5565 |     details (see also `CompletionItemLabelDetails`).
5566 | 
5567 |     @since 3.17.0 """
5568 | 
5569 | 
5570 | class __CompletionClientCapabilities_completionItem_insertTextModeSupport_Type_1(TypedDict):
5571 |     valueSet: list["InsertTextMode"]
5572 | 
5573 | 
5574 | class __CompletionClientCapabilities_completionItem_resolveSupport_Type_1(TypedDict):
5575 |     properties: list[str]
5576 |     """ The properties that a client can resolve lazily. """
5577 | 
5578 | 
5579 | class __CompletionClientCapabilities_completionItem_tagSupport_Type_1(TypedDict):
5580 |     valueSet: list["CompletionItemTag"]
5581 |     """ The tags supported by the client. """
5582 | 
5583 | 
5584 | class __CompletionClientCapabilities_completionList_Type_1(TypedDict):
5585 |     itemDefaults: NotRequired[list[str]]
5586 |     """ The client supports the following itemDefaults on
5587 |     a completion list.
5588 | 
5589 |     The value lists the supported property names of the
5590 |     `CompletionList.itemDefaults` object. If omitted
5591 |     no properties are supported.
5592 | 
5593 |     @since 3.17.0 """
5594 | 
5595 | 
5596 | class __CompletionList_itemDefaults_Type_1(TypedDict):
5597 |     commitCharacters: NotRequired[list[str]]
5598 |     """ A default commit character set.
5599 | 
5600 |     @since 3.17.0 """
5601 |     editRange: NotRequired[Union["Range", "__CompletionList_itemDefaults_editRange_Type_1"]]
5602 |     """ A default edit range.
5603 | 
5604 |     @since 3.17.0 """
5605 |     insertTextFormat: NotRequired["InsertTextFormat"]
5606 |     """ A default insert text format.
5607 | 
5608 |     @since 3.17.0 """
5609 |     insertTextMode: NotRequired["InsertTextMode"]
5610 |     """ A default insert text mode.
5611 | 
5612 |     @since 3.17.0 """
5613 |     data: NotRequired["LSPAny"]
5614 |     """ A default data value.
5615 | 
5616 |     @since 3.17.0 """
5617 | 
5618 | 
5619 | class __CompletionList_itemDefaults_editRange_Type_1(TypedDict):
5620 |     insert: "Range"
5621 |     replace: "Range"
5622 | 
5623 | 
5624 | class __CompletionOptions_completionItem_Type_1(TypedDict):
5625 |     labelDetailsSupport: NotRequired[bool]
5626 |     """ The server has support for completion item label
5627 |     details (see also `CompletionItemLabelDetails`) when
5628 |     receiving a completion item in a resolve call.
5629 | 
5630 |     @since 3.17.0 """
5631 | 
5632 | 
5633 | class __CompletionOptions_completionItem_Type_2(TypedDict):
5634 |     labelDetailsSupport: NotRequired[bool]
5635 |     """ The server has support for completion item label
5636 |     details (see also `CompletionItemLabelDetails`) when
5637 |     receiving a completion item in a resolve call.
5638 | 
5639 |     @since 3.17.0 """
5640 | 
5641 | 
5642 | class __DocumentSymbolClientCapabilities_symbolKind_Type_1(TypedDict):
5643 |     valueSet: NotRequired[list["SymbolKind"]]
5644 |     """ The symbol kind values the client supports. When this
5645 |     property exists the client also guarantees that it will
5646 |     handle values outside its set gracefully and falls back
5647 |     to a default value when unknown.
5648 | 
5649 |     If this property is not present the client only supports
5650 |     the symbol kinds from `File` to `Array` as defined in
5651 |     the initial version of the protocol. """
5652 | 
5653 | 
5654 | class __DocumentSymbolClientCapabilities_tagSupport_Type_1(TypedDict):
5655 |     valueSet: list["SymbolTag"]
5656 |     """ The tags supported by the client. """
5657 | 
5658 | 
5659 | class __FoldingRangeClientCapabilities_foldingRangeKind_Type_1(TypedDict):
5660 |     valueSet: NotRequired[list["FoldingRangeKind"]]
5661 |     """ The folding range kind values the client supports. When this
5662 |     property exists the client also guarantees that it will
5663 |     handle values outside its set gracefully and falls back
5664 |     to a default value when unknown. """
5665 | 
5666 | 
5667 | class __FoldingRangeClientCapabilities_foldingRange_Type_1(TypedDict):
5668 |     collapsedText: NotRequired[bool]
5669 |     """ If set, the client signals that it supports setting collapsedText on
5670 |     folding ranges to display custom labels instead of the default text.
5671 | 
5672 |     @since 3.17.0 """
5673 | 
5674 | 
5675 | class __GeneralClientCapabilities_staleRequestSupport_Type_1(TypedDict):
5676 |     cancel: bool
5677 |     """ The client will actively cancel the request. """
5678 |     retryOnContentModified: list[str]
5679 |     """ The list of requests for which the client
5680 |     will retry the request if it receives a
5681 |     response with error code `ContentModified` """
5682 | 
5683 | 
5684 | class __InitializeResult_serverInfo_Type_1(TypedDict):
5685 |     name: str
5686 |     """ The name of the server as defined by the server. """
5687 |     version: NotRequired[str]
5688 |     """ The server's version as defined by the server. """
5689 | 
5690 | 
5691 | class __InlayHintClientCapabilities_resolveSupport_Type_1(TypedDict):
5692 |     properties: list[str]
5693 |     """ The properties that a client can resolve lazily. """
5694 | 
5695 | 
5696 | class __MarkedString_Type_1(TypedDict):
5697 |     language: str
5698 |     value: str
5699 | 
5700 | 
5701 | class __NotebookDocumentChangeEvent_cells_Type_1(TypedDict):
5702 |     structure: NotRequired["__NotebookDocumentChangeEvent_cells_structure_Type_1"]
5703 |     """ Changes to the cell structure to add or
5704 |     remove cells. """
5705 |     data: NotRequired[list["NotebookCell"]]
5706 |     """ Changes to notebook cells properties like its
5707 |     kind, execution summary or metadata. """
5708 |     textContent: NotRequired[list["__NotebookDocumentChangeEvent_cells_textContent_Type_1"]]
5709 |     """ Changes to the text content of notebook cells. """
5710 | 
5711 | 
5712 | class __NotebookDocumentChangeEvent_cells_structure_Type_1(TypedDict):
5713 |     array: "NotebookCellArrayChange"
5714 |     """ The change to the cell array. """
5715 |     didOpen: NotRequired[list["TextDocumentItem"]]
5716 |     """ Additional opened cell text documents. """
5717 |     didClose: NotRequired[list["TextDocumentIdentifier"]]
5718 |     """ Additional closed cell text documents. """
5719 | 
5720 | 
5721 | class __NotebookDocumentChangeEvent_cells_textContent_Type_1(TypedDict):
5722 |     document: "VersionedTextDocumentIdentifier"
5723 |     changes: list["TextDocumentContentChangeEvent"]
5724 | 
5725 | 
5726 | class __NotebookDocumentFilter_Type_1(TypedDict):
5727 |     notebookType: str
5728 |     """ The type of the enclosing notebook. """
5729 |     scheme: NotRequired[str]
5730 |     """ A Uri {@link Uri.scheme scheme}, like `file` or `untitled`. """
5731 |     pattern: NotRequired[str]
5732 |     """ A glob pattern. """
5733 | 
5734 | 
5735 | class __NotebookDocumentFilter_Type_2(TypedDict):
5736 |     notebookType: NotRequired[str]
5737 |     """ The type of the enclosing notebook. """
5738 |     scheme: str
5739 |     """ A Uri {@link Uri.scheme scheme}, like `file` or `untitled`. """
5740 |     pattern: NotRequired[str]
5741 |     """ A glob pattern. """
5742 | 
5743 | 
5744 | class __NotebookDocumentFilter_Type_3(TypedDict):
5745 |     notebookType: NotRequired[str]
5746 |     """ The type of the enclosing notebook. """
5747 |     scheme: NotRequired[str]
5748 |     """ A Uri {@link Uri.scheme scheme}, like `file` or `untitled`. """
5749 |     pattern: str
5750 |     """ A glob pattern. """
5751 | 
5752 | 
5753 | class __NotebookDocumentSyncOptions_notebookSelector_Type_1(TypedDict):
5754 |     notebook: Union[str, "NotebookDocumentFilter"]
5755 |     """ The notebook to be synced If a string
5756 |     value is provided it matches against the
5757 |     notebook type. '*' matches every notebook. """
5758 |     cells: NotRequired[list["__NotebookDocumentSyncOptions_notebookSelector_cells_Type_1"]]
5759 |     """ The cells of the matching notebook to be synced. """
5760 | 
5761 | 
5762 | class __NotebookDocumentSyncOptions_notebookSelector_Type_2(TypedDict):
5763 |     notebook: NotRequired[Union[str, "NotebookDocumentFilter"]]
5764 |     """ The notebook to be synced If a string
5765 |     value is provided it matches against the
5766 |     notebook type. '*' matches every notebook. """
5767 |     cells: list["__NotebookDocumentSyncOptions_notebookSelector_cells_Type_2"]
5768 |     """ The cells of the matching notebook to be synced. """
5769 | 
5770 | 
5771 | class __NotebookDocumentSyncOptions_notebookSelector_Type_3(TypedDict):
5772 |     notebook: Union[str, "NotebookDocumentFilter"]
5773 |     """ The notebook to be synced If a string
5774 |     value is provided it matches against the
5775 |     notebook type. '*' matches every notebook. """
5776 |     cells: NotRequired[list["__NotebookDocumentSyncOptions_notebookSelector_cells_Type_3"]]
5777 |     """ The cells of the matching notebook to be synced. """
5778 | 
5779 | 
5780 | class __NotebookDocumentSyncOptions_notebookSelector_Type_4(TypedDict):
5781 |     notebook: NotRequired[Union[str, "NotebookDocumentFilter"]]
5782 |     """ The notebook to be synced If a string
5783 |     value is provided it matches against the
5784 |     notebook type. '*' matches every notebook. """
5785 |     cells: list["__NotebookDocumentSyncOptions_notebookSelector_cells_Type_4"]
5786 |     """ The cells of the matching notebook to be synced. """
5787 | 
5788 | 
5789 | class __NotebookDocumentSyncOptions_notebookSelector_cells_Type_1(TypedDict):
5790 |     language: str
5791 | 
5792 | 
5793 | class __NotebookDocumentSyncOptions_notebookSelector_cells_Type_2(TypedDict):
5794 |     language: str
5795 | 
5796 | 
5797 | class __NotebookDocumentSyncOptions_notebookSelector_cells_Type_3(TypedDict):
5798 |     language: str
5799 | 
5800 | 
5801 | class __NotebookDocumentSyncOptions_notebookSelector_cells_Type_4(TypedDict):
5802 |     language: str
5803 | 
5804 | 
5805 | class __PrepareRenameResult_Type_1(TypedDict):
5806 |     range: "Range"
5807 |     placeholder: str
5808 | 
5809 | 
5810 | class __PrepareRenameResult_Type_2(TypedDict):
5811 |     defaultBehavior: bool
5812 | 
5813 | 
5814 | class __PublishDiagnosticsClientCapabilities_tagSupport_Type_1(TypedDict):
5815 |     valueSet: list["DiagnosticTag"]
5816 |     """ The tags supported by the client. """
5817 | 
5818 | 
5819 | class __SemanticTokensClientCapabilities_requests_Type_1(TypedDict):
5820 |     range: NotRequired[bool | dict]
5821 |     """ The client will send the `textDocument/semanticTokens/range` request if
5822 |     the server provides a corresponding handler. """
5823 |     full: NotRequired[Union[bool, "__SemanticTokensClientCapabilities_requests_full_Type_1"]]
5824 |     """ The client will send the `textDocument/semanticTokens/full` request if
5825 |     the server provides a corresponding handler. """
5826 | 
5827 | 
5828 | class __SemanticTokensClientCapabilities_requests_full_Type_1(TypedDict):
5829 |     delta: NotRequired[bool]
5830 |     """ The client will send the `textDocument/semanticTokens/full/delta` request if
5831 |     the server provides a corresponding handler. """
5832 | 
5833 | 
5834 | class __SemanticTokensOptions_full_Type_1(TypedDict):
5835 |     delta: NotRequired[bool]
5836 |     """ The server supports deltas for full documents. """
5837 | 
5838 | 
5839 | class __SemanticTokensOptions_full_Type_2(TypedDict):
5840 |     delta: NotRequired[bool]
5841 |     """ The server supports deltas for full documents. """
5842 | 
5843 | 
5844 | class __ServerCapabilities_workspace_Type_1(TypedDict):
5845 |     workspaceFolders: NotRequired["WorkspaceFoldersServerCapabilities"]
5846 |     """ The server supports workspace folder.
5847 | 
5848 |     @since 3.6.0 """
5849 |     fileOperations: NotRequired["FileOperationOptions"]
5850 |     """ The server is interested in notifications/requests for operations on files.
5851 | 
5852 |     @since 3.16.0 """
5853 | 
5854 | 
5855 | class __ShowMessageRequestClientCapabilities_messageActionItem_Type_1(TypedDict):
5856 |     additionalPropertiesSupport: NotRequired[bool]
5857 |     """ Whether the client supports additional attributes which
5858 |     are preserved and send back to the server in the
5859 |     request's response. """
5860 | 
5861 | 
5862 | class __SignatureHelpClientCapabilities_signatureInformation_Type_1(TypedDict):
5863 |     documentationFormat: NotRequired[list["MarkupKind"]]
5864 |     """ Client supports the following content formats for the documentation
5865 |     property. The order describes the preferred format of the client. """
5866 |     parameterInformation: NotRequired["__SignatureHelpClientCapabilities_signatureInformation_parameterInformation_Type_1"]
5867 |     """ Client capabilities specific to parameter information. """
5868 |     activeParameterSupport: NotRequired[bool]
5869 |     """ The client supports the `activeParameter` property on `SignatureInformation`
5870 |     literal.
5871 | 
5872 |     @since 3.16.0 """
5873 | 
5874 | 
5875 | class __SignatureHelpClientCapabilities_signatureInformation_parameterInformation_Type_1(TypedDict):
5876 |     labelOffsetSupport: NotRequired[bool]
5877 |     """ The client supports processing label offsets instead of a
5878 |     simple label string.
5879 | 
5880 |     @since 3.14.0 """
5881 | 
5882 | 
5883 | class __TextDocumentContentChangeEvent_Type_1(TypedDict):
5884 |     range: "Range"
5885 |     """ The range of the document that changed. """
5886 |     rangeLength: NotRequired[Uint]
5887 |     """ The optional length of the range that got replaced.
5888 | 
5889 |     @deprecated use range instead. """
5890 |     text: str
5891 |     """ The new text for the provided range. """
5892 | 
5893 | 
5894 | class __TextDocumentContentChangeEvent_Type_2(TypedDict):
5895 |     text: str
5896 |     """ The new text of the whole document. """
5897 | 
5898 | 
5899 | class __TextDocumentFilter_Type_1(TypedDict):
5900 |     language: str
5901 |     """ A language id, like `typescript`. """
5902 |     scheme: NotRequired[str]
5903 |     """ A Uri {@link Uri.scheme scheme}, like `file` or `untitled`. """
5904 |     pattern: NotRequired[str]
5905 |     """ A glob pattern, like `*.{ts,js}`. """
5906 | 
5907 | 
5908 | class __TextDocumentFilter_Type_2(TypedDict):
5909 |     language: NotRequired[str]
5910 |     """ A language id, like `typescript`. """
5911 |     scheme: str
5912 |     """ A Uri {@link Uri.scheme scheme}, like `file` or `untitled`. """
5913 |     pattern: NotRequired[str]
5914 |     """ A glob pattern, like `*.{ts,js}`. """
5915 | 
5916 | 
5917 | class __TextDocumentFilter_Type_3(TypedDict):
5918 |     language: NotRequired[str]
5919 |     """ A language id, like `typescript`. """
5920 |     scheme: NotRequired[str]
5921 |     """ A Uri {@link Uri.scheme scheme}, like `file` or `untitled`. """
5922 |     pattern: str
5923 |     """ A glob pattern, like `*.{ts,js}`. """
5924 | 
5925 | 
5926 | class __WorkspaceEditClientCapabilities_changeAnnotationSupport_Type_1(TypedDict):
5927 |     groupsOnLabel: NotRequired[bool]
5928 |     """ Whether the client groups edits with equal labels into tree nodes,
5929 |     for instance all edits labelled with "Changes in Strings" would
5930 |     be a tree node. """
5931 | 
5932 | 
5933 | class __WorkspaceSymbolClientCapabilities_resolveSupport_Type_1(TypedDict):
5934 |     properties: list[str]
5935 |     """ The properties that a client can resolve lazily. Usually
5936 |     `location.range` """
5937 | 
5938 | 
5939 | class __WorkspaceSymbolClientCapabilities_symbolKind_Type_1(TypedDict):
5940 |     valueSet: NotRequired[list["SymbolKind"]]
5941 |     """ The symbol kind values the client supports. When this
5942 |     property exists the client also guarantees that it will
5943 |     handle values outside its set gracefully and falls back
5944 |     to a default value when unknown.
5945 | 
5946 |     If this property is not present the client only supports
5947 |     the symbol kinds from `File` to `Array` as defined in
5948 |     the initial version of the protocol. """
5949 | 
5950 | 
5951 | class __WorkspaceSymbolClientCapabilities_tagSupport_Type_1(TypedDict):
5952 |     valueSet: list["SymbolTag"]
5953 |     """ The tags supported by the client. """
5954 | 
5955 | 
5956 | class __WorkspaceSymbol_location_Type_1(TypedDict):
5957 |     uri: "DocumentUri"
5958 | 
5959 | 
5960 | class ___InitializeParams_clientInfo_Type_1(TypedDict):
5961 |     name: str
5962 |     """ The name of the client as defined by the client. """
5963 |     version: NotRequired[str]
5964 |     """ The client's version as defined by the client. """
5965 | 
```
Page 18/18FirstPrevNextLast