David Sherret
763d492ed6
fix(npm): use an http client with connection pool ( #16705 )
...
Should make downloading npm packages faster and more reliable.
2022-11-18 17:28:14 -05:00
Bartek Iwańczuk
53e974b276
feat: remove --unstable flag requirement for npm: specifiers ( #16473 )
...
This commit makes "npm:" specifiers not require "--unstable" flag.
At the moment some APIs used by Node polyfills still require
"--unstable" which will be addressed in follow up PRs.
2022-11-10 17:57:10 +01:00
David Sherret
cbb3f85433
feat(unstable/npm): support peer dependencies ( #16561 )
...
This adds support for peer dependencies in npm packages.
1. If not found higher in the tree (ancestor and ancestor siblings),
peer dependencies are resolved like a dependency similar to npm 7.
2. Optional peer dependencies are only resolved if found higher in the
tree.
3. This creates "copy packages" or duplicates of a package when a
package has different resolution due to peer dependency resolution—see
https://pnpm.io/how-peers-are-resolved . Unlike pnpm though, duplicates
of packages will have `_1`, `_2`, etc. added to the end of the package
version in the directory in order to minimize the chance of hitting the
max file path limit on Windows. This is done for both the local
"node_modules" directory and also the global npm cache. The files are
hard linked in this case to reduce hard drive space.
This is a first pass and the code is definitely more inefficient than it
could be.
Closes #15823
2022-11-08 14:17:24 -05:00
Bartek Iwańczuk
5dea510b02
fix(lock): autodiscovery of lockfile ( #16498 )
...
This commit adds autodiscovery of lockfile.
This only happens if Deno discovers the configuration file (either
"deno.json" or "deno.jsonc"). In such case Deno tries to load
"deno.lock"
file that sits next to the configuration file, or creates one for user
if
the lockfile doesn't exist yet.
As a consequence, "--lock" and "--lock-write" flags had been updated.
"--lock" no longer requires a value, if one is not provided, it defaults
to "./deno.lock" resolved from the current working directory.
"--lock-write"
description was updated to say that it forces to overwrite a lockfile.
Autodiscovery is currently not handled by the LSP.
2022-11-02 16:32:30 +01:00
David Sherret
bcfe279fba
feat(unstable/npm): initial type checking of npm specifiers ( #16332 )
2022-10-21 15:20:18 +00:00
David Sherret
da906de184
fix(lsp): allow caching deps in non-saved files ( #16353 )
2022-10-20 13:23:21 -04:00
Tomofumi Chiba
2b35cb3f2f
fix(lsp): treat empty import map value config as none ( #16224 )
...
Ref: denoland/vscode_deno#718
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2022-10-17 10:01:10 +11:00
Kitson Kelly
7d78f58187
feat: support inlay hints ( #16287 )
...
Closes: #11853
2022-10-16 13:39:43 +11:00
Kitson Kelly
afcea6c233
fix(lsp): properly handle snippets on completions ( #16274 )
...
Fixes #15367
2022-10-14 23:04:38 +11:00
Outvi V
924aa31fa8
fix(lsp): remove excessive line breaks in status page ( #15364 )
...
Fixes #15359
2022-08-02 08:29:05 +10:00
Kitson Kelly
7e06d33b34
feat(lsp): provide import map remapping diags and fixes ( #15165 )
2022-07-14 11:12:18 +10:00
Kitson Kelly
5db16d1229
fix(lsp): enable auto imports ( #15145 )
...
Fixes: #15111
2022-07-12 09:35:18 +10:00
cuobiezi
83818c914b
refactor: rename run_basic to run_local ( #15068 )
2022-07-11 19:02:23 +02:00
David Sherret
95d2f206fc
refactor: extract deno_graph::create_graph
use to common function ( #15009 )
2022-07-01 11:50:16 -04:00
Bartek Iwańczuk
b8b82c3ea4
chore: use Rust 1.62.0 ( #15028 )
2022-07-01 15:28:06 +02:00
David Sherret
01adbb1efb
refactor: add RootConfig
( #14985 )
2022-06-28 16:45:55 -04:00
David Sherret
e1c90963fb
refactor: create args
folder ( #14982 )
2022-06-27 16:54:09 -04:00
Bartek Iwańczuk
681bb49d0d
fix(lsp): restart TS language service when caching dependencies ( #14979 )
2022-06-27 19:43:43 +02:00
Nayeem Rahman
845d4754c6
fix(check): use "moduleDetection": "force" ( #14875 )
2022-06-15 12:26:43 -04:00
Bartek Iwańczuk
d8f6be2336
fix(lsp): change glob to watch json and jsonc files ( #14828 )
2022-06-09 17:59:22 +02:00
David Sherret
1fcecb6789
refactor: upgrade to deno_ast 0.15 ( #14680 )
2022-05-20 16:40:55 -04:00
David Sherret
c0e3b6096d
refactor(lsp): store all the assets in Rust when initializing ( #14367 )
2022-04-25 11:23:24 -04:00
David Sherret
ae479b1036
perf(fmt/lint): incremental formatting and linting ( #14314 )
2022-04-19 22:14:00 -04:00
Jason
a6e4b4297d
refactor(lsp): migrate from lspower back to tower-lsp ( #14163 )
2022-04-03 14:17:30 +10:00
Kitson Kelly
061090de7e
feat(lsp): add experimental testing API ( #13798 )
...
Ref: denoland/vscode_deno#629
2022-03-30 09:59:27 +11:00
David Sherret
4a0b2c28a1
chore(ci): fix lsp bench due to notification that was accidentally added ( #14148 )
2022-03-29 17:28:55 -04:00
David Sherret
03c71a8b4a
chore: upgrade dprint-core to 0.54.1 ( #14146 )
2022-03-29 13:33:00 -04:00
Kitson Kelly
5a6a1eeb39
feat(lsp): support API for config file ( #14139 )
...
Closes: #13910
2022-03-29 11:27:43 +11:00
Kitson Kelly
33a8613451
fix(lsp): watch .jsonc files ( #14135 )
2022-03-28 20:40:39 +11:00
David Sherret
53dac7451b
chore: remove all pub(crate)
s from the cli crate ( #14083 )
2022-03-23 09:54:22 -04:00
Kitson Kelly
1414dc503b
feat(lsp): support deno.enablePaths setting ( #13978 )
...
Ref: denoland/vscode_deno#633
2022-03-21 12:33:37 +11:00
David Sherret
e8c47755bb
chore(lsp): log more for "unexpected positions" lsp error ( #13815 )
...
Ref #13657
2022-03-03 08:06:38 +11:00
David Sherret
3b12afd072
chore: upgrade to Rust 1.59 ( #13767 )
2022-02-24 20:03:12 -05:00
Kitson Kelly
973fe6dd3a
refactor: remove dead code from lsp ( #13743 )
2022-02-24 08:01:20 +11:00
Kitson Kelly
ee27b9dd7e
feat: allow specification of import map in config file ( #13739 )
...
Closes: #12800
2022-02-23 10:51:14 +11:00
Kitson Kelly
2f2c778a07
feat(lsp): support linking to symbols in JSDoc on hover ( #13631 )
...
Closes #13198
2022-02-10 10:08:53 +11:00
Kitson Kelly
773f882e5e
feat(lsp): provide completions from import map if available ( #13624 )
...
Closes #13619
2022-02-10 07:13:50 +11:00
David Sherret
8cc9a9350b
fix(lsp): do not panic getting root_uri to auto discover configuration file ( #13603 )
2022-02-05 17:41:15 -05:00
Kitson Kelly
af5a373e00
feat(lsp): add redirect diagnostic and quick fix ( #13580 )
...
Ref: #12864
2022-02-04 18:14:57 +11:00
David Sherret
ed3086e4b1
refactor(lsp): remove circular dependency between LanguageServer
and DiagnosticsServer
( #13577 )
2022-02-02 18:02:59 -05:00
Kitson Kelly
26f5c223df
fix(lsp): properly display x-deno-warning with redirects ( #13554 )
...
Fixes: #13472
2022-02-02 13:04:26 +11:00
Kitson Kelly
7d356250e8
refactor: integrate deno_graph breaking changes ( #13495 )
...
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2022-02-01 09:33:57 +11:00
David Sherret
d4dd9ae4cf
refactor(lsp): remove RwLock on Config
( #13485 )
2022-01-25 10:30:38 -05:00
David Sherret
bc8de78da3
perf(lsp): independent diagnostic source publishes ( #13427 )
2022-01-24 15:30:01 -05:00
Kitson Kelly
3ec248cff8
fix(lsp): respect DENO_CERT and other options related to TLS certs ( #13467 )
...
Fixes #13437
2022-01-24 11:27:52 +11:00
David Sherret
f73a5fbc89
refactor(lsp): reduce data stored in StateSnapshot
( #13426 )
2022-01-19 17:10:14 -05:00
Kitson Kelly
6cf05220e3
fix(lsp): better handling of registry config errors ( #13418 )
...
Fixes: #13383
Fixes: denoland/vscode_deno#609
2022-01-20 08:05:19 +11:00
David Sherret
1cece36fa5
refactor(lsp): store the LspUrlMap
's state inside a mutex ( #13416 )
2022-01-19 11:38:40 -05:00
David Sherret
b3545dd447
refactor(lsp): store assets behind a mutex ( #13414 )
2022-01-18 16:28:47 -05:00
Ryan Dahl
39ea4abff4
feat: auto-discover config file ( #13313 )
2022-01-17 20:10:17 -05:00
David Sherret
1ab5dea367
refactor(lsp): remove performance
from StateSnapshot
( #13403 )
2022-01-17 17:09:43 -05:00
Ryan Dahl
3595f37b07
refactor: simplify how LSP deals with config file specifier ( #13401 )
2022-01-17 14:45:05 -05:00
David Sherret
eda6e58520
refactor: upgrade to import_map v0.6 ( #13368 )
2022-01-13 18:17:56 -05:00
Ryan Dahl
1fb5858009
chore: update copyright to 2022 ( #13306 )
...
Co-authored-by: Erfan Safari <erfanshield@outlook.com>
2022-01-07 22:09:52 -05:00
Kitson Kelly
57bfa87b2c
feat(lsp): provide registry details on hover if present ( #13294 )
...
Closes: #13272
2022-01-07 11:27:13 +11:00
David Sherret
19c8cd3a45
fix: upgrade swc_ecmascript to 0.103 ( #13284 )
2022-01-04 17:02:56 -05:00
Kitson Kelly
e28fb70aee
fix(lsp): provide diagnostics for import assertions ( #13105 )
...
Fixes: #13099
2021-12-16 14:53:17 +11:00
David Sherret
6c324acf23
feat: REPL import specifier auto-completions ( #13078 )
2021-12-15 13:23:43 -05:00
Bartek Iwańczuk
a1f0796fcc
feat: Add support for import assertions and JSON modules ( #12866 )
...
This commit adds proper support for import assertions and JSON modules.
Implementation of "core/modules.rs" was changed to account for multiple possible
module types, instead of always assuming that the code is an "ES module". In
effect "ModuleMap" now has knowledge about each modules' type (stored via
"ModuleType" enum). Module loading pipeline now stores information about
expected module type for each request and validates that expected type matches
discovered module type based on file's "MediaType".
Relevant tests were added to "core/modules.rs" and integration tests,
additionally multiple WPT tests were enabled.
There are still some rough edges in the implementation and not all WPT were
enabled, due to:
a) unclear BOM handling in source code by "FileFetcher"
b) design limitation of Deno's "FileFetcher" that doesn't download the same
module multiple times in a single run
Co-authored-by: Kitson Kelly <me@kitsonkelly.com>
2021-12-15 19:22:36 +01:00
Kitson Kelly
a54fc7a129
feat(lsp): improve registry completion suggestions ( #13023 )
...
Resolves #10051
2021-12-14 06:24:11 +11:00
Kitson Kelly
345f0fbe5c
feat(cli): update to TypeScript 4.5 ( #12410 )
...
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2021-12-10 09:12:21 +11:00
Bartek Iwańczuk
e68a241946
chore: upgrade lspower to 1.4.0 ( #12894 )
2021-11-25 12:10:12 +11:00
David Sherret
adc5974333
fix(lsp): lsp should respect include/exclude files in format config ( #12876 )
2021-11-24 15:14:19 -05:00
igorsaux
3f8c3b8568
fix(lsp): normalize urls in did_change_watched_files ( #12873 )
2021-11-23 12:32:40 -05:00
David Sherret
51e3db956a
fix(cli): config file should resolve paths relative to the config file ( #12867 )
...
* Add `specifier_to_file_path` to support converting a ModuleSpecifier with a unix-style path to a PathBuf on Windows.
2021-11-23 10:38:11 -05:00
Kitson Kelly
210300d049
feat(lsp): add type definition provider ( #12789 )
2021-11-23 11:09:19 +11:00
Kitson Kelly
bf5657cd59
feat(lsp): add workspace symbol provider ( #12787 )
2021-11-23 11:08:56 +11:00
David Sherret
c82ce74133
refactor(lsp): remove Documents
mutex and require Documents
to be mutated to change it ( #12747 )
2021-11-18 13:50:24 -05:00
Kitson Kelly
cc38580106
fix(lsp): retain module dependencies when parse is invalid ( #12782 )
...
Fixes #12753
2021-11-17 09:23:25 +11:00
Ryan Dahl
b2036a4db7
refactor: re-export anyhow from deno_core ( #12777 )
2021-11-16 09:02:28 -05:00
David Sherret
28dbb4a95e
refactor(lsp): prefer using document instead of documents collection ( #12720 )
2021-11-12 11:42:04 -05:00
Kitson Kelly
f5eb177f50
feat(cli): support React 17 JSX transforms ( #12631 )
...
Closes #8440
2021-11-09 12:26:39 +11:00
Kitson Kelly
182de1452b
fix(lsp): display module types only dependencies on hover ( #12683 )
...
Fixes: #12675
2021-11-08 11:50:48 +11:00
Luca Casonato
318dcc33af
Revert "feat(cli): enable useUnknownInCatchVariables
by default" ( #12643 )
...
This partially reverts commit a065604155
.
Co-authored-by: Kitson Kelly <me@kitsonkelly.com>
2021-11-04 11:30:37 +01:00
David Sherret
0ec151b8cb
chore: upgrade deno_ast to 0.5.0 ( #12595 )
2021-11-01 16:22:27 -04:00
Kitson Kelly
34a9ddff09
refactor(lsp): use deno_graph and single document struct ( #12535 )
...
Closes #12473
2021-10-29 10:56:01 +11:00
Kitson Kelly
a065604155
feat(cli): enable useUnknownInCatchVariables
by default ( #12547 )
...
Closes #11826
**BREAKING CHANGE** this behaviour was disable when introduced in Deno 1.14/TypeScript 4.4. It will highlight code that unsafely handles variables that are caught, and will cause type errors in unsafe code.
2021-10-28 08:43:40 +11:00
David Sherret
43cd0459b9
fix(lsp): formatting should error on certain additional swc diagnostics ( #12491 )
2021-10-21 10:18:18 -04:00
Bartek Iwańczuk
f332d72f16
fix(lsp): lint diagnostics respect config file ( #12338 )
...
This commit fixes problem with LSP where diagnostics coming
from "deno lint" don't respect configuration file.
LSP was changed to store "Option<ConfigFile>", "Option<LintConfig>"
and "Option<FmtConfig>" on "Inner"; as well as storing "Option<LintConfig>"
and "Option<FmtConfig>" on "StateSnapshot".
Co-authored-by: Kitson Kelly <me@kitsonkelly.com>
2021-10-12 00:02:33 +02:00
Kitson Kelly
a7baf5f2bb
refactor: integrate deno_graph into CLI ( #12369 )
2021-10-11 08:26:22 +11:00
Kitson Kelly
ccb3387946
fix(lsp): align filter text to vscode logic ( #12081 )
...
Fixes #11861
2021-09-16 12:07:52 +10:00
Bartek Iwańczuk
0dbeb774ba
feat(fmt): add support for configuration file ( #11944 )
...
This commit adds support for configuration file for "deno fmt"
subcommand. It is also respected by LSP when formatting
files.
Example configuration:
{
"fmt": {
"files": {
"include": ["src/"],
"exclude": ["src/testdata/"]
},
"options": {
"useTabs": true,
"lineWidth": 80,
"indentWidth": 4,
"singleQuote": true,
"textWrap": "preserve"
}
}
}
2021-09-13 20:19:10 +02:00
Satya Rohith
84f8747157
fix(lsp): support data urls in deno.importMap
option ( #11397 )
2021-09-13 09:49:23 +05:30
Bartek Iwańczuk
d236f432b8
refactor: use import_map crate ( #11974 )
...
Removes ImportMap implementation from "cli/" and instead
uses "import_map" crate
2021-09-11 03:38:24 +02:00
David Sherret
2c2e3ec1ca
refactor(lsp): use deno_ast and cache swc ASTs ( #11780 )
2021-09-07 10:39:32 -04:00
Bartek Iwańczuk
d93570a619
feat(lint): add support for config file and CLI flags for rules ( #11776 )
...
This commit adds support for following flags in deno lint subcommand:
--config - allows to load configuration file and parses "lint" object
--rules-tags=<tags> - allows specifying which set of tagged rules should be run
--rules-include=<rules> - allow specifying which rules should be run
--rules-exclude=<rules> - allow specifying which rules should not be run
2021-09-03 17:01:58 +02:00
Kitson Kelly
935133f53a
feat(cli): Update to TypeScript 4.4 ( #11678 )
2021-08-27 10:12:59 +10:00
Kitson Kelly
0d83afd939
fix(lsp): better handling of languageId ( #11755 )
...
Fixes #11521
Fixes #11742
2021-08-19 13:19:12 +10:00
Kitson Kelly
f7e416bc7f
feat(lsp): support clients which do not support disabled code actions ( #11612 )
...
Closes: #11610
2021-08-10 09:56:34 +10:00
Jean Pierre
728d205d9d
feat(lsp): implement refactoring code actions ( #11555 )
...
Closes: denoland/vscode_deno#433
2021-08-06 11:46:32 +10:00
Yusuke Tanaka
8f00b5542c
chore: upgrade Rust to 1.54.0 ( #11554 )
2021-07-30 15:03:41 +02:00
Kitson Kelly
667b026798
feat(lsp): ability to set DENO_DIR via settings ( #11527 )
...
Ref: denoland/vscode_deno#287
2021-07-28 07:25:09 +10:00
Kitson Kelly
c6f4e41529
refactor(lsp): minor improvements to handling closed documents ( #11518 )
...
Ref #10897
2021-07-27 07:40:12 +10:00
Kitson Kelly
72ac9c3ae0
fix(lsp): handle importmaps properly ( #11496 )
...
Fixes: #11146
Fixes: #11456
Fixes: #10439
2021-07-25 15:33:42 +10:00
Kitson Kelly
c34fef4b71
feat(lsp): add workspace config to status page ( #11459 )
2021-07-21 11:50:43 +10:00
David Sherret
1f4cdc067a
fix(lsp): reload import registries should not error when the module registries directory does not exist ( #11123 )
2021-06-25 21:44:27 -04:00
Kitson Kelly
9e51766f3e
feat(lsp): dependency hover information ( #11090 )
2021-06-25 09:06:51 +10:00
Kitson Kelly
8ed83cba7e
fix(lsp): handle invalid config setting better ( #11104 )
...
Fixes #11100
Fixes #10808
2021-06-24 22:41:04 +10:00
David Sherret
477273085f
chore: use lsp to get parent process id ( #11083 )
...
Removes the previously added internal `--parent-pid` flag. This solution is better.
2021-06-22 21:48:01 -04:00
Kitson Kelly
281c4cd8fc
feat(cli): support "types" when type checking ( #10999 )
...
Fixes #10677
2021-06-22 07:18:32 +10:00