-
Notifications
You must be signed in to change notification settings - Fork 697
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
Add source file to project parse errors and warnings #10644
Open
philderbeast
wants to merge
24
commits into
haskell:master
Choose a base branch
from
cabalism:fix/import-parse-error-location
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Add source file to project parse errors and warnings #10644
philderbeast
wants to merge
24
commits into
haskell:master
from
cabalism:fix/import-parse-error-location
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
philderbeast
force-pushed
the
fix/import-parse-error-location
branch
from
December 16, 2024 18:54
eef5654
to
ea7d2d3
Compare
- Track which file has errors and which has warnings
philderbeast
force-pushed
the
fix/import-parse-error-location
branch
2 times, most recently
from
December 16, 2024 19:09
7c990c9
to
a74ddc3
Compare
@gbaz what are your concerns with the following comment and is there a test for this? cabal/cabal-install/src/Distribution/Client/ProjectConfig/Legacy.hs Lines 175 to 176 in e562334
|
philderbeast
commented
Dec 16, 2024
Comment on lines
-310
to
+325
<$> adaptParseError l (parseConditionConfVarFromClause . BS.pack $ "else(" <> p <> ")") | ||
<$> ( let s = "elif(" <> p <> ")" | ||
in projectParse (Just s) source (adaptParseError l (parseConditionConfVarFromClause $ BS.pack s)) | ||
) |
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.
@gbaz was this a typo, using "else(" instead of "elif("?
philderbeast
force-pushed
the
fix/import-parse-error-location
branch
2 times, most recently
from
December 16, 2024 19:33
deec1f5
to
6f5239b
Compare
geekosaur
approved these changes
Dec 16, 2024
philderbeast
force-pushed
the
fix/import-parse-error-location
branch
from
December 16, 2024 20:05
6f5239b
to
9f05ce2
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #10635. Improves warning and error messages shown when parsing project files and their imports.
Warning Messages
To trigger these warning messages, the examples use badly formed comments that have a single dash instead of two as is required of a line comment in
.cabal
and.project
files (and imported.config
files).Before the fix:
The
cabal.project
file name is repeated. Warnings are misattributed to having been in the project rather than from a configuration file imported by the project. Warnings are shown in reverse line number order.After the fix:
The warnings are shown in a list. For warnings within the same
.project
or imported.config
file, warnings are sorted by line number. The file that is the source of the warning is shown.The warnings associated with configuration files are shown in the order these files were imported by the project:
Error Messages from Project
To trigger these error messages, the examples use badly formed conditions:
Before the fix:
The parse error is shown with hard line breaks.
After the fix:
The snippet that failed to parse may be shown and the parse error is shown as one line, with no hard line breaks.
Error Messages from Imported Config
With the same setup but now with the error in an imported file:
Before the fix:
The project rather than the imported configuration file is shown as the source file.
After the fix:
The imported configuration file is shown as the source with a snippet of the error.
significance: significant
in the changelog file.