cli: add ability to set project root - #392
Conversation
stringhandler
left a comment
There was a problem hiding this comment.
ConceptACK, but I think you should allow the main entry path to exist outside of the project root.
| .arg( | ||
| Arg::new("project_root") | ||
| .long("project-root") | ||
| .value_name("PATH") |
There was a problem hiding this comment.
| .value_name("PATH") | |
| .value_name("PROJECT_ROOT") |
| .ok_or("Failed to determine project root directory from entry file")?, | ||
| }; | ||
|
|
||
| if !main_path.starts_with(&canon_root) { |
There was a problem hiding this comment.
If this fails anyway, what is the purpose of allowing you to specify it? This feels like the behaviour is the same before this PR
In which case we should allow it? I do not really understand what do you mean |
|
Maybe I am misunderstanding what you want to achieve with this PR. Could you add some example file layouts before and after the PR? |
|
This fixes a bug related to the |
|
Currently we have this structure in simplicityhl-std/simf #3eafe6b. The problem is that we can't create a Example: We want On the |
Before this PR, After this PR, you can specify a Eventually, presumably, we will have a If you remove this check, it will let people do confusing constructions that may limit our ability in the future to define Cargo-like projects. I'd prefer to keep it. |
|
Ok. My main concern was that this was adding a check that was already done, but I see it allows you to specify a root further up the path than was previously allowed. |
2fc51f7 to
d21f237
Compare
LesterEvSe
left a comment
There was a problem hiding this comment.
ACK d21f237; tested locally with just check and just check_fuzz
When files are not on the
project_root/simforproject_root/simfor any other source dir but deeper, likeproject_root/simf/math/module/*add*.simfand in *.simf we specify the crate keyword it would resolve as a project_rootproject_root/simf/math/modulebut it should resolve as project_root/simf for the correct LSP analysisThis PR introduces a way to provide a specific project root to help address the issue