feat(lsp): add inferred type request (#35099)
Adds a `deno/inferredType` custom LSP request that returns the full
TypeScript QuickInfo display string and source range for the symbol at a
text document position. The TypeScript quick-info bridge now passes an
explicit large `maximumLength`, so hover and inferred-type callers avoid
the default truncation.
Also advertises a `refactor.extract.inferredType` code action titled
"Copy inferred type". The code action carries the precomputed inferred
type text as command data, giving clients a discoverable native entry
point for copying full inferred type text while allowing editor
extensions to own clipboard access.
Companion VS Code extension PR: denoland/vscode_deno#1381
Verification:
- `cargo build --bin deno`
- `cargo fmt --check`
- `cargo test -p integration_tests --test integration lsp_inferred_type
-- --nocapture`
- `cargo build -p test_server`
- `cargo test -p integration_tests --test integration lsp_hover --
--nocapture`
Refs #23901
Closes denoland/divybot#425
---------
Co-authored-by: divybot <divybot@users.noreply.github.com>
Co-authored-by: Divy Srivastava <me@littledivy.com>