Marvin Hagemeister
9124e0a0df
chore: support more nodes
2025-01-03 14:22:24 +01:00
Marvin Hagemeister
adc25f85a1
feat: support excluding rules from lint plugins
2025-01-03 11:03:28 +01:00
Bartek Iwańczuk
2edd30904a
update for deno_lint changes
2025-01-02 19:07:55 +01:00
Marvin Hagemeister
321e37bf2e
feat: support js lint plugins fixes
2025-01-02 16:28:13 +01:00
Bartek Iwańczuk
554bce98b5
Merge branch 'main' into lint_plugins
2025-01-02 10:35:12 +01:00
Kenta Moriuchi
8fb073d7b4
chore: Happy New Year 2025 ( #27509 )
2024-12-31 19:12:39 +00:00
David Sherret
ac7b33a340
chore: cargo fmt - turn on group_imports=StdExternalCrate ( #26646 )
2024-12-31 12:13:39 -05:00
David Sherret
4638caa740
refactor: do not use deno_fs::FileSystem
everywhere ( #27508 )
...
This changes the cli to mostly use `std::fs` via `sys_traits` instead of
the implemention of `deno_fs::FileSystem`.
2024-12-31 11:29:07 -05:00
Marvin Hagemeister
a844d96ee9
chore(lint): remove manual AST field counter ( #27449 )
...
Addresses the review feedback in
https://github.com/denoland/deno/pull/27416 .
- Hoist the buffer max size variable to make it less confusing
- Remove manual AST field counter in favour of an explicit "commit
schema" step which writes the actual field count.
2024-12-31 08:59:41 +01:00
David Sherret
c391ad315e
refactor: use sys_traits ( #27480 )
2024-12-30 12:38:20 -05:00
Marvin Hagemeister
fdd0edf23c
fix(unstable): don't error on non-existing attrs or type attr ( #27456 )
...
When running selectors for JS linting plugins we would error when
encountering an unknown attribute name:
```js
// selector
Foo[non-existant]
// error
Error: Missing string id: <number>
```
This was caused by using `0` as the invalid marker, but also overloading
`0` with an actual node type. So the fix is to reserve `0` as the
invalid marker and move the property type to the next index.
2024-12-27 22:46:29 +01:00
Bartek Iwańczuk
a6d1f1116f
add support for hint
2024-12-26 13:38:52 +01:00
Bartek Iwańczuk
c3ac6031f6
renames
2024-12-26 13:33:47 +01:00
Bartek Iwańczuk
f283a0fd73
put fns into Rc
2024-12-26 12:26:44 +01:00
Bartek Iwańczuk
df54f58874
use static strings
2024-12-26 11:54:49 +01:00
Bartek Iwańczuk
47178efd62
lint
2024-12-26 11:41:21 +01:00
Bartek Iwańczuk
46e191c563
remove debug logs
2024-12-26 11:36:54 +01:00
Bartek Iwańczuk
1a0a61d059
cleanup
2024-12-26 11:26:04 +01:00
Bartek Iwańczuk
05a89f5ffb
add PluginLogger, finally works in the LSP
2024-12-25 15:18:50 +01:00
Bartek Iwańczuk
f55dd0d0bb
wire up in the lsp
2024-12-24 16:22:09 +01:00
Bartek Iwańczuk
f6efc9f357
plugins are run inside CliLinter now
2024-12-24 10:52:36 +01:00
Bartek Iwańczuk
e6d0a6fde1
abstract away running plugins
2024-12-24 10:43:10 +01:00
Bartek Iwańczuk
0e8457d7c3
simplify plugin loading
2024-12-24 10:27:30 +01:00
Bartek Iwańczuk
46db6dd14d
Merge branch 'main' into lint_plugins
2024-12-23 08:50:34 +01:00
Marvin Hagemeister
1a809b8115
feat(unstable): support selectors in JS lint plugins ( #27452 )
...
This PR adds support for using selectors in the JS linting plugin API.
Supported at the moment are:
- `Foo Bar` (descendant)
- `Foo > Bar` (child combinator)
- `Foo + Foo` (next sibling)
- `Foo ~ Foo` (subsequent sibling)
- `[attr]`, `[attr=value]` (attribute selectors, supported operators:
`=`, `!=`, `<`, `>`, `<=`, `>=`)
- `:first-child`
- `:last-child`
- `:nth-child(2)`, `:nth-child(2n + 1)`
2024-12-23 08:45:47 +01:00
Bartek Iwańczuk
71c82e47ef
run jsr plugins
2024-12-22 22:06:31 +01:00
Bartek Iwańczuk
3bea4cfa18
load plugins relative to the config file
2024-12-22 21:46:49 +01:00
Bartek Iwańczuk
a446c89620
remove --plugins flag support for now
2024-12-22 21:35:29 +01:00
Bartek Iwańczuk
6d03bafd1e
move ops
2024-12-22 21:20:52 +01:00
Bartek Iwańczuk
8479e9541d
update a todo
2024-12-22 21:04:55 +01:00
Bartek Iwańczuk
67e2d06c34
Try to load files differently
2024-12-21 16:08:47 +01:00
Bartek Iwańczuk
fcfd4c09b5
wip after merge
2024-12-21 02:38:23 +01:00
Bartek Iwańczuk
d3e41a770a
Merge branch 'main' into lint_plugins
2024-12-21 02:28:39 +01:00
Marvin Hagemeister
26425a137b
feat(unstable): add JS linting plugin infrastructure ( #27416 )
...
This PR extracts the core part of
https://github.com/denoland/deno/pull/27203 to make it easier to review
and land in parts.
It contains:
- The JS plugin code the deserializes and walks the buffer
- The Rust portion to serialize SWC to the buffer format (a bunch of
nodes are still todos, but imo these can land anytime later)
- Basic lint plugin types, without the AST node types to make this PR
easier to review
- Added more code comments to explain the format etc.
More fixes and changes will be done in follow-up PRs.
---------
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-12-21 00:58:03 +01:00
Marvin Hagemeister
13cc74dd59
clippy stuff
2024-12-18 15:29:27 +01:00
Marvin Hagemeister
5ea018aa58
improve conversion safety
2024-12-18 14:36:24 +01:00
Marvin Hagemeister
e296022d44
fix more types
2024-12-18 12:16:28 +01:00
Marvin Hagemeister
8d9f9ce5e2
fix: node name
2024-12-18 11:30:23 +01:00
Bartek Iwańczuk
53a680bded
Merge branch 'main' into lint_plugins
2024-12-18 05:35:56 +01:00
Marvin Hagemeister
6e70ba2c77
get selector integration working
2024-12-17 12:04:12 +01:00
Bartek Iwańczuk
f9add94e17
refactor(lint): renames and code flattening ( #27386 )
...
Working on loading plugin configuration for
https://github.com/denoland/deno/pull/27203
I encountered a lot of complexity, so did some drive-by cleanups to make
it easier to grok the code and have fewer duplicate names.
2024-12-17 01:35:26 +00:00
Marvin Hagemeister
86fc6e64cb
WIP
2024-12-16 16:17:02 +01:00
Marvin Hagemeister
f167277561
remove dead code
2024-12-15 22:57:55 +01:00
Marvin Hagemeister
3f9ee0d6df
feat(lint): support visitor selector syntax
2024-12-15 22:56:50 +01:00
Marvin Hagemeister
ea11f95029
make js plugins independent of ast strucure
2024-12-15 19:18:30 +01:00
Marvin Hagemeister
65fcda4cd5
improve format
2024-12-13 11:38:35 +01:00
Marvin Hagemeister
f50bf9b064
refactor node handling
2024-12-13 00:33:44 +01:00
Marvin Hagemeister
c83f722039
Refactor binary ast
2024-12-12 22:16:49 +01:00
Marvin Hagemeister
76c1275200
fix traversal
2024-12-12 20:53:08 +01:00
Marvin Hagemeister
8f104313ff
more nodes
2024-12-12 15:20:36 +01:00