deno/cli/lsp
Matt Mastracci 0b4770fa7d
perf(core) Reduce script name and script code copies (#18298)
Reduce the number of copies and allocations of script code by carrying
around ownership/reference information from creation time.

As an advantage, this allows us to maintain the identity of `&'static
str`-based scripts and use v8's external 1-byte strings (to avoid
incorrectly passing non-ASCII strings, debug `assert!`s gate all string
reference paths).

Benchmark results:

Perf improvements -- ~0.1 - 0.2ms faster, but should reduce garbage
w/external strings and reduces data copies overall. May also unlock some
more interesting optimizations in the future.

This requires adding some generics to functions, but manual
monomorphization has been applied (outer/inner function) to avoid code
bloat.
2023-03-21 22:33:12 +00:00
..
testing feat(core) deno_core::extension! macro to simplify extension registration (#18210) 2023-03-17 18:22:15 +00:00
analysis.rs chore(cli): update deno_lint to 0.41.0 (#17997) 2023-03-02 21:50:17 +00:00
cache.rs refactor: use deno_graph for npm specifiers (#17858) 2023-02-22 14:15:25 -05:00
capabilities.rs refactor: remove usages of map_or / map_or_else (#18212) 2023-03-15 17:46:36 -04:00
client.rs fix(lsp): avoid calling client while holding lock (#18197) 2023-03-15 14:34:23 +00:00
code_lens.rs chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
completions.rs feat: TypeScript 5.0.2 (except decorators) (#18294) 2023-03-21 15:46:40 +00:00
config.rs fix(lsp): avoid calling client while holding lock (#18197) 2023-03-15 14:34:23 +00:00
diagnostics.rs feat: TypeScript 5.0.2 (except decorators) (#18294) 2023-03-21 15:46:40 +00:00
documents.rs feat: TypeScript 5.0.2 (except decorators) (#18294) 2023-03-21 15:46:40 +00:00
language_server.rs feat: TypeScript 5.0.2 (except decorators) (#18294) 2023-03-21 15:46:40 +00:00
logging.rs chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
lsp_custom.rs chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
mod.rs chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
parent_process_checker.rs chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
path_to_regex.rs refactor: remove usages of map_or / map_or_else (#18212) 2023-03-15 17:46:36 -04:00
performance.rs refactor(lsp): fewer clones (#17551) 2023-01-26 23:24:03 +01:00
README.md feat(lsp): improve registry completion suggestions (#13023) 2021-12-14 06:24:11 +11:00
refactor.rs refactor(lsp): fewer clones (#17551) 2023-01-26 23:24:03 +01:00
registries.rs refactor: remove usages of map_or / map_or_else (#18212) 2023-03-15 17:46:36 -04:00
repl.rs chore: upgrade to Rust 1.67 (#17548) 2023-01-27 10:43:16 -05:00
semantic_tokens.rs chore: use rustfmt imports_granularity option (#17421) 2023-01-14 23:18:58 -05:00
text.rs chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
tsc.rs perf(core) Reduce script name and script code copies (#18298) 2023-03-21 22:33:12 +00:00
urls.rs fix(lsp): avoid calling client while holding lock (#18197) 2023-03-15 14:34:23 +00:00

Deno Language Server

The Deno Language Server provides a server implementation of the Language Server Protocol which is specifically tailored to provide a Deno view of code. It is integrated into the command line and can be started via the lsp sub-command.

This documentation has been moved to the Deno manual.