2020-07-14 15:24:17 -04:00
|
|
|
{
|
|
|
|
"typescript": {
|
|
|
|
"deno": true
|
|
|
|
},
|
|
|
|
"markdown": {
|
2021-03-10 08:17:24 -05:00
|
|
|
"deno": true
|
|
|
|
},
|
|
|
|
"json": {
|
|
|
|
"deno": true
|
2020-07-14 15:24:17 -04:00
|
|
|
},
|
2024-07-10 23:59:57 -04:00
|
|
|
"yaml": {
|
|
|
|
"quotes": "preferSingle"
|
|
|
|
},
|
2022-02-21 12:47:08 -05:00
|
|
|
"exec": {
|
2023-07-31 11:10:10 -04:00
|
|
|
"commands": [{
|
|
|
|
"command": "rustfmt --config imports_granularity=item",
|
|
|
|
"exts": ["rs"]
|
|
|
|
}]
|
2022-02-21 12:47:08 -05:00
|
|
|
},
|
2020-07-14 15:24:17 -04:00
|
|
|
"excludes": [
|
|
|
|
".cargo_home",
|
2020-11-09 14:56:43 -05:00
|
|
|
".git",
|
2022-01-18 06:58:50 -05:00
|
|
|
"cli/bench/testdata/express-router.js",
|
chore(lsp): Add benchmark for performance on a large real-world repo (#23395)
This PR adds a benchmark intended to measure how the LSP handles larger
repos, as well as its performance on a more realistic workload.
The repo being benchmarked is
[deco-cx/apps](https://github.com/deco-cx/apps) which has been vendored
along with its dependencies. It's included as a git submodule as its
fairly large. The LSP requests used in the benchmark are the actual
requests sent by VSCode as I opened, modified, and navigated around a
file (to simulate an actual user interaction).
The main motivation is to have a more realistic benchmark that measures
how we do with a large number of files and dependencies. The
improvements made from 1.42 to 1.42.3 mostly improved performance with
larger repos, so none of our existing benchmarks showed an improvement.
Here are the results for the changes made from 1.42 to 1.42.3 (the new
benchmark is the last one listed):
**1.42.0**
```test
Starting Deno benchmark
-> Start benchmarking lsp
- Simple Startup/Shutdown
(10 runs, mean: 379ms)
- Big Document/Several Edits
(5 runs, mean: 1142ms)
- Find/Replace
(10 runs, mean: 51ms)
- Code Lens
(10 runs, mean: 443ms)
- deco-cx/apps Multiple Edits + Navigation
(5 runs, mean: 25121ms)
<- End benchmarking lsp
```
**1.42.3**
```text
Starting Deno benchmark
-> Start benchmarking lsp
- Simple Startup/Shutdown
(10 runs, mean: 383ms)
- Big Document/Several Edits
(5 runs, mean: 1135ms)
- Find/Replace
(10 runs, mean: 55ms)
- Code Lens
(10 runs, mean: 440ms)
- deco-cx/apps Multiple Edits + Navigation
(5 runs, mean: 11675ms)
<- End benchmarking lsp
```
2024-04-16 15:26:51 -04:00
|
|
|
"cli/bench/testdata/lsp_benchdata/",
|
2024-07-03 20:54:33 -04:00
|
|
|
"cli/bench/testdata/npm/",
|
|
|
|
"cli/tsc/*typescript.js",
|
2023-03-21 17:01:53 -04:00
|
|
|
"cli/tsc/dts/lib.d.ts",
|
|
|
|
"cli/tsc/dts/lib.decorators*.d.ts",
|
|
|
|
"cli/tsc/dts/lib.dom*.d.ts",
|
|
|
|
"cli/tsc/dts/lib.es*.d.ts",
|
2024-07-03 20:54:33 -04:00
|
|
|
"cli/tsc/dts/lib.scripthost.d.ts",
|
|
|
|
"cli/tsc/dts/lib.webworker*.d.ts",
|
2023-03-21 17:01:53 -04:00
|
|
|
"cli/tsc/dts/typescript.d.ts",
|
2024-07-03 20:54:33 -04:00
|
|
|
"ext/websocket/autobahn/reports",
|
|
|
|
"gh-pages",
|
|
|
|
"target",
|
|
|
|
"tests/ffi/tests/test.js",
|
|
|
|
"tests/node_compat/runner/suite",
|
|
|
|
"tests/node_compat/runner/TODO.md",
|
2024-03-05 15:49:21 -05:00
|
|
|
"tests/node_compat/test",
|
2024-05-06 21:06:01 -04:00
|
|
|
"tests/registry/",
|
2024-09-18 15:15:13 -04:00
|
|
|
"tests/specs/bench/default_ts",
|
2024-07-03 20:54:33 -04:00
|
|
|
"tests/specs/fmt",
|
|
|
|
"tests/specs/lint/bom",
|
2024-09-18 15:15:13 -04:00
|
|
|
"tests/specs/lint/default_ts",
|
2024-11-06 18:47:21 -05:00
|
|
|
"tests/specs/lint/minified",
|
2024-07-23 17:17:17 -04:00
|
|
|
"tests/specs/lint/syntax_error_reporting",
|
2024-07-17 23:06:30 -04:00
|
|
|
"tests/specs/publish/no_check_surfaces_syntax_error",
|
2024-09-18 15:15:13 -04:00
|
|
|
"tests/specs/run/default_ts",
|
|
|
|
"tests/specs/test/default_ts",
|
chore: move cli/tests/ -> tests/ (#22369)
This looks like a massive PR, but it's only a move from cli/tests ->
tests, and updates of relative paths for files.
This is the first step towards aggregate all of the integration test
files under tests/, which will lead to a set of integration tests that
can run without the CLI binary being built.
While we could leave these tests under `cli`, it would require us to
keep a more complex directory structure for the various test runners. In
addition, we have a lot of complexity to ignore various test files in
the `cli` project itself (cargo publish exclusion rules, autotests =
false, etc).
And finally, the `tests/` folder will eventually house the `test_ffi`,
`test_napi` and other testing code, reducing the size of the root repo
directory.
For easier review, the extremely large and noisy "move" is in the first
commit (with no changes -- just a move), while the remainder of the
changes to actual files is in the second commit.
2024-02-10 15:22:13 -05:00
|
|
|
"tests/testdata/byte_order_mark.ts",
|
|
|
|
"tests/testdata/encoding",
|
2024-07-03 20:54:33 -04:00
|
|
|
"tests/testdata/file_extensions/ts_with_js_extension.js",
|
chore: move cli/tests/ -> tests/ (#22369)
This looks like a massive PR, but it's only a move from cli/tests ->
tests, and updates of relative paths for files.
This is the first step towards aggregate all of the integration test
files under tests/, which will lead to a set of integration tests that
can run without the CLI binary being built.
While we could leave these tests under `cli`, it would require us to
keep a more complex directory structure for the various test runners. In
addition, we have a lot of complexity to ignore various test files in
the `cli` project itself (cargo publish exclusion rules, autotests =
false, etc).
And finally, the `tests/` folder will eventually house the `test_ffi`,
`test_napi` and other testing code, reducing the size of the root repo
directory.
For easier review, the extremely large and noisy "move" is in the first
commit (with no changes -- just a move), while the remainder of the
changes to actual files is in the second commit.
2024-02-10 15:22:13 -05:00
|
|
|
"tests/testdata/fmt/",
|
2024-07-03 20:54:33 -04:00
|
|
|
"tests/testdata/fmt/badly_formatted.ipynb",
|
|
|
|
"tests/testdata/fmt/badly_formatted.json",
|
|
|
|
"tests/testdata/fmt/badly_formatted.md",
|
chore: move cli/tests/ -> tests/ (#22369)
This looks like a massive PR, but it's only a move from cli/tests ->
tests, and updates of relative paths for files.
This is the first step towards aggregate all of the integration test
files under tests/, which will lead to a set of integration tests that
can run without the CLI binary being built.
While we could leave these tests under `cli`, it would require us to
keep a more complex directory structure for the various test runners. In
addition, we have a lot of complexity to ignore various test files in
the `cli` project itself (cargo publish exclusion rules, autotests =
false, etc).
And finally, the `tests/` folder will eventually house the `test_ffi`,
`test_napi` and other testing code, reducing the size of the root repo
directory.
For easier review, the extremely large and noisy "move" is in the first
commit (with no changes -- just a move), while the remainder of the
changes to actual files is in the second commit.
2024-02-10 15:22:13 -05:00
|
|
|
"tests/testdata/import_attributes/json_with_shebang.json",
|
2024-07-03 20:54:33 -04:00
|
|
|
"tests/testdata/lint/glob/",
|
|
|
|
"tests/testdata/malformed_config/",
|
|
|
|
"tests/testdata/run/byte_order_mark.ts",
|
chore: move cli/tests/ -> tests/ (#22369)
This looks like a massive PR, but it's only a move from cli/tests ->
tests, and updates of relative paths for files.
This is the first step towards aggregate all of the integration test
files under tests/, which will lead to a set of integration tests that
can run without the CLI binary being built.
While we could leave these tests under `cli`, it would require us to
keep a more complex directory structure for the various test runners. In
addition, we have a lot of complexity to ignore various test files in
the `cli` project itself (cargo publish exclusion rules, autotests =
false, etc).
And finally, the `tests/` folder will eventually house the `test_ffi`,
`test_napi` and other testing code, reducing the size of the root repo
directory.
For easier review, the extremely large and noisy "move" is in the first
commit (with no changes -- just a move), while the remainder of the
changes to actual files is in the second commit.
2024-02-10 15:22:13 -05:00
|
|
|
"tests/testdata/run/error_syntax_empty_trailing_line.mjs",
|
|
|
|
"tests/testdata/run/inline_js_source_map*",
|
|
|
|
"tests/testdata/test/markdown_windows.md",
|
2024-02-13 11:22:49 -05:00
|
|
|
"tests/util/std",
|
2024-03-04 19:41:16 -05:00
|
|
|
"tests/wpt/runner/expectation.json",
|
|
|
|
"tests/wpt/runner/manifest.json",
|
2024-07-03 20:54:33 -04:00
|
|
|
"tests/wpt/suite",
|
2024-11-05 01:39:05 -05:00
|
|
|
"third_party",
|
|
|
|
"tests/specs/run/shebang_with_json_imports_tsc",
|
|
|
|
"tests/specs/run/shebang_with_json_imports_swc",
|
|
|
|
"tests/specs/run/ext_flag_takes_precedence_over_extension",
|
|
|
|
"tests/specs/run/error_syntax_empty_trailing_line/error_syntax_empty_trailing_line.mjs"
|
2020-07-14 15:24:17 -04:00
|
|
|
],
|
|
|
|
"plugins": [
|
2024-11-04 15:40:05 -05:00
|
|
|
"https://plugins.dprint.dev/typescript-0.93.2.wasm",
|
2024-10-21 14:17:08 -04:00
|
|
|
"https://plugins.dprint.dev/json-0.19.4.wasm",
|
2024-08-26 14:36:24 -04:00
|
|
|
"https://plugins.dprint.dev/markdown-0.17.8.wasm",
|
2024-09-30 09:33:32 -04:00
|
|
|
"https://plugins.dprint.dev/toml-0.6.3.wasm",
|
2024-07-19 11:58:21 -04:00
|
|
|
"https://plugins.dprint.dev/exec-0.5.0.json@8d9972eee71fa1590e04873540421f3eda7674d0f1aae3d7c788615e7b7413d0",
|
2024-08-26 14:36:24 -04:00
|
|
|
"https://plugins.dprint.dev/g-plane/pretty_yaml-v0.5.0.wasm"
|
2020-07-14 15:24:17 -04:00
|
|
|
]
|
|
|
|
}
|