Dhruv Manilawala
ee258caed7
Bump version to 0.6.3 ( #13152 )
2024-08-29 20:29:33 +05:30
renovate[bot]
14c014a48b
Update Rust crate syn to v2.0.76 ( #13097 )
2024-08-25 22:10:57 -04:00
renovate[bot]
ecd0597d6b
Update Rust crate serde_json to v1.0.127 ( #13096 )
2024-08-25 22:10:50 -04:00
renovate[bot]
202271fba6
Update Rust crate serde to v1.0.209 ( #13095 )
2024-08-25 22:10:45 -04:00
renovate[bot]
4bdb0b4f86
Update Rust crate quote to v1.0.37 ( #13094 )
2024-08-25 22:10:38 -04:00
renovate[bot]
2286f916c1
Update Rust crate libc to v0.2.158 ( #13093 )
2024-08-25 22:10:32 -04:00
Micha Reiser
ecab04e338
Basic concurrent checking ( #13049 )
2024-08-24 09:53:27 +01:00
Teodoro Freund
b9c8113a8a
Added bytes type and some inference ( #13061 )
...
## Summary
This PR adds the `bytes` type to red-knot:
- Added the `bytes` type
- Added support for bytes literals
- Support for the `+` operator
Improves on #12701
Big TODO on supporting and normalizing r-prefixed bytestrings
(`rb"hello\n"`)
## Test Plan
Added a test for a bytes literals, concatenation, and corner values
2024-08-22 13:27:15 -07:00
Dhruv Manilawala
02c4373a49
Bump version to 0.6.2 ( #13056 )
2024-08-22 18:59:27 +05:30
Micha Reiser
dce87c21fd
Eagerly validate typeshed versions ( #12786 )
2024-08-21 15:49:53 +00:00
Micha Reiser
e5f37a8254
Remove linter dependency from red_knot_server ( #13028 )
2024-08-21 10:02:42 +00:00
Micha Reiser
5c5dfc11f0
Upgrade to Salsa with tables ( #13016 )
2024-08-21 06:58:53 +00:00
renovate[bot]
4d0d3b00cb
Update rust-wasm-bindgen monorepo ( #12975 )
2024-08-18 20:44:00 -04:00
renovate[bot]
2be1c4ff04
Update Rust crate syn to v2.0.75 ( #12974 )
2024-08-18 20:43:54 -04:00
renovate[bot]
edd86d5603
Update Rust crate serde_json to v1.0.125 ( #12973 )
2024-08-18 20:43:48 -04:00
renovate[bot]
78ad7959ca
Update Rust crate serde to v1.0.208 ( #12972 )
2024-08-18 20:43:42 -04:00
renovate[bot]
d72ecd6ded
Update Rust crate ordermap to v0.5.2 ( #12971 )
2024-08-18 20:43:37 -04:00
renovate[bot]
8617a508bd
Update Rust crate libc to v0.2.157 ( #12970 )
2024-08-18 20:43:31 -04:00
renovate[bot]
c88bd4e884
Update Rust crate ctrlc to v3.4.5 ( #12969 )
2024-08-18 20:43:24 -04:00
renovate[bot]
fbcda90316
Update Rust crate camino to v1.1.9 ( #12967 )
2024-08-18 20:43:18 -04:00
renovate[bot]
169d4390cb
Update Rust crate clap to v4.5.16 ( #12968 )
2024-08-18 20:43:05 -04:00
Carl Meyer
6359e55383
[red-knot] type narrowing ( #12706 )
...
Extend the `UseDefMap` to also track which constraints (provided by e.g.
`if` tests) apply to each visible definition.
Uses a custom `BitSet` and `BitSetArray` to track which constraints
apply to which definitions, while keeping data inline as much as
possible.
2024-08-16 16:34:13 -07:00
Alex Waygood
499c0bd875
Bump version to 0.6.1 ( #12937 )
...
Co-authored-by: Dhruv Manilawala <dhruvmanila@gmail.com >
Co-authored-by: Micha Reiser <micha@reiser.io >
2024-08-16 17:48:06 +01:00
Micha Reiser
b9da31610a
Bump version to 0.6 ( #12894 )
2024-08-15 13:17:22 +01:00
Dhruv Manilawala
99dc208b00
[red-knot] Add filename and source location for diagnostics ( #12842 )
...
## Summary
I'm not sure if this is useful but this is a hacky implementation to add
the filename and row / column numbers to the current Red Knot
diagnostics.
2024-08-12 15:56:30 +00:00
Micha Reiser
fabf19fdc9
Skip checking a file if it failed to read ( #12755 )
2024-08-12 07:26:37 +00:00
renovate[bot]
9caec36b59
Update Rust crate tempfile to v3.12.0 ( #12826 )
2024-08-11 22:27:44 -04:00
renovate[bot]
71b8bf211f
Update Rust crate ureq to v2.10.1 ( #12819 )
2024-08-12 00:21:01 +00:00
renovate[bot]
109b9cc4f9
Update Rust crate syn to v2.0.74 ( #12818 )
2024-08-12 00:20:55 +00:00
renovate[bot]
5d02627794
Update Rust crate serde_test to v1.0.177 ( #12817 )
2024-08-12 00:19:58 +00:00
renovate[bot]
65444bb00e
Update Rust crate filetime to v0.2.24 ( #12813 )
2024-08-11 20:19:32 -04:00
renovate[bot]
2df4d23113
Update Rust crate serde_json to v1.0.124 ( #12816 )
2024-08-11 20:18:45 -04:00
renovate[bot]
603b62607a
Update Rust crate serde to v1.0.206 ( #12815 )
2024-08-11 20:18:39 -04:00
renovate[bot]
2b71fc4510
Update Rust crate is-macro to v0.3.6 ( #12814 )
2024-08-11 20:18:33 -04:00
renovate[bot]
1b78d872ec
Update Rust crate clap to v4.5.15 ( #12812 )
2024-08-11 20:18:25 -04:00
Micha Reiser
2abfab0f9b
Move Program and related structs to red_knot_python_semantic ( #12777 )
2024-08-09 11:50:45 +02:00
Micha Reiser
ffaa35eafe
Add test helper to setup tracing ( #12741 )
2024-08-09 07:04:04 +00:00
Dhruv Manilawala
221ea662e0
Bump version to 0.5.7 ( #12756 )
2024-08-08 20:56:15 +05:30
Alex Waygood
f1de08c2a0
[red-knot] Merge the semantic and module-resolver crates ( #12751 )
2024-08-08 15:34:11 +01:00
Micha Reiser
dc6aafecc2
Setup tracing and document tracing usage ( #12730 )
2024-08-08 06:28:40 +00:00
Alex Waygood
7fa76a2b2b
[red-knot] Derive site-packages from a venv path ( #12716 )
2024-08-06 18:34:37 +00:00
Micha Reiser
846f57fd15
Update salsa ( #12711 )
2024-08-06 13:17:39 +00:00
Dhruv Manilawala
e91a0fe94a
[red-knot] Implement basic LSP server ( #12624 )
...
## Summary
This PR adds basic LSP implementation for the Red Knot project.
This is basically a fork of the existing `ruff_server` crate into a
`red_knot_server` crate. The following are the main differences:
1. The `Session` stores a map from workspace root to the corresponding
Red Knot database (`RootDatabase`).
2. The database is initialized with the newly implemented `LSPSystem`
(implementation of `System` trait)
3. The `LSPSystem` contains the server index corresponding to each
workspace and an underlying OS system implementation. For certain
methods, the system first checks if there's an open document in LSP
system and returns the information from that. Otherwise, it falls back
to the OS system to get that information. These methods are
`path_metadata`, `read_to_string` and `read_to_notebook`
4. Add `as_any_mut` method for `System`
**Why fork?**
Forking allows us to experiment with the functionalities that are
specific to Red Knot. The architecture is completely different and so
the requirements for an LSP implementation are different as well. For
example, Red Knot only supports a single workspace, so the LSP system
needs to map the multi-workspace support to each Red Knot instance. In
the end, the server code isn't too big, it will be easier to implement
Red Knot specific functionality without worrying about existing server
limitations and it shouldn't be difficult to port the existing server.
## Review
Most of the server files hasn't been changed. I'm going to list down the
files that have been changed along with highlight the specific part of
the file that's changed from the existing server code.
Changed files:
* Red Knot CLI implementation:
https://github.com/astral-sh/ruff/pull/12624/files#diff-579596339a29d3212a641232e674778c339b446de33b890c7fdad905b5eb50e1
* In
https://github.com/astral-sh/ruff/pull/12624/files#diff-b9a9041a8a2bace014bf3687c3ef0512f25e0541f112fad6131b14242f408db6 ,
server capabilities have been updated, dynamic capability registration
is removed
* In
https://github.com/astral-sh/ruff/pull/12624/files#diff-b9a9041a8a2bace014bf3687c3ef0512f25e0541f112fad6131b14242f408db6 ,
the API for `clear_diagnostics` now take in a `Url` instead of
`DocumentQuery` as the document version doesn't matter when clearing
diagnostics after a document is closed
*
[`did_close`](https://github.com/astral-sh/ruff/pull/12624/files#diff-9271370102a6f3be8defaca40c82485b0048731942520b491a3bdd2ee0e25493 ),
[`did_close_notebook`](https://github.com/astral-sh/ruff/pull/12624/files#diff-96fb53ffb12c1694356e17313e4bb37b3f0931e887878b5d7c896c19ff60283b ),
[`did_open`](https://github.com/astral-sh/ruff/pull/12624/files#diff-60e852cf1aa771e993131cabf98eb4c467963a8328f10eccdb43b3e8f0f1fb12 ),
[`did_open_notebook`](https://github.com/astral-sh/ruff/pull/12624/files#diff-ac356eb5e36c3b2c1c135eda9dfbcab5c12574d1cb77c71f7da8dbcfcfb2d2f1 )
are updated to open / close file from the corresponding Red Knot
workspace
* The [diagnostic
handler](https://github.com/astral-sh/ruff/pull/12624/files#diff-4475f318fd0290d0292834569a7df5699debdcc0a453b411b8c3d329f1b879d9 )
is updated to request diagnostics from Red Knot
* The [`Session::new`] method in
https://github.com/astral-sh/ruff/pull/12624/files#diff-55c96201296200c1cab37c8b0407b6c733381374b94be7ae50563bfe95264e4d
is updated to construct the Red Knot databases for each workspace. It
also contains the `index_mut` and `MutIndexGuard` implementation
* And, `LSPSystem` implementation is in
https://github.com/astral-sh/ruff/pull/12624/files#diff-4ed62bd359c43b0bf1a13f04349dcd954966934bb8d544de7813f974182b489e
## Test Plan
First, configure VS Code to use the `red_knot` binary
1. Build the `red_knot` binary by `cargo build`
2. Update the VS Code extension to specify the path to this binary
```json
{
"ruff.path": ["/path/to/ruff/target/debug/red_knot"]
}
```
3. Restart VS Code
Now, open a file containing red-knot specific diagnostics, close the
file and validate that diagnostics disappear.
2024-08-06 11:27:30 +00:00
Micha Reiser
d2c627efb3
Use standard allocator for wasm ( #12713 )
2024-08-06 11:20:47 +00:00
Micha Reiser
10e977d5f5
[red-knot] Add basic WASM API ( #12654 )
2024-08-06 09:21:42 +02:00
Micha Reiser
ff2aa3ea00
Revert "Remove criterion/codspeed compat layer ( #12524 )" ( #12680 )
2024-08-05 07:49:04 +00:00
Micha Reiser
756060d676
Upgrade Salsa to a version with a 32bit compatible concurrent vec ( #12679 )
2024-08-05 08:50:32 +02:00
renovate[bot]
2c79045342
Update Rust crate pep440_rs to v0.6.6 ( #12666 )
2024-08-04 22:42:43 -04:00
renovate[bot]
0e71485ea9
Update Rust crate regex to v1.10.6 ( #12667 )
2024-08-04 22:10:40 -04:00
renovate[bot]
43a9d282f7
Update Rust crate ordermap to v0.5.1 ( #12665 )
2024-08-04 22:10:32 -04:00