-
-
Notifications
You must be signed in to change notification settings - Fork 42
Tweaks to solution filter loading #230
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
Conversation
|
Not sure if it needs fantomas running or not - it changed all sorts of things unrelated to this change when I ran the fake build |
Yeah, that'll work :D Nice job maintaining binary compat so that that worked! |
It appears that Fantomas is failing to parse FsLibLog.fs, which makes the CheckFormat build step report that files need to be formatted but then fail in a way that doesn't fail the build step so the CI still succeeds. InspectSln.fs is already reported as needing formatting in any case |
Ouch, that's some interesting parser behaviour. proj-info/src/Ionide.ProjInfo/FsLibLog.fs Lines 994 to 999 in 89d54a1
Just deleting the |
TheAngryByrd
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice work!
I tried dropping the modified ProjInfo dll into my Ionide install and that appeared to fix it for my solution, but I'm working all this out as I go along so I'm not sure if this is correct and/or complete approach.
I think this seems fine. Having more tests with examples is great and we can add more as people find them.
It appears that Fantomas is failing to parse FsLibLog.fs, which makes the CheckFormat build step report that files need to be formatted but then fail in a way that doesn't fail the build step so the CI still succeeds. InspectSln.fs is already reported as needing formatting in any case
I ended up fixing this in #232 so shouldn't be a problem anymore.
|
rebased on top of the formatting changes |
refs ionide/ionide-vscode-fsharp#1708 1) When reading the path to the solution file out of the filter file, create the abolsute path to it based on the filter path, instead of just using the name directly (it might just be the solution file name, with on path) 2) When parseSln is called with a filter list, it calls makeAbsoluteFromSlnDir on each project in the parent solution when searching in the filter list. That fails to match anything in the paths in the filter are relative rather than absolute. Try to fix that by calling makeAbsoluteFromSlnDir on each project in the filter file.
|
Should be available once in Ionide 7.25.10 once it's finished publishing and the marketplace indexes the package. |
refs ionide/ionide-vscode-fsharp#1708
As mentioned in ionide/ionide-vscode-fsharp#1708 (comment), when I try to load a solution filter for one of my projects in Ionide 7.25.8 I don't get any projects loaded for the solution.
(I do get the guid entries described in ionide/ionide-vscode-fsharp#2067, but that's a different issue).
So - I had a go at adding a new unit test for a solution / solution filter pair, and when I tried debugging that I found:
When it read the path to the solution file out of the filter file, it only got the file name of the parent solution rather than the path (the solution and filter are in the same directory). It then failed to load that solution.
So - try to fix that by getting the absolute path to the parent solution based on the path to the solution filter.
When parseSln is called with a filter list, it calls makeAbsoluteFromSlnDir on each project in the parent solution when searching in the filter list. That failed to match anything if the paths in the filter are relative rather than absolute. Try to fix that by calling makeAbsoluteFromSlnDir on each project in the filter file, before loading the parent solution with them.
I tried dropping the modified ProjInfo dll into my Ionide install and that appeared to fix it for my solution, but I'm working all this out as I go along so I'm not sure if this is correct and/or complete approach.