rust-sailfish / sailfish

Simple, small, and extremely fast template engine for Rust
https://rust-sailfish.github.io/sailfish/
MIT License
821 stars 56 forks source link

Rust-analyzer unable to open compiled template file #157

Open jcuffe opened 3 months ago

jcuffe commented 3 months ago

My VSCode's rust-analyzer is reporting an error while attempting to load the output file specified by the derive macro: image

I think it's likely that I'm seeing this due to some improper configuration, but I'm not sure where to look. I've verified that the file exists, and this error isn't shown when running cargo clippy.

bismitpanda commented 3 months ago

This happens maybe because rust-analyzer cannot open non .rs files. If you close that file from the editor it stops showing.

foo69 commented 3 months ago

I have the same issue, and It seems to be caused by a include! macro in sailfish-compiler, I would've debugged it but unfortunately I don't have time

Pranoy1c commented 2 months ago

I am facing this same problem. Is there a way to fix this?

@panda-dev24 what do you mean by "if you close that file from the editor"? And why would that stop showing it?

bismitpanda commented 2 months ago

I am facing this same problem. Is there a way to fix this?

@panda-dev24 what do you mean by "if you close that file from the editor"? And why would that stop showing it?

It seems like it is an issue with rust-analyzer not being able to include non rs files. So if you close the file from the editor, rust analyzer stops complaining.

Pranoy1c commented 2 months ago

I posted this on Stack Overflow and the answer was that:

Since sailfish compiles the templates into files without any extension, it is not found by rust-analyzer.

This can be resolved when either sailfish creates and uses .rs files

https://stackoverflow.com/a/78886929/1634905

Can Sailfish create files with .rs extension?

bismitpanda commented 2 months ago

This line

output_file.push(filename_hash(&input_file, &config));

If it is changed to add the .rs extension after the filename_hash function call, it will be resolved. But I am not sure the file produced is valid rust.