Commit graph

24 commits

Author SHA1 Message Date
Boshen
899a52bf28
fix: fix some nightly warnings 2024-05-19 00:54:52 +08:00
Boshen
f13fe8a18b
feat!(linter): enforce rule severity from the cli and configuration file (#3337)
closes #2059

Breaking change:

* `--deny` / `-D` from the CLI and `error` from configuration file will
report diagnostics as severity "error".
* `--warn` / `-W` from the CLI and `warn` from configuration file will
report diagnostics as severity "warning".
2024-05-18 17:45:19 +08:00
Boshen
893af230c0
refactor: clean up more diagnostics usages 2024-05-12 21:46:03 +08:00
Boshen
dbde5b3a04
refactor(diagnostics): remove export of miette 2024-05-12 11:46:48 +08:00
Boshen
2064ae9e0a refactor(parser,diagnostic): one diagnostic struct to eliminate monomorphization of generic types (#3214)
part of #3213

We should only have one diagnostic struct instead 353 copies of them, so we don't end up choking LLVM with 50k lines of the same code due to monomorphization.

If the proposed approach is good, then I'll start writing a codemod to turn all the existing structs to plain functions.

---

Background:

Using `--timings`, we see `oxc_linter` is slow on codegen (the purple part).

![image](https://github.com/zkat/miette/assets/1430279/c1df4f7d-90ef-4c0f-9956-2ec3194db7ca)

The crate currently contains 353 miette errors. [cargo-llvm-lines](https://github.com/dtolnay/cargo-llvm-lines) displays

```
cargo llvm-lines -p oxc_linter --lib --release

  Lines                 Copies               Function name
  -----                 ------               -------------
  830350                33438                (TOTAL)
   29252 (3.5%,  3.5%)    808 (2.4%,  2.4%)  <alloc::boxed::Box<T,A> as core::ops::drop::Drop>::drop
   23298 (2.8%,  6.3%)    353 (1.1%,  3.5%)  miette::eyreish::error::object_downcast
   19062 (2.3%,  8.6%)    706 (2.1%,  5.6%)  core::error::Error::type_id
   12610 (1.5%, 10.1%)     65 (0.2%,  5.8%)  alloc::raw_vec::RawVec<T,A>::grow_amortized
   12002 (1.4%, 11.6%)    706 (2.1%,  7.9%)  miette::eyreish::ptr::Own<T>::boxed
    9215 (1.1%, 12.7%)    115 (0.3%,  8.2%)  core::iter::traits::iterator::Iterator::try_fold
    9150 (1.1%, 13.8%)      1 (0.0%,  8.2%)  oxc_linter::rules::RuleEnum::read_json
    8825 (1.1%, 14.9%)    353 (1.1%,  9.3%)  <miette::eyreish::error::ErrorImpl<E> as core::error::Error>::source
    8822 (1.1%, 15.9%)    353 (1.1%, 10.3%)  miette::eyreish::error::<impl miette::eyreish::Report>::construct
    8119 (1.0%, 16.9%)    353 (1.1%, 11.4%)  miette::eyreish::error::object_ref
    8119 (1.0%, 17.9%)    353 (1.1%, 12.5%)  miette::eyreish::error::object_ref_stderr
    7413 (0.9%, 18.8%)    353 (1.1%, 13.5%)  <miette::eyreish::error::ErrorImpl<E> as core::fmt::Display>::fmt
    7413 (0.9%, 19.7%)    353 (1.1%, 14.6%)  miette::eyreish::ptr::Own<T>::new
    6669 (0.8%, 20.5%)     39 (0.1%, 14.7%)  alloc::raw_vec::RawVec<T,A>::try_allocate_in
    6173 (0.7%, 21.2%)    353 (1.1%, 15.7%)  miette::eyreish::error::<impl miette::eyreish::Report>::from_std
    6027 (0.7%, 21.9%)     70 (0.2%, 16.0%)  <alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter
    6001 (0.7%, 22.7%)    353 (1.1%, 17.0%)  miette::eyreish::error::object_drop
    6001 (0.7%, 23.4%)    353 (1.1%, 18.1%)  miette::eyreish::error::object_drop_front
    5648 (0.7%, 24.1%)    353 (1.1%, 19.1%)  <miette::eyreish::error::ErrorImpl<E> as core::fmt::Debug>::fmt
```

It's totalling more than 50k llvm lines, and is putting pressure on rustc codegen (the purple part on `oxc_linter` in the image above.

---

It's pretty obvious by looking at https://github.com/zkat/miette/blob/main/src/eyreish/error.rs, the generics can expand out to lots of code.
2024-05-11 04:56:22 +00:00
Clément Lafont
2263377e3f
fix(oxc_language_server): use config path at init (#2569)
`config_path` was not use in initialization.
Must merge #2568 before to fix vscode.

Co-authored-by: Clément Lafont <johnrazeur@MacBook-Pro-de-Clement.local>
2024-03-03 14:01:16 +08:00
IWANABETHATGUY
ad8ca2a066
fix(oxc_language_server): serialize with camelCase (#2568)
Closed https://github.com/oxc-project/oxc/issues/2563
2024-03-02 22:56:06 +08:00
Dunqing
65571d73a7
fix(vscode): incorrect diagnostic position (#2461)
fix: #2456
2024-02-21 12:11:16 +08:00
Julien Tanay
d5b378a891
feat(vscode): allow config path configuration (#2172)
Fixes #1944
2024-01-26 10:49:25 +08:00
Boshen
ae4e714713
refactor(linter): remove the LintSettings parameter from LintContext::new. (#2051) 2024-01-16 17:17:46 +08:00
IWANABETHATGUY
84dc690c40
feat: oxc ls support read configuration (#1940)
1. Closed #1815
2. Very basically support configuration, could improve in the future
since our config is still under experimental.


![image](https://github.com/oxc-project/oxc/assets/17974631/6834c32f-586e-4fca-adc1-dfbeaadfaa3c)**config**
```json
{
  "rules": {
    "no-console": [
      "error",
      {
        "allow": [
          "info"
        ]
      }
    ]
  }
}
```
2024-01-08 15:10:49 +08:00
IWANABETHATGUY
fe48bfae0c
feat(lsp): support vue, astro and svelte (#1923)
![image](https://github.com/oxc-project/oxc/assets/17974631/7d49b2a7-b587-45a9-8736-875a2e60f06e)
Closed https://github.com/oxc-project/oxc/issues/1915
2024-01-08 11:38:25 +08:00
Boshen
98a2d60cde
refactor(language_server): remove unused code (#1917) 2024-01-07 00:07:04 +08:00
Boshen
450791ddc2
refactor(linter): rename *_partial_loader files (#1916) 2024-01-06 23:56:31 +08:00
IWANABETHATGUY
f30f6efcdd
chore: add some useful informantion log (#1912)
1. Use `log::info` to print some informantion which we would want to
display in release mode,
2. Add config to switch back `debug` log level in development mode.
2024-01-06 22:30:01 +08:00
Boshen
0c5645097d
chore(vscode): add some debug logs 2024-01-06 20:32:24 +08:00
Boshen
4c5c61e5f9
feat(linter): add support for multiple script tags from vue and stro (#1897)
part of #1896
2024-01-05 16:30:32 +08:00
Boshen
a63490c1c0
feat(linter): support astro front matter --- block (#1893)
closes #1702
2024-01-05 10:05:43 +08:00
Wenzhe Wang
45156443ed
refactor(linter): get js code slice from vue source code (#1876) 2024-01-04 12:06:04 +08:00
IWANABETHATGUY
56e620b1bb
chore(lsp): normalize the lsp naming (#1873)
1. Fallback logic about `document/didChangeConfiguration`
2. normalize vscode naming
3. change `configuration` section name from `oxc-client` to
`oxc_langauge_server`.
2024-01-03 11:48:18 +08:00
IWANABETHATGUY
2505fdb1ef
chore(lsp): enable oxc lsp by default (#1872) 2024-01-02 16:12:08 +08:00
IWANABETHATGUY
96b8f8f80c
fix(lsp): panic when open file not under workspace root (#1871)
Closed #1868
2024-01-02 12:35:21 +08:00
Wenzhe Wang
665f818217
feat(vscode): support lint vue file (#1842)
![CleanShot 2023-12-27 at 22 56 34@2x](https://github.com/oxc-project/oxc/assets/33973865/189cc7e5-91e9-4f25-bd9c-14d663387870)
2023-12-31 22:31:26 +08:00
IWANABETHATGUY
de2f834774
chore: rename crate oxc_vscode to oxc_language_server (#1825)
1. Closed https://github.com/oxc-project/oxc/issues/1821
2023-12-26 23:01:12 +08:00