summaryrefslogtreecommitdiff
path: root/cli/lsp/tsc.rs
AgeCommit message (Collapse)Author
2024-11-15feat(lsp): auto-imports with @deno-types directives (#26821)Nayeem Rahman
Co-authored-by: David Sherret <dsherret@gmail.com>
2024-11-15perf: use available system memory for v8 isolate memory limit (#26868)Bartek Iwańczuk
Instead of using the default 1.4Gb limit (which was meant for browser tabs) configure V8 to set the heap limit to the amount of memory available in the system. Closes https://github.com/denoland/deno/issues/23424 Closes https://github.com/denoland/deno/issues/26435 Closes https://github.com/denoland/deno/issues/21226
2024-11-13feat(node): stabilize detecting if CJS via `"type": "commonjs"` in a ↵David Sherret
package.json (#26439) This will respect `"type": "commonjs"` in a package.json to determine if `.js`/`.jsx`/`.ts`/.tsx` files are CJS or ESM. If the file is found to be ESM it will be loaded as ESM though.
2024-11-06feat(lsp): auto-import completions from byonm dependencies (#26680)Nayeem Rahman
2024-11-01fix: improved support for cjs and cts modules (#26558)David Sherret
* cts support * better cjs/cts type checking * deno compile cjs/cts support * More efficient detect cjs (going towards stabilization) * Determination of whether .js, .ts, .jsx, or .tsx is cjs or esm is only done after loading * Support `import x = require(...);` Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-10-25feat(lsp): "typescript.preferences.preferTypeOnlyAutoImports" setting (#26546)Nayeem Rahman
2024-10-21feat(lsp): interactive inlay hints (#26382)Nayeem Rahman
2024-10-15chore: upgrade to rust 1.81.0 (#26261)林炳权
2024-09-28refactor: use deno_path_util (#25918)David Sherret
2024-09-18fix: do not panic running invalid file specifier (#25530)Yazan AbdAl-Rahman
Co-authored-by: Bedis Nbiba <bedisnbiba@gmail.com>
2024-09-17feat(lsp): auto-import types with 'import type' (#25662)Nayeem Rahman
2024-09-14feat: TypeScript 5.6 and `npm:@types/node@22` (#25614)David Sherret
2024-08-28fix(lsp): panic on url_to_uri() (#25238)Nayeem Rahman
2024-08-24refactor(lsp): changes for lsp_types 0.97.0 (#25169)Nayeem Rahman
2024-08-12fix(lsp): directly use file referrer when loading document (#24997)Nayeem Rahman
2024-07-29chore: upgrade to rust 1.80 (#24778)Satya Rohith
2024-07-23fix(lsp): rewrite import for 'infer return type' action (#24685)Nayeem Rahman
2024-07-19refactor: update to deno_config 0.25 (#24645)David Sherret
- Gets rid of WorkspaceMemberContext. It's now `Workspace` and `WorkspaceDirectory` - Uses the workspace cache in the lsp * https://github.com/denoland/deno_config/pull/95 * https://github.com/denoland/deno_config/pull/96
2024-07-18fix(lsp): support npm workspaces and fix some resolution issues (#24627)David Sherret
Makes the lsp use the same code as the rest of the cli.
2024-07-10fix(check): CJS types importing dual ESM/CJS package should prefer CJS types ↵David Sherret
(#24492) Closes #16370
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-06-28fix(lsp): don't use global cache paths for scope allocation (#24353)Nayeem Rahman
2024-06-26feat(lsp): ts language service scopes (#24345)Nayeem Rahman
2024-06-17feat(lsp): multi deno.json resolver scopes (#24206)Nayeem Rahman
2024-06-14chore: upgrade to rust 1.79 (#24207)Satya Rohith
2024-05-29perf(repl): don't walk workspace in repl language server (#24037)Nayeem Rahman
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-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-16fix(lsp): respect types dependencies for tsc roots (#23825)Nayeem Rahman
2024-05-13refactor(lsp): reuse CliGraphResolverOptions::sloppy_imports_resolver (#23764)Nayeem Rahman
2024-05-09refactor(lsp): Have JS drive TSC event loop in LSP (#23565)Nathan Whitaker
2024-05-09refactor(lsp): unify caching into LspCache (#23746)Nayeem Rahman
2024-05-09fix(lsp): completions for using decl identifiers (#23748)David Sherret
Closes #23688
2024-05-07refactor(lsp): reland move resolver fields to LspResolver (#23685)Nayeem Rahman
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-04fix(lsp): handle multiline semantic tokens (#23691)Nayeem Rahman
2024-05-01fix(lsp): Catch cancellation exceptions thrown by TSC, stop waiting for TS ↵Nathan Whitaker
result upon cancellation (#23645) Fixes #23643. We weren't catching the cancellation exception thrown by TSC on the JS side, so the rust side was catching this exception and then attempting to print out the exception via `toString`. That last bit resulted in a cryptic `[object Object]` showing up in the logs like so: ``` Error during TS request "getCompletionEntryDetails": [object Object] ``` I'm not 100% sure how we weren't seeing this in the past. My guess is that #23409 and the subsequent PR to improve the exception catching and logging surfaced this, but I'm still not quite clear on it. My initial fix here returned `null` to rust when a server request was cancelled, but this resulted in a deserialization error when we attempted to deserialize that into the expected response type. So now, as soon as the request's cancellation token signals we'll stop waiting for a response and return an error (which will get swallowed as the LSP request is being cancelled). I was a bit surprised to find that [this branch](https://github.com/nathanwhit/deno/blob/0c671c9792ac706c1ecd60f88efdc5eb8e941917/cli/lsp/tsc.rs#L1093) actually executes sometimes, I believe due to the fact that aborting a future may not [immediately stop its execution](https://docs.rs/futures/latest/futures/stream/struct.AbortHandle.html#method.abort).
2024-05-01Revert "refactor(lsp): move fields from Documents to LspResolver" (#23626)Divy Srivastava
This reverts commit 5cae3439912ad60eb2866f3d4372a5fe4d0de957. ![image](https://github.com/denoland/deno/assets/34997667/e68e40a1-7baf-453b-80d9-f8b6aae186c7) Caused a +3.3s regression in one of the LSP benchmarks at deno.land/benchmarks.
2024-04-30docs: fix some typos in comments (#23520)findmyhappy
2024-04-30refactor(lsp): move fields from Documents to LspResolver (#23585)Nayeem Rahman
2024-04-27chore(lsp): remove ConfigSnapshot (#23579)Nayeem Rahman
2024-04-26refactor(lsp): unify resolver types into LspResolver (#23514)Nayeem Rahman
2024-04-24chore(lsp): Print out stack trace if exception occurs in TS request (#23543)Nathan Whitaker
Before this PR, there would just be an uninformative "Error occurred" message, after this PR you'll get a stack trace in the LSP output window like this: ```text Error during TS request "$getSupportedCodeFixes": Error: i threw an exception at serverRequest (ext:deno_tsc/99_main_compiler.js:1089:11) ```
2024-04-23fix(lsp): Fix logic for coalescing pending changes + clear script names ↵Nathan Whitaker
cache when file is closed (#23517)
2024-04-23perf(lsp): Call `serverRequest` via V8 instead of via `executeScript` (#23409)Nathan Whitaker
Doesn't have a noticeable perf impact from my benchmarking, but theoretically should be better.
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-20perf(lsp): Pass code action trigger kind to TSC (#23466)Nathan Whitaker