summaryrefslogtreecommitdiff
path: root/tests/integration/lsp_tests.rs
AgeCommit message (Collapse)Author
2024-07-04feat: npm workspace and better Deno workspace support (#24334)David Sherret
Adds much better support for the unstable Deno workspaces as well as support for npm workspaces. npm workspaces is still lacking in that we only install packages into the root node_modules folder. We'll make it smarter over time in order for it to figure out when to add node_modules folders within packages. This includes a breaking change in config file resolution where we stop searching for config files on the first found package.json unless it's in a workspace. For the previous behaviour, the root deno.json needs to be updated to be a workspace by adding `"workspace": ["./path-to-pkg-json-folder-goes-here"]`. See details in https://github.com/denoland/deno_config/pull/66 Closes #24340 Closes #24159 Closes #24161 Closes #22020 Closes #18546 Closes #16106 Closes #24160
2024-07-03fix(lsp): correct scope attribution for injected @types/node (#24404)Nayeem Rahman
2024-07-03feat: Upgrade to TypeScript 5.5.2 (#24326)Bartek Iwańczuk
This commit upgrades TypeScript to 5.5.2. https://devblogs.microsoft.com/typescript/announcing-typescript-5-5/
2024-07-01fix(lsp): respect lockfile redirects entries for resolution (#24365)Nayeem Rahman
2024-06-26feat(lsp): ts language service scopes (#24345)Nayeem Rahman
2024-06-26refactor: move PackageJson to deno_config (#24348)David Sherret
2024-06-19fix(lsp): use import map from workspace root (#24246)Nayeem Rahman
Follow up to #24206 which broke deno_std intellisense.
2024-06-17feat(lsp): multi deno.json resolver scopes (#24206)Nayeem Rahman
2024-06-14chore: upgrade to rust 1.79 (#24207)Satya Rohith
2024-06-12fix(lsp): strip .js before probing for valid import fix (#24188)Nayeem Rahman
2024-06-12feat(lsp): respect editor indentation options (#24181)Nayeem Rahman
2024-06-11fix(npm): resolve dynamic npm imports individually (#24170)David Sherret
* https://github.com/denoland/deno_npm/pull/57 * https://github.com/denoland/deno_graph/pull/498 Closes https://github.com/denoland/deno/issues/17802
2024-06-10feat(lsp): workspace jsr resolution (#24121)Nayeem Rahman
2024-06-05fix(npm): use configured auth for tarball urls instead of scope auth (#24111)David Sherret
Deno was using the scope auth for the tarball urls, which is not always correct. We are going to do a release immediately for this issue.
2024-06-03fix(lsp): complete exports for import mapped jsr specifiers (#24054)Nayeem Rahman
2024-05-30feat: do not require `DENO_FUTURE=1` for npmrc support (#24043)David Sherret
2024-05-30feat(lsp): support .npmrc (#24042)Nayeem Rahman
Closes #24040
2024-05-29perf(lsp): lock out requests until init is complete (#23998)Nayeem Rahman
2024-05-23refactor(lsp): determine file referrer for each document (#23867)Nayeem Rahman
2024-05-22fix(lsp): process Fenced Code Block in JSDoc on `completion` correctly (#23822)Hajime-san
partially fixing https://github.com/denoland/deno/issues/23820 https://github.com/denoland/deno/assets/41257923/0adb5d4e-cfd5-4195-9045-19d1c0a07a43 BTW, it is out of scope on this PR that to process type of `@param` to be an code block due to it's a bit complicated.
2024-05-22refactor(docs): use `@experimental` instead of `@tags unstable` (#23884)Leo Kettmeir
2024-05-21fix(lsp): Fix display of JSDoc named examples (#23927)Nathan Whitaker
We were wrapping the display string in an unnecessary pair of triple backticks, breaking highlighting Before: ![Screenshot 2024-05-21 at 12 16 12 PM](https://github.com/denoland/deno/assets/17734409/1cf5a3ce-56dd-443d-9d1a-bd33625ff1f2) After: ![Screenshot 2024-05-21 at 12 16 36 PM](https://github.com/denoland/deno/assets/17734409/646c4c48-9b5a-4326-bb95-b1374627d969)
2024-05-21fix(lsp): apply import fix to missing declaration code action (#23924)Nayeem Rahman
2024-05-21fix(cli): use CliNodeResolver::resolve() for managed node_modules (#23902)Nayeem Rahman
2024-05-16fix(lsp): respect types dependencies for tsc roots (#23825)Nayeem Rahman
2024-05-15chore: Fix flaky semantic tokens caching test (#23831)Nathan Whitaker
The stderr stream from the LSP is consumed by a separate thread, so it may not have processed the part we care about yet. Instead, wait until you see the measure for the request you care about.
2024-05-15perf(lsp): Cache semantic tokens for open documents (#23799)Nathan Whitaker
VScode will typically send a `textDocument/semanticTokens/full` request followed by `textDocument/semanticTokens/range`, and occassionally request semantic tokens even when we know nothing has changed. Semantic tokens also get refreshed on each change. Computing semantic tokens is relatively heavy in TSC, so we should avoid it as much as possible. Caches the semantic tokens for open documents, to avoid making TSC do unnecessary work. Results in a noticeable improvement in local benchmarking before: ``` Starting Deno benchmark -> Start benchmarking lsp - Simple Startup/Shutdown (10 runs, mean: 383ms) - Big Document/Several Edits (5 runs, mean: 1079ms) - Find/Replace (10 runs, mean: 59ms) - Code Lens (10 runs, mean: 440ms) - deco-cx/apps Multiple Edits + Navigation (5 runs, mean: 9921ms) <- End benchmarking lsp ``` after: ``` Starting Deno benchmark -> Start benchmarking lsp - Simple Startup/Shutdown (10 runs, mean: 395ms) - Big Document/Several Edits (5 runs, mean: 1024ms) - Find/Replace (10 runs, mean: 56ms) - Code Lens (10 runs, mean: 438ms) - deco-cx/apps Multiple Edits + Navigation (5 runs, mean: 8927ms) <- End benchmarking lsp ```
2024-05-14fix(lsp): show reference code lens on methods (#23804)Nayeem Rahman
2024-05-09fix(lsp): completions for using decl identifiers (#23748)David Sherret
Closes #23688
2024-05-09fix(lsp): move sloppy import resolution from loader to resolver (#23751)Nathan Whitaker
Moves sloppy import resolution from the loader to the resolver. Also adds some test helper functions to make the lsp tests less verbose --------- Co-authored-by: David Sherret <dsherret@gmail.com>
2024-05-06fix(lsp): Pass diagnostic codes to TSC as numbers (#23720)Nathan Whitaker
Fixes the `Debug Failure` errors described in https://github.com/denoland/deno/issues/23643#issuecomment-2094552765 . The issue here was that we were passing diagnostic codes as strings but TSC expects the codes to be numbers. This resulted in some quick fixes not working (as illustrated by the test added here which fails before this PR). The first commit is the actual fix. The rest are just test related.
2024-05-05docs: update categories to match new planned sitemap (#23677)Jo Franchetti
Updating categories for new sitemap as documented here: https://lucid.app/lucidspark/744b0498-a133-494d-981c-76059dd18885/edit?view_items=jpvBwFdYlNdB&invitationId=inv_50c83415-2aa5-423f-b438-ea156695c08b
2024-05-05chore: update wgpu (#23684)Leo Kettmeir
2024-05-03fix(lsp): always cache all npm packages (#23679)David Sherret
Closes #23659
2024-05-03refactor(lsp): cleanup cache and module registry update (#23620)Nayeem Rahman
2024-05-01chore(lsp): revert import map pre-resolution for jsxImportSource (#23619)Nayeem Rahman
2024-04-30feat(cli): add support for jsxImportSourceTypes (#23419)Luca Casonato
Co-authored-by: David Sherret <dsherret@gmail.com>
2024-04-26feat(ci): category & unstable tags checker (#23568)Leo Kettmeir
2024-04-24fix(lsp): inherit missing fmt and lint config from parent scopes (#23547)Nayeem Rahman
2024-04-23feat: enable Float16Array support (#23490)Bartek Iwańczuk
Closes https://github.com/denoland/deno/issues/23450
2024-04-22fix(lsp): remove Document::open_data on close (#23483)Nayeem Rahman
2024-04-22perf(lsp): Batch "$projectChanged" notification in with the next JS request ↵Nathan Whitaker
(#23451) The actual handling of `$projectChanged` is quick, but JS requests are not. The cleared caches only get repopulated on the next actual request, so just batch the change notification in with the next actual request. No significant difference in benchmarks on my machine, but this speeds up `did_change` handling and reduces our total number of JS requests (in addition to coalescing multiple JS change notifs into one).
2024-04-15fix(lsp): improved cjs tracking (#23374)David Sherret
Our cjs tracking was a bit broken. It was marking stuff as esm that was actually cjs leading to type checking errors.
2024-04-10perf(lsp): Only evict caches on JS side when things actually change (#23293)Nathan Whitaker
Currently we evict a lot of the caches on the JS side of things on every request, namely script versions, script file names, and compiler settings (as of #23283, it's not quite every request but it's still unnecessarily often). This PR reports changes to the JS side, so that it can evict exactly the caches that it needs too. We might want to do some batching in the future so as not to do 1 request per change.
2024-04-10chore: update references to `deno_std` to use JSR (#23239)Asher Gomez
There are more uses of `deno.land/std` in the codebase, but for URL parsing purposes rather than network calls or documentation.
2024-04-10refactor(lsp): cleanup documents dependents calculation (#23295)Nayeem Rahman
2024-04-08chore: update WPT (#23111)Asher Gomez
Should fix some of the current issues with the `wpt_epoch` workflow. See https://github.com/denoland/deno/actions/runs/8460701853/job/23179358486 --------- Co-authored-by: crowlkats <crowlkats@toaxl.com> Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-04-05perf(lsp): use lockfile to reduce npm pkg resolution time (#23247)David Sherret
This functionality was broken. The series of events was: 1. Load the npm resolution from the lockfile. 2. Discover only a subset of the specifiers in the documents. 3. Clear the npm snapshot. 4. Redo npm resolution with the new specifiers (~500ms). What this now does: 1. Load the npm resolution from the lockfile. 2. Discover only a subset of the specifiers in the documents and take into account the specifiers from the lockfile. 3. Do not redo resolution (~1ms).
2024-04-05fix(lsp): respect DENO_FUTURE for BYONM config (#23207)Nayeem Rahman
2024-04-02feat(lsp): respect nested deno.json for fmt and lint config (#23159)Nayeem Rahman