Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Workspace path mismatch with Rust Analyzer #36

Open
jssblck opened this issue Aug 7, 2024 · 4 comments
Open

Workspace path mismatch with Rust Analyzer #36

jssblck opened this issue Aug 7, 2024 · 4 comments
Labels
bug Something isn't working help wanted Extra attention is needed

Comments

@jssblck
Copy link

jssblck commented Aug 7, 2024

Hello! Thanks for taking the time to make this library, it's great!

In #9, an issue was observed with "workspace usage". The decision was that this wasn't truly broken, which is fair, but a problem when the code interacts with Rust Analyzer.

Specifically, I have code like this:

// Workspace is at `/project`, e.g. `/project/Cargo.toml` is the workspace root.

// In `/project/server/src/api.rs`, Rust Analyzer displays an error:
#[utoipauto::utoipauto(paths = "./server/src")]
#[derive(OpenApi)]
#[openapi(
    info(
        description = include_str!("../../docs/api.md"),
    ),
    modifiers(&InfoAddon, &SecurityAddon),
)]
struct ApiDoc;

This causes Rust Analyzer to report the error "Failed to parse file: ./server/src":
error

However, the build succeeds:

; cargo clean && cargo build
     Removed 8110 files, 4.5GiB total
   Compiling proc-macro2 v1.0.86
   ...
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 25.44s

Obviously, this isn't a case where the library is broken, but I think this is a case where the library makes assumptions about how the macro is executed that aren't compatible with Rust Analyzer.

Do you have any suggestions for steps I could take to resolve this issue?

@DenuxPlays
Copy link
Collaborator

I think I have the same issue but just have not recognized it.

I use RustRover as my IDE so I do not get to see the Rust-Analyzer errors directly but I've never had code-completion/intellisense on my ApiDoc struct.

I'll have a look but my knowledge about the rust-analyzer is fairly limited.
Would be great if someone else could also take a look at it.

@DenuxPlays DenuxPlays added bug Something isn't working help wanted Extra attention is needed labels Aug 8, 2024
@jssblck
Copy link
Author

jssblck commented Aug 8, 2024

I suspect that the issue here is that Rust Analyzer executes the macro in a different directory, so making the macro normalize the path to be based on the workspace root would fix the problem.

If I get time I'll take a stab at fixing it!

@DenuxPlays
Copy link
Collaborator

I suspect that the issue here is that Rust Analyzer executes the macro in a different directory, so making the macro normalize the path to be based on the workspace root would fix the problem.

If I get time I'll take a stab at fixing it!

This would be great 👌

Let me know if you need any help.
Also if this isn't the root problem please report it back.

@ProbablyClem
Copy link
Owner

I've noticed the same issue but had no clue about how to fix it.
Thanks for your help

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

3 participants