Commit graph

5445 commits

Author SHA1 Message Date
Boshen
0a2cd5b1f5
chore(ast): document the Span type
closes #109
2023-03-05 11:11:41 +08:00
Boshen
5106d2d63d
fix(cli): fix clippy warning 2023-03-05 11:04:43 +08:00
Xuan
ee569ae684
feat(oxc_linter): implement rule fixing logic (#114)
* refactor(oxc_linter): add FixResult

* refactor(oxc_linter): pass closure instead of an struct

* test(oxc_linter): uncomment tests
2023-03-04 18:57:50 -08:00
Boshen
e71de0bff6 perf(cli): lint files while walking directories 2023-03-04 04:38:58 -08:00
Boshen
88735e2a94 perf(cli): turn on simd-accel for ignore because globs are being used 2023-03-04 04:38:58 -08:00
Boshen
e73f0b3ebe chore(cli): turn off unused default_features of git2 2023-03-04 04:38:58 -08:00
Boshen
aa773f0aa8 perf(cli): do not follow symlinks in ignore because it is a slow syscall 2023-03-04 04:38:58 -08:00
Boshen
331a258182
feat(linter): implement uninvoked-array-callback (#112)
* feat(linter): implement uninvoked-array-callback

closes #98

Co-authored-by: Shannon Rothe <shannon.michael.rothe@gmail.com>
2023-03-04 00:04:04 -08:00
Shannon Rothe
f8b8f045a9
feat(cli): filter out uncommitted files (#110) 2023-03-03 22:42:22 -08:00
Yoni Feng
dcfdce5bb7
refactor(lexer): avoid copying of self in SIMD functions (#104) 2023-03-03 21:46:55 -08:00
Xuan
91c01633d6
test(oxc_linter): add testing for code fixer (#101)
---------

Co-authored-by: Shannon Rothe <shannon.michael.rothe@gmail.com>
2023-03-03 21:37:25 -08:00
Amit Dahan
50f133f9a6
feat(cli): Print lint duration (#105) 2023-03-03 18:34:30 -08:00
Boshen
47c1e7ef51
feat(cli): print diagnostics with file name (#103)
This also speeds up printing when a file has lots diagnostics.
This is done by allocating only once compared to multiple times from before.
2023-03-03 08:43:13 -08:00
magic-akari
b4ee8c0dc3
feat(linter): no-empty-pattern (fix) 2023-03-03 17:53:51 +08:00
magic-akari
85de06eae7
feat(linter): no-empty-pattern (#74)
* feat(linter): no-empty-pattern

* chore(linter/no-empty-pattern): update docs and examples

* chore: fix typo
2023-03-03 17:53:00 +08:00
Shannon Rothe
92b232372f
feat(linter): implement autofix (#94)
* feat(linter): implement autofix

* remove `fs::write`
2023-03-03 17:12:47 +08:00
Shannon Rothe
77d6edbe72 feat(cli): use BufWriter for diagnostic printing 2023-03-02 21:59:42 -08:00
Ye Yangchen
b06ab627bf fix(oxc_parser) correct span for decorators 2023-03-02 21:34:24 -08:00
Boshen
6a191ddce2
chore(cli): fix clippy warnings 2023-03-03 10:41:34 +08:00
Pascal Schilp
679cd0bf32
feat(cli): parallelize diagnostics (#93)
feat(cli): parallelize printing of diagnostics
2023-03-02 07:28:45 -08:00
Shannon Rothe
27b82bda36
feat(cli): implement --max-warnings CLI option (#77)
* implement `--max-warnings` CLI option

* implement `--max-warnings` CLI option

* review comments

* remove `.vscode/`

* revert loop + add tests
2023-03-02 16:16:03 +08:00
Xuan
51d0ced5a0 feat(oxc_cli): support no-ignore 2023-03-01 23:54:11 -08:00
Shannon Rothe
6647752e03
refactor(ast): change Option<Vec> to Vec for decorators (#84)
* remove `Option<Vec>` from `FormalParameter`

* `unwrap` -> `unwrap_or_else`

* prefer `AstBuilder` helper

* implement `consume_decorators`
2023-03-02 15:52:46 +08:00
Ye Yangchen
d8c6caf57f feat(oxc_parser): Parse modifiers before declaration 2023-03-01 22:50:23 -08:00
Shannon Rothe
143edeb62f prepend TS error code 2023-03-01 20:47:52 -08:00
Shannon Rothe
df78044c87 lint 2023-03-01 20:47:52 -08:00
Shannon Rothe
bc6a6d50ea remove TODO 2023-03-01 20:47:52 -08:00
Shannon Rothe
4d894e7db1 parser: prevent JSX expressions using comma operator 2023-03-01 20:47:52 -08:00
Yoni Feigelson
9b5c170c19 refactor(linter) Generate rule name with declare_oxc_lint 2023-03-01 06:50:36 -08:00
Xuan
298e956d0d feat(oxc_cli): support ignore-path 2023-03-01 04:39:18 -08:00
Shannon Rothe
0992a4930c printer: support JSXElement/JSXFragment 2023-03-01 02:34:23 -08:00
Yoni Feigelson
f859ee0e38 feat(linter): declare_oxc_lint proc_macro 2023-02-28 18:05:45 -08:00
Xuan
c2fb3613bd feat(oxc_cli): support ignore-pattern 2023-02-28 08:38:33 -08:00
Amit Dahan
3b53e0ba4e feat(linter): no-array-constructor 2023-02-27 08:12:28 -08:00
Boshen
3b887dbeaf feat(parser): print json in parser example 2023-02-28 00:05:54 +08:00
Boshen
665e8723c0 refactor(ast): remove acorn feature
This is a left over from where I tried to be compatible with estree,
but the implementation deviated from estree.
2023-02-27 23:44:13 +08:00
thepassle
33e5f8dd8d feat(cli): support --quiet flag for lint command 2023-02-27 07:43:00 -08:00
Boshen
9d4367c2cd refactor(linter): s/from_json/from_configuration 2023-02-27 12:31:57 +08:00
Boshen
8b9ebcd6e5 feat(linter): read rule configuration from json 2023-02-27 12:31:57 +08:00
Boshen
b4a5f13fb6 feat(linter): make no-empty configure from json 2023-02-27 12:31:57 +08:00
Boshen
5c64b4874c feat(linter): configure rules from json 2023-02-27 12:31:57 +08:00
Boshen
a342a01c4a feat(linter): add rule name and make the Tester test via rule names 2023-02-27 12:31:57 +08:00
Boshen
73ea3d6361 feat(ast,lexer,linter): save and check comments 2023-02-27 12:31:57 +08:00
Boshen
f3ca02f596 feat(linter): access parent of ast nodes 2023-02-27 12:31:57 +08:00
Boshen
f72c96270e feat(linter): no-empty 2023-02-27 12:31:57 +08:00
Ye Yangchen
0bf8f817f5 feat(oxc_parser): Port isStartOfDeclaration form tsc 2023-02-27 12:27:44 +08:00
Xuan
6b43cbbe71 fix(oxc_parser): support export type with star symbol 2023-02-27 12:26:23 +08:00
Xuan
b6d09643e5 fix(oxc_parser): check access correctly 2023-02-27 03:10:02 +08:00
Amit Dahan
e2207b9b15 feat(cli): support linting glob patterns 2023-02-26 22:25:16 +08:00
Boshen
78de22a3af refactor(cli): clean up and report total number of diagnostics 2023-02-26 02:02:05 +08:00
Boshen
915518b614 refactor(oxc_diagnostics): s/PError/Error 2023-02-26 02:02:05 +08:00
thepassle
eaeafa0a82 feat(cli): exit codes
chore: remove foo.js

chore: review comments

chore: shut clippy up

chore: ran cargo fmt

chore: unnecessary return
2023-02-26 01:32:17 +08:00
Boshen
4f36f7d2ef
ci: attempt to fix miri with "-Zmiri-disable-isolation" 2023-02-26 00:49:19 +08:00
Boshen
4c2e57224b
ci: ignore miri for insta 2023-02-26 00:00:04 +08:00
Boshen
28916f96af feat(linter): setup tests 2023-02-25 23:45:03 +08:00
Boshen
f17bd87f65
fix: try disable miri with custom allocators 2023-02-25 21:04:52 +08:00
Boshen
bf76f6d8b6
chore: ignore miri on global allocators
error: unsupported operation: can't call foreign function `_rjem_malloc` on OS `linux`
   --> /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/jemallocator-0.5.0/src/lib.rs:104:13
    |
104 |             ffi::malloc(layout.size())
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^ can't call foreign function `_rjem_malloc` on OS `linux`
    |
    = help: this is likely not a bug in the program; it indicates that the program performed an operation that the interpreter does not support
    = note: BACKTRACE:
    = note: inside `<jemallocator::Jemalloc as std::alloc::GlobalAlloc>::alloc` at /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/jemallocator-0.5.0/src/lib.rs:104:13: 104:39
note: inside `_::__rg_alloc`
   --> tasks/benchmark/src/main.rs:13:16
    |
12  | #[global_allocator]
    | ------------------- in this procedural macro expansion
13  | static GLOBAL: jemallocator::Jemalloc = jemallocator::Jemalloc;
    |                ^^^^^^^^^^^^^^^^^^^^^^
    = note: this error originates in the attribute macro `global_allocator` (in Nightly builds, run with -Z macro-backtrace for more info)
2023-02-25 20:45:38 +08:00
Boshen
636a974686
feat(benchmark): setup hyperfine benchmark
closes #25
2023-02-25 18:58:31 +08:00
Boshen
c86cca37a8 feat(linter): linter prototype 2023-02-25 16:56:10 +08:00
Boshen
abb2f8c949 feat(rust): use mimalloc on windows 2023-02-25 11:58:57 +08:00
Boshen
5f7a756229 feat(semantic): add semantic builder with untyped ast tree creation 2023-02-25 10:32:48 +08:00
Boshen
0de5020d07
fix(ast): s/span/node in visit 2023-02-25 10:21:23 +08:00
Boshen
9f3a8c12a9 feat(cli): initialize cli and directory traversal 2023-02-24 22:46:56 +08:00
Xuan
457e85b4a0 fix(oxc_parser): check ambiguous for await 2023-02-24 12:46:59 +08:00
Boshen
4684118c9e
fix: change example names so their binary names don't collide with each other 2023-02-23 21:46:39 +08:00
Xuan
65e81ce12c fix(oxc_parser): eat decorator for export 2023-02-23 12:28:34 +08:00
Boshen
4f4a9802b7 refactor(diagnostics,parser): move diagnostics to parser 2023-02-22 19:23:01 +08:00
Boshen
7a44a657e1 feat: add miette fancy report to examples 2023-02-22 19:23:01 +08:00
Boshen
5390d3e6b4 refactor(diagnostic): change Err type to miette::Error
This is the prerequisite for breaking up the large Diagnostic enum.
2023-02-22 11:08:21 +08:00
Boshen
4c6407b152 refactor(ast): s/node/span
This corrects the jargon for span. The term `node` came from `estree`,
which is a bit misleading here in Rust.

closes #9
2023-02-21 19:17:49 +08:00
Boshen
f3a7d5a026 feat(ast): add RegExpFlags bitflag for storing regex flags
This reduces `TokenValue` from 56 to 40 bytes, `Token` from 72 to 56 bytes.
2023-02-21 18:22:15 +08:00
Boshen
a733856536 refactor(ast,parser): use u32 for node spans
The next PR will fix the jargon where Node = Span.

relates to #9
2023-02-21 16:02:23 +08:00
Boshen
39a05030d7 refactor(ast,parser): box FormalParameters 2023-02-21 13:11:58 +08:00
Boshen
d57ab2f088 refactor(ast,parser): remove Node::ctx
This is adding too many bytes to the AST
2023-02-21 13:11:58 +08:00
Boshen
c640b4fb08 perf(ast): box PropertyKey enum 2023-02-21 13:11:58 +08:00
Boshen
cf278a2760 perf(parser): a few micro optimizations 2023-02-21 13:11:58 +08:00
Boshen
0bbbc7768f perf(oxc_parser): use u8 for offset 2023-02-21 13:11:58 +08:00
Boshen
73663f274c perf(parser): inline all methods on Context 2023-02-21 13:11:58 +08:00
Boshen
83c3f34af2 feat(lexer): use portable-SIMD to speed up multiline comment scanning 2023-02-20 21:58:08 +08:00
Boshen
4fc112f7dc feat(ast): add visitor 2023-02-20 20:45:14 +08:00
Boshen
ab68cea0b7 perf(lexer): use portable-SIMD to speed up whitespace scanning
closes #13
2023-02-20 19:03:15 +08:00
Boshen
457aa7d1be feat(printer): add printer example 2023-02-20 18:23:36 +08:00
Boshen
e4b07b7db9 feat(printer): Initialize printer
closes #21
2023-02-20 18:23:36 +08:00
Xuan
362c02f8e1 docs(oxc_parser): add header symbol for parser.unexpected 2023-02-18 09:06:56 +08:00
Boshen
a347e3993e
Revert "perf(lexer): use portable-SIMD to speed up multiline comment scanning"
This reverts commit a51c7f9ba2.
2023-02-17 14:50:42 +08:00
Boshen
a51c7f9ba2 perf(lexer): use portable-SIMD to speed up multiline comment scanning 2023-02-15 19:51:13 -08:00
Boshen
85955d7147
refactor(parser): clean up some lexer code 2023-02-12 21:34:19 +08:00
Boshen
d8fd23524a
feat(oxc_parser): allow filename as option in examples/simple.rs 2023-02-12 15:57:40 +08:00
Boshen
3daf5bcea9
chore(example): add an example for testing purposes 2023-02-12 11:11:35 +08:00
Boshen
a339ba3f92 feat(coverage): print parsing conformance for test262 (currently 100%) 2023-02-11 08:02:42 -08:00
Boshen
1fdc635638 feat(parser): add parser 2023-02-11 05:26:49 -08:00
Boshen
62a4f2b551 feat(ast): add ast 2023-02-11 04:27:34 -08:00
Boshen
4ae70b9592 feat(parser): add lexer 2023-02-11 02:29:54 -08:00
Boshen
664c37631e feat(allocator): add allocator 2023-02-11 01:05:07 -08:00
Boshen
d026e33343 chore: add rust-toolchain.toml and Cargo.toml 2023-02-11 13:03:40 +08:00