Chayim Refael Friedman
3e834add61
Support spans with proc macro servers from before the ast id changes
...
The only thing changed is the value of the fixup ast id, so we just swap it.
2025-06-12 16:08:48 +03:00
Chayim Refael Friedman
4bcf03e28b
Use stable AST IDs
...
Instead of simple numbering, we hash important bits, like the name of the item.
This will allow for much better incrementality, e.g. when you add an item. Currently, this invalidates the IDs of all following items, which invalidates pretty much everything.
2025-06-12 08:47:22 +03:00
Lukas Wirth
7b9e0911b5
chore: Remove salsa dependency from proc-macro server again
2025-03-27 07:27:57 +01:00
Lukas Wirth
d4122434dd
chore: Remove unused dependencies
2025-03-23 08:08:17 +01:00
BenjaminBrienen
7535bb4661
cargo fmt
2025-03-15 21:32:01 +01:00
Lukas Wirth
5ec0057418
Use interior mutability for loaded ProcMacrorv::expanders
2025-02-05 12:01:57 +01:00
Chayim Refael Friedman
ceba289f80
Store token trees in contiguous Vec
instead of as a tree
...
I expected this to be faster (due to less allocations and better cache locality), but benchmarked it is not (neither it is slower). Memory usage, however, drops by ~50mb (of `analysis-stats .`). I guess tt construction is just not hot.
This also simplifies using even less memory for token trees by compressing equal span, which I plan to do right after.
Some workflows are more easily expressed with a flat tt, while some are better expressed with a tree. With the right helpers, though (which was mostly a matter of trial and error), even the worst workflows become very easy indeed.
2025-01-02 19:21:46 +02:00
Lukas Wirth
b2d9486ebd
Move proc-macro protocol into legacy module
2024-12-30 11:47:08 +01:00
Lukas Wirth
714b81bec1
Decouple proc-macro server protocol from the server implementation
2024-12-30 10:33:57 +01:00
Lukas Wirth
a5adfafd93
Do not require a special env var to be set for the proc-macro-srv
2024-12-13 09:29:16 +01:00
Lukas Wirth
8a86fa01ac
Fix clippy lints in proc-macro-srv
2024-12-12 13:30:42 +01:00
Vincent Esche
7dec7e92ea
Replace [package.repository] = "…"
of published crates with [package.repository.workspace] = true
2024-08-06 00:26:42 +02:00
Vincent Esche
f8de86b308
Apply Veykril's change suggestions
2024-08-06 00:25:02 +02:00
Vincent Esche
6f329e6d5b
Add repository URL for published crates' missing [package.repository]
fields
2024-08-06 00:25:02 +02:00
Vincent Esche
b5b0f4bc5a
Replace "TBD"
with more helpful desciptions in published crates' [package.description]
fields
2024-08-06 00:25:02 +02:00
Lukas Wirth
c236190b60
Abstract proc-macro-srv protocol format
2024-06-30 16:56:30 +02:00
Lukas Wirth
7c7c0cbffb
Simplify
2024-06-30 16:43:22 +02:00
Lukas Wirth
9d09bc0619
Actual dummy server for the server cli
2024-06-30 16:34:06 +02:00
Lukas Wirth
2fb38ceb66
Faster env snapshotting in proc-macro-srv
2024-06-30 16:10:20 +02:00
bors
af1fd88c4d
Auto merge of #16257 - lnicola:rustc-check-cfg, r=Veykril
...
internal: Teach cargo about `cfg(rust_analyzer)`
r? `@Urgau` is this a good idea?, CC `@Veykril`
2024-04-18 12:13:06 +00:00
Lukas Wirth
9e8a0fae0c
Lint debug prints and disallowed types with clippy
2024-02-01 17:57:27 +01:00
Johann Hemmann
e7e09e7750
large_enum_variant
2024-01-31 19:06:35 +01:00
Lukas Wirth
21a953fe37
Recognize proc macro server unexpectedly exiting and report the exit code
2024-01-09 10:37:26 +01:00
Laurențiu Nicola
3a2ae6410d
Teach cargo about cfg(rust_analyzer)
2024-01-04 18:31:08 +02:00
Lukas Wirth
8390d2aca3
Set sysroot-abi flag for proc-macro-cli when in-rust-tree is set
2024-01-04 11:02:23 +01:00
Lukas Wirth
d480525ce8
Add extern crate rustc_driver to proc-macro-srv-cli
2024-01-04 11:02:23 +01:00
Lukas Wirth
b83f487d10
Set the in-rust-tree
` feature for all rust-analyzer{-proc-macro-srv} steps
2024-01-04 11:02:20 +01:00
Laurențiu Nicola
932d85b529
Merge commit ' 426d2842c1
' into sync-from-ra2
2024-01-03 11:35:07 +02:00
Tetsuharu Ohzeki
efc87092b3
Use Cargo's [workspace.lints.*] to config clippy
2023-12-29 23:51:32 +09:00
Lukas Wirth
5761b50ed8
More general server config message for proc-macro-api
2023-12-22 10:35:10 +01:00
Lukas Wirth
2e52aa1615
Clean up
2023-12-21 17:24:00 +01:00
Lukas Wirth
a892237ed4
Add rust-analyzer-span server feature equivalent to the ID server
2023-12-21 17:22:59 +01:00
Laurențiu Nicola
f532576ac5
Merge commit ' 457b966b17
' into sync-from-ra
2023-12-11 11:16:01 +02:00
Lukas Wirth
b98597f06d
Re-enable proc-macros
2023-11-28 16:28:56 +01:00
Lukas Wirth
6208960c48
Deduplicate dummy test span maps
2023-11-28 10:55:40 +01:00
Laurențiu Nicola
c48062fe2a
Merge commit ' aa9bc86125
' into sync-from-ra
2023-06-05 12:04:23 +03:00
Lukas Wirth
c21860bd6a
Remove proc-macro server command from the rust-analyzer binary
2023-04-26 08:19:28 +02:00
Lukas Wirth
7498ec730e
Drop support for non-syroot proc macro ABIs
2023-03-29 10:57:32 +02:00
Laurențiu Nicola
bc45c7659a
⬆️ rust-analyzer
2023-02-13 13:55:14 +02:00
bors
fa874627f0
Auto merge of #13969 - Veykril:workspace.dependencies, r=Veykril
...
Use workspace.dependencies to declare local dependencies
2023-01-17 10:29:27 +00:00
Lukas Wirth
bed4db3c62
Use workspace.dependencies to declare local dependencies
2023-01-17 10:52:26 +01:00
Lukas Wirth
e4858fe480
Specify authors, edition and license via workspace.package
2023-01-16 16:44:00 +01:00
Lukas Wirth
679df2adf1
Specify rust-version via workspace.package
2023-01-16 16:33:01 +01:00
Laurențiu Nicola
a2a1d99545
⬆️ rust-analyzer
2022-11-23 17:24:03 +02:00
Lukas Wirth
ffd7bf8bf9
Bump Cargo rust-version fields to latest stable
2022-11-07 12:59:51 +01:00
Amos Wenger
a1f1b95d00
Merge commit ' e36a20c24f
' into ra-sync-and-pms-component
2022-07-26 11:53:50 +02:00
Amos Wenger
74a2fad5e6
Gate and rename binary, use it if it's in the sysroot
2022-07-25 16:22:39 +02:00
Amos Wenger
4364531c2f
Name the binary 'proc-macro-srv'
2022-07-25 15:19:57 +02:00
Amos Wenger
fd1b64ec71
Return result directly
...
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2022-07-25 15:19:57 +02:00
Amos Wenger
fba6adfae4
Add doc comment to pass tidy check
2022-07-25 15:19:57 +02:00