cln!: sourcepos: Use megaparsec-supplied sourcePosPretty.
Change showSourcePos to sourcePosPretty, and showSourcePosPair to sourcePosPairPretty.
This commit is contained in:
parent
f0e00b3a43
commit
19ed6d3f00
@ -169,7 +169,7 @@ transactionBalanceError t errs =
|
|||||||
|
|
||||||
annotateErrorWithTransaction :: Transaction -> String -> String
|
annotateErrorWithTransaction :: Transaction -> String -> String
|
||||||
annotateErrorWithTransaction t s =
|
annotateErrorWithTransaction t s =
|
||||||
unlines [ showSourcePosPair $ tsourcepos t, s
|
unlines [ sourcePosPairPretty $ tsourcepos t, s
|
||||||
, T.unpack . T.stripEnd $ showTransaction t
|
, T.unpack . T.stripEnd $ showTransaction t
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -586,7 +586,7 @@ checkBalanceAssertionOneCommodityB p@Posting{paccount=assertedacct} assertedamt
|
|||||||
(case ptransaction p of
|
(case ptransaction p of
|
||||||
Nothing -> "?" -- shouldn't happen
|
Nothing -> "?" -- shouldn't happen
|
||||||
Just t -> printf "%s\ntransaction:\n%s"
|
Just t -> printf "%s\ntransaction:\n%s"
|
||||||
(showSourcePos pos)
|
(sourcePosPretty pos)
|
||||||
(textChomp $ showTransaction t)
|
(textChomp $ showTransaction t)
|
||||||
:: String
|
:: String
|
||||||
where
|
where
|
||||||
|
|||||||
@ -374,7 +374,7 @@ journalCheckPayeesDeclared j = mapM_ checkpayee (jtxns j)
|
|||||||
| otherwise = Left $
|
| otherwise = Left $
|
||||||
printf "undeclared payee \"%s\"\nat: %s\n\n%s"
|
printf "undeclared payee \"%s\"\nat: %s\n\n%s"
|
||||||
(T.unpack p)
|
(T.unpack p)
|
||||||
(showSourcePosPair $ tsourcepos t)
|
(sourcePosPairPretty $ tsourcepos t)
|
||||||
(linesPrepend2 "> " " " . (<>"\n") . textChomp $ showTransaction t)
|
(linesPrepend2 "> " " " . (<>"\n") . textChomp $ showTransaction t)
|
||||||
where
|
where
|
||||||
p = transactionPayee t
|
p = transactionPayee t
|
||||||
@ -392,7 +392,7 @@ journalCheckAccountsDeclared j = mapM_ checkacct (journalPostings j)
|
|||||||
++ case ptransaction of
|
++ case ptransaction of
|
||||||
Nothing -> ""
|
Nothing -> ""
|
||||||
Just t -> printf "in transaction at: %s\n\n%s"
|
Just t -> printf "in transaction at: %s\n\n%s"
|
||||||
(showSourcePosPair $ tsourcepos t)
|
(sourcePosPairPretty $ tsourcepos t)
|
||||||
(linesPrepend " " . (<>"\n") . textChomp $ showTransaction t)
|
(linesPrepend " " . (<>"\n") . textChomp $ showTransaction t)
|
||||||
where
|
where
|
||||||
as = journalAccountNamesDeclared j
|
as = journalAccountNamesDeclared j
|
||||||
@ -411,7 +411,7 @@ journalCheckCommoditiesDeclared j =
|
|||||||
++ case ptransaction of
|
++ case ptransaction of
|
||||||
Nothing -> ""
|
Nothing -> ""
|
||||||
Just t -> printf "in transaction at: %s\n\n%s"
|
Just t -> printf "in transaction at: %s\n\n%s"
|
||||||
(showSourcePosPair $ tsourcepos t)
|
(sourcePosPairPretty $ tsourcepos t)
|
||||||
(linesPrepend " " . (<>"\n") . textChomp $ showTransaction t)
|
(linesPrepend " " . (<>"\n") . textChomp $ showTransaction t)
|
||||||
where
|
where
|
||||||
mfirstundeclaredcomm =
|
mfirstundeclaredcomm =
|
||||||
|
|||||||
@ -6,14 +6,13 @@ module Hledger.Utils.Parse (
|
|||||||
SimpleTextParser,
|
SimpleTextParser,
|
||||||
TextParser,
|
TextParser,
|
||||||
|
|
||||||
|
-- * SourcePos
|
||||||
SourcePos(..),
|
SourcePos(..),
|
||||||
mkPos,
|
mkPos,
|
||||||
unPos,
|
unPos,
|
||||||
initialPos,
|
initialPos,
|
||||||
|
sourcePosPretty,
|
||||||
-- * SourcePos
|
sourcePosPairPretty,
|
||||||
showSourcePosPair,
|
|
||||||
showSourcePos,
|
|
||||||
|
|
||||||
choice',
|
choice',
|
||||||
choiceInState,
|
choiceInState,
|
||||||
@ -63,16 +62,12 @@ type SimpleTextParser = Parsec CustomErr Text -- XXX an "a" argument breaks the
|
|||||||
-- | A parser of text that runs in some monad.
|
-- | A parser of text that runs in some monad.
|
||||||
type TextParser m a = ParsecT CustomErr Text m a
|
type TextParser m a = ParsecT CustomErr Text m a
|
||||||
|
|
||||||
-- | Render source position in human-readable form.
|
-- | Render a pair of source positions in human-readable form, only displaying the range of lines.
|
||||||
showSourcePos :: SourcePos -> String
|
sourcePosPairPretty :: (SourcePos, SourcePos) -> String
|
||||||
showSourcePos (SourcePos fp l c) =
|
sourcePosPairPretty (SourcePos fp l1 _, SourcePos _ l2 c2) =
|
||||||
show fp ++ " (line " ++ show (unPos l) ++ ", column " ++ show (unPos c) ++ ")"
|
fp ++ ":" ++ show (unPos l1) ++ "-" ++ show l2'
|
||||||
|
where
|
||||||
-- | Render a pair of source position in human-readable form.
|
l2' = if unPos c2 == 1 then unPos l2 - 1 else unPos l2 -- might be at end of file with a final new line
|
||||||
showSourcePosPair :: (SourcePos, SourcePos) -> String
|
|
||||||
showSourcePosPair (SourcePos fp l1 _, SourcePos _ l2 c2) =
|
|
||||||
show fp ++ " (lines " ++ show (unPos l1) ++ "-" ++ show l2' ++ ")"
|
|
||||||
where l2' = if unPos c2 == 1 then unPos l2 - 1 else unPos l2 -- might be at end of file withat last new-line
|
|
||||||
|
|
||||||
-- | Backtracking choice, use this when alternatives share a prefix.
|
-- | Backtracking choice, use this when alternatives share a prefix.
|
||||||
-- Consumes no input if all choices fail.
|
-- Consumes no input if all choices fail.
|
||||||
|
|||||||
@ -30,7 +30,7 @@ journalCheckOrdereddates CliOpts{reportspec_=rspec} j = do
|
|||||||
let
|
let
|
||||||
datestr = if date2_ ropts then "2" else ""
|
datestr = if date2_ ropts then "2" else ""
|
||||||
uniquestr = if checkunique then " and/or not unique" else ""
|
uniquestr = if checkunique then " and/or not unique" else ""
|
||||||
positionstr = showSourcePosPair $ tsourcepos error
|
positionstr = sourcePosPairPretty $ tsourcepos error
|
||||||
txn1str = T.unpack . linesPrepend (T.pack " ") $ showTransaction previous
|
txn1str = T.unpack . linesPrepend (T.pack " ") $ showTransaction previous
|
||||||
txn2str = T.unpack . linesPrepend2 (T.pack "> ") (T.pack " ") $ showTransaction error
|
txn2str = T.unpack . linesPrepend2 (T.pack "> ") (T.pack " ") $ showTransaction error
|
||||||
Left $
|
Left $
|
||||||
|
|||||||
@ -49,5 +49,5 @@ checkposting leafandfullnames Posting{paccount,ptransaction} =
|
|||||||
Nothing -> ""
|
Nothing -> ""
|
||||||
Just t -> printf "\nseen in \"%s\" in transaction at: %s\n\n%s"
|
Just t -> printf "\nseen in \"%s\" in transaction at: %s\n\n%s"
|
||||||
paccount
|
paccount
|
||||||
(showSourcePosPair $ tsourcepos t)
|
(sourcePosPairPretty $ tsourcepos t)
|
||||||
(linesPrepend "> " . (<>"\n") . textChomp $ showTransaction t) :: String)
|
(linesPrepend "> " . (<>"\n") . textChomp $ showTransaction t) :: String)
|
||||||
|
|||||||
@ -56,7 +56,7 @@ $ hledger -f - stats
|
|||||||
b $-1 = $-3
|
b $-1 = $-3
|
||||||
|
|
||||||
$ hledger -f - stats
|
$ hledger -f - stats
|
||||||
>2 /balance assertion.*line 11, column 12/
|
>2 /balance assertion.*11:12/
|
||||||
>=1
|
>=1
|
||||||
|
|
||||||
# 4. should also work without commodity symbols
|
# 4. should also work without commodity symbols
|
||||||
@ -314,7 +314,7 @@ $ hledger -f - stats
|
|||||||
a 0 == $1
|
a 0 == $1
|
||||||
|
|
||||||
$ hledger -f - stats
|
$ hledger -f - stats
|
||||||
>2 /balance assertion.*line 10, column 15/
|
>2 /balance assertion.*10:15/
|
||||||
>=1
|
>=1
|
||||||
|
|
||||||
# 18. Mix different commodities and total assignments
|
# 18. Mix different commodities and total assignments
|
||||||
|
|||||||
@ -68,7 +68,7 @@ $ hledger -f journal:- print
|
|||||||
[c]
|
[c]
|
||||||
|
|
||||||
$ hledger -f journal:- print
|
$ hledger -f journal:- print
|
||||||
>2 /lines 1-4/
|
>2 /:1-4/
|
||||||
>=1
|
>=1
|
||||||
|
|
||||||
# 7. Balancing error messages show the recorded precision, not the display precision.
|
# 7. Balancing error messages show the recorded precision, not the display precision.
|
||||||
@ -123,7 +123,7 @@ $ hledger -f- print
|
|||||||
b 1B
|
b 1B
|
||||||
$ hledger -f- print
|
$ hledger -f- print
|
||||||
>2
|
>2
|
||||||
hledger: "-" (lines 1-3)
|
hledger: -:1-3
|
||||||
could not balance this transaction:
|
could not balance this transaction:
|
||||||
real postings all have the same sign
|
real postings all have the same sign
|
||||||
2020-01-01
|
2020-01-01
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user