dev: errors: improve timeclock errors
This commit is contained in:
parent
aeae7232ca
commit
78d5939c19
@ -77,14 +77,17 @@ timeclockEntriesToTransactions now (i:o:rest)
|
|||||||
|
|
||||||
errorExpectedCodeButGot :: TimeclockCode -> TimeclockEntry -> a
|
errorExpectedCodeButGot :: TimeclockCode -> TimeclockEntry -> a
|
||||||
errorExpectedCodeButGot expected actual = error' $ printf
|
errorExpectedCodeButGot expected actual = error' $ printf
|
||||||
("%s:\n%s\n\nExpected timeclock %s entry but got %s.\n"
|
("%s:\n%s\n%s\n\nExpected timeclock %s entry but got %s.\n"
|
||||||
++"Only one session may be clocked in at a time, so please alternate i and o.")
|
++"Only one session may be clocked in at a time.\n"
|
||||||
|
++"Please alternate i and o, beginning with i.")
|
||||||
(sourcePosPretty $ tlsourcepos actual)
|
(sourcePosPretty $ tlsourcepos actual)
|
||||||
(show l ++ " | " ++ show actual)
|
(l ++ " | " ++ show actual)
|
||||||
|
(replicate (length l) ' ' ++ " |" ++ replicate c ' ' ++ "^")
|
||||||
(show expected)
|
(show expected)
|
||||||
(show $ tlcode actual)
|
(show $ tlcode actual)
|
||||||
where
|
where
|
||||||
l = unPos $ sourceLine $ tlsourcepos actual
|
l = show $ unPos $ sourceLine $ tlsourcepos actual
|
||||||
|
c = unPos $ sourceColumn $ tlsourcepos actual
|
||||||
|
|
||||||
-- | Convert a timeclock clockin and clockout entry to an equivalent journal
|
-- | Convert a timeclock clockin and clockout entry to an equivalent journal
|
||||||
-- transaction, representing the time expenditure. Note this entry is not balanced,
|
-- transaction, representing the time expenditure. Note this entry is not balanced,
|
||||||
@ -99,11 +102,16 @@ entryFromTimeclockInOut i o
|
|||||||
("%s:\n%s\nThis clockout time (%s) is earlier than the previous clockin.\n"
|
("%s:\n%s\nThis clockout time (%s) is earlier than the previous clockin.\n"
|
||||||
++"Please adjust it to be later than %s.")
|
++"Please adjust it to be later than %s.")
|
||||||
(sourcePosPretty $ tlsourcepos o)
|
(sourcePosPretty $ tlsourcepos o)
|
||||||
(unlines [replicate (length l) ' '++ " | " ++ show i, l ++ " | " ++ show o])
|
(unlines [
|
||||||
|
replicate (length l) ' '++ " | " ++ show i,
|
||||||
|
l ++ " | " ++ show o,
|
||||||
|
(replicate (length l) ' ' ++ " |" ++ replicate c ' ' ++ replicate 19 '^')
|
||||||
|
])
|
||||||
(show $ tldatetime o)
|
(show $ tldatetime o)
|
||||||
(show $ tldatetime i)
|
(show $ tldatetime i)
|
||||||
where
|
where
|
||||||
l = show $ unPos $ sourceLine $ tlsourcepos o
|
l = show $ unPos $ sourceLine $ tlsourcepos o
|
||||||
|
c = (unPos $ sourceColumn $ tlsourcepos o) + 2
|
||||||
t = Transaction {
|
t = Transaction {
|
||||||
tindex = 0,
|
tindex = 0,
|
||||||
tsourcepos = (tlsourcepos i, tlsourcepos i),
|
tsourcepos = (tlsourcepos i, tlsourcepos i),
|
||||||
|
|||||||
@ -55,8 +55,8 @@ Here is the current status
|
|||||||
| parseable-regexps | ✓ | ✓ | ✓ | ✓✓ | ✓ |
|
| parseable-regexps | ✓ | ✓ | ✓ | ✓✓ | ✓ |
|
||||||
| payees | ✓ | ✓ | ✓ | ✓✓ | ✓ |
|
| payees | ✓ | ✓ | ✓ | ✓✓ | ✓ |
|
||||||
| uniqueleafnames | ✓ | ✓ | ✓ | ✓✓ | ✓ |
|
| uniqueleafnames | ✓ | ✓ | ✓ | ✓✓ | ✓ |
|
||||||
| tcclockouttime | ✓ | ✓ | ✓ | ✓ | |
|
| tcclockouttime | ✓ | ✓ | ✓ | ✓✓ | |
|
||||||
| tcorderedactions | ✓ | ✓ | ✓ | ✓ | |
|
| tcorderedactions | ✓ | ✓ | ✓ | ✓✓ | |
|
||||||
|
|
||||||
Key:
|
Key:
|
||||||
- std format - the error message follows a standard format (location on first line, megaparsec-like excerpt, explanation)
|
- std format - the error message follows a standard format (location on first line, megaparsec-like excerpt, explanation)
|
||||||
@ -111,7 +111,7 @@ Here are some current limitations of hledger's error messages:
|
|||||||
|
|
||||||
<!-- to update: make readme -->
|
<!-- to update: make readme -->
|
||||||
<!-- GENERATED: -->
|
<!-- GENERATED: -->
|
||||||
hledger 1.26.99-g32c7f6300-20220714 error messages:
|
hledger 1.26.99-gaeae7232c-20220714 error messages:
|
||||||
|
|
||||||
### accounts
|
### accounts
|
||||||
```
|
```
|
||||||
@ -282,6 +282,7 @@ Consider changing these account names so their last parts are different.
|
|||||||
hledger: Error: /Users/simon/src/hledger/hledger/test/errors/./tcclockouttime.timeclock:5:1:
|
hledger: Error: /Users/simon/src/hledger/hledger/test/errors/./tcclockouttime.timeclock:5:1:
|
||||||
| i 2022-01-01 00:01:00
|
| i 2022-01-01 00:01:00
|
||||||
5 | o 2022-01-01 00:00:00
|
5 | o 2022-01-01 00:00:00
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
This clockout time (2022-01-01 00:00:00) is earlier than the previous clockin.
|
This clockout time (2022-01-01 00:00:00) is earlier than the previous clockin.
|
||||||
Please adjust it to be later than 2022-01-01 00:01:00.
|
Please adjust it to be later than 2022-01-01 00:01:00.
|
||||||
@ -292,8 +293,10 @@ Please adjust it to be later than 2022-01-01 00:01:00.
|
|||||||
```
|
```
|
||||||
hledger: Error: /Users/simon/src/hledger/hledger/test/errors/./tcorderedactions.timeclock:8:1:
|
hledger: Error: /Users/simon/src/hledger/hledger/test/errors/./tcorderedactions.timeclock:8:1:
|
||||||
8 | i 2022-01-01 00:01:00
|
8 | i 2022-01-01 00:01:00
|
||||||
|
| ^
|
||||||
|
|
||||||
Expected timeclock o entry but got i.
|
Expected timeclock o entry but got i.
|
||||||
Only one session may be clocked in at a time, so please alternate i and o.
|
Only one session may be clocked in at a time.
|
||||||
|
Please alternate i and o, beginning with i.
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@ -2,6 +2,7 @@ $$$ hledger check -f tcclockouttime.timeclock
|
|||||||
>>>2 /hledger: Error: .*tcclockouttime.timeclock:5:1:
|
>>>2 /hledger: Error: .*tcclockouttime.timeclock:5:1:
|
||||||
\| i 2022-01-01 00:01:00
|
\| i 2022-01-01 00:01:00
|
||||||
5 \| o 2022-01-01 00:00:00
|
5 \| o 2022-01-01 00:00:00
|
||||||
|
\| \^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^
|
||||||
|
|
||||||
This clockout time \(2022-01-01 00:00:00\) is earlier than the previous clockin.
|
This clockout time \(2022-01-01 00:00:00\) is earlier than the previous clockin.
|
||||||
Please adjust it to be later than 2022-01-01 00:01:00.
|
Please adjust it to be later than 2022-01-01 00:01:00.
|
||||||
|
|||||||
@ -1,8 +1,10 @@
|
|||||||
$$$ hledger check -f tcorderedactions.timeclock
|
$$$ hledger check -f tcorderedactions.timeclock
|
||||||
>>>2 /hledger: Error: .*tcorderedactions.timeclock:8:1:
|
>>>2 /hledger: Error: .*tcorderedactions.timeclock:8:1:
|
||||||
8 \| i 2022-01-01 00:01:00
|
8 \| i 2022-01-01 00:01:00
|
||||||
|
\| \^
|
||||||
|
|
||||||
Expected timeclock o entry but got i.
|
Expected timeclock o entry but got i.
|
||||||
Only one session may be clocked in at a time, so please alternate i and o.
|
Only one session may be clocked in at a time.
|
||||||
|
Please alternate i and o, beginning with i.
|
||||||
/
|
/
|
||||||
>>>= 1
|
>>>= 1
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user