doc: clean up errors README, now published as hledger.org/ERRORS.html
This commit is contained in:
parent
ed72763987
commit
54e1a8450e
@ -1,26 +1,51 @@
|
||||
hledger error messages are currently quite varied in format.
|
||||
Tools like flycheck-hledger parse them and need updating
|
||||
whenever they change ([#1436][]).
|
||||
Getting consistent high-quality errors and accurate flycheck region
|
||||
highlighting, not to mention LSP support, for all of our journal
|
||||
errors is a big project, but it's crowd-sourceable and every bit of
|
||||
progress brings immediate practical benefits.
|
||||
# ERRORS
|
||||
|
||||
Here are journals/scripts for reproducing hledger's journal error messages.
|
||||
They are named similarly to [hledger check][]'s checks.
|
||||
In the CLI, execute them to see the error messages.
|
||||
<div class=pagetoc>
|
||||
|
||||
In Emacs with [flycheck-hledger][],
|
||||
customize flycheck-hledger-* to enable all appropriate checks,
|
||||
and open the files to see how flycheck handles them.
|
||||
Some files contain extra declarations to ease flycheck testing.
|
||||
<!-- toc -->
|
||||
</div>
|
||||
|
||||
hledger produces a variety of error messages in different situations.
|
||||
They are intended first for humans and secondly for parsing by tools
|
||||
like [flycheck-hledger][].
|
||||
Here we collect examples of these errors, which are listed below
|
||||
for reference, and also tested as part of our test suite.
|
||||
This document is the README in the [hledger/test/errors/][] directory,
|
||||
and also published as Developer docs > [ERRORS][] on hledger.org.
|
||||
|
||||
Each error has
|
||||
|
||||
- a name (similar to [hledger check][] names when applicable)
|
||||
- an executable script in this directory which reproduces the error (like `balanced.j`)
|
||||
- which usually can also be used as a data file for manual testing (`hledger -f balanced.j check`)
|
||||
- sometimes supplementary data files (like `csvdateparse.csv.rules`)
|
||||
- an autogenerated shelltestrunner test (like `balanced.test`)
|
||||
|
||||
To update this readme with the latest error messages, run `make readme`.
|
||||
To regenerate the shelltestrunner tests, run `make tests`.
|
||||
To test all of these error messages with hledger, run `make test`.
|
||||
To test these errors with flycheck-hledger,
|
||||
customize `flycheck-hledger-*` in Emacs to enable all appropriate checks,
|
||||
then open the data files to see how flycheck handles them.
|
||||
`C-c ! l` opens a pane for easy viewing.
|
||||
|
||||
<!-- Use absolute urls as this page can be viewed on github or hledger.org. -->
|
||||
[hledger/test/errors/]: https://github.com/simonmichael/hledger/tree/master/hledger/test/errors
|
||||
[ERRORS]: https://hledger.org/ERRORS.html
|
||||
[hledger check]: https://hledger.org/hledger.html#check
|
||||
[flycheck-hledger]: https://github.com/DamienCassou/flycheck-hledger
|
||||
[flycheck-hledger-home]: https://github.com/DamienCassou/flycheck-hledger
|
||||
[flycheck-hledger-10]: https://github.com/DamienCassou/flycheck-hledger/pull/10
|
||||
[#1436]: https://github.com/simonmichael/hledger/issues/1436
|
||||
[flycheck-hledger]: https://hledger.org/editors.html#flycheck-hledger
|
||||
|
||||
## Goals
|
||||
|
||||
## Error improvement
|
||||
|
||||
Work is ongoing to make our error messages more consistent and more useful
|
||||
([#1436](https://github.com/simonmichael/hledger/issues/1436),
|
||||
[#1885](https://github.com/simonmichael/hledger/pull/1885),
|
||||
[#1886](https://github.com/simonmichael/hledger/pull/1886)..).
|
||||
This is a big project, and your help is welcome; every bit of progress
|
||||
counts, and this is a fast way to help users.
|
||||
|
||||
- [x] ~~phase 1: update flycheck to detect journal errors of current hledger release (and keep a branch updated to detect errors of latest hledger master)~~
|
||||
- [x] ~~phase 2: survey/document current journal errors & status~~
|
||||
@ -37,18 +62,18 @@ Some files contain extra declarations to ease flycheck testing.
|
||||
- [x] ~~phase 13: decide/add error ids/explanations/web pages ? not needed~~
|
||||
- [ ] phase 14: support Language Server Protocol & Visual Code
|
||||
|
||||
## Preferred error format
|
||||
## Standard error format
|
||||
|
||||
Here is our current standard error message layout.
|
||||
It is similar to the parse error messages we get from megaparsec.
|
||||
(Easier to follow that than change it.):
|
||||
Here is our current preferred layout for error messages.
|
||||
It is similar to the parse error messages we get from megaparsec
|
||||
(since it's easier to follow that than change it):
|
||||
```
|
||||
hledger: Error: FILE:LOCATION:
|
||||
EXCERPT
|
||||
EXPLANATION
|
||||
```
|
||||
|
||||
Notes (see also [#1436][]):
|
||||
Notes:
|
||||
|
||||
- line 1 includes "hledger" (dropping this would require some effort), the word "Error", and the error position
|
||||
- FILE is the file path
|
||||
@ -64,7 +89,10 @@ Notes (see also [#1436][]):
|
||||
EXCERPT
|
||||
[DETAILS]
|
||||
```
|
||||
- try https://github.com/mesabloo/diagnose / https://hackage.haskell.org/package/errata / https://hackage.haskell.org/package/chapelure later
|
||||
- try
|
||||
<https://github.com/mesabloo/diagnose>,
|
||||
<https://hackage.haskell.org/package/errata>,
|
||||
<https://hackage.haskell.org/package/chapelure> later ?
|
||||
|
||||
## Limitations
|
||||
|
||||
@ -78,19 +106,20 @@ Here are some current limitations of hledger's error messages:
|
||||
- For the same reason, the excerpts we show in error messages are not the original data.
|
||||
Instead we show a synthetic rendering that is similar enough to be explanatory.
|
||||
|
||||
## Current status
|
||||
|
||||
## Error messages
|
||||
|
||||
Here is the current status as of
|
||||
hledger (see version below) and flycheck-hledger g1310cb518.
|
||||
Click error names to see an example. Key:
|
||||
Click error names to see an example. The table headings mean:
|
||||
|
||||
- std format - the error message follows a standard format (location on first line, megaparsec-like excerpt, explanation)
|
||||
- std format - the error message follows our standard error format
|
||||
- line - correct line numbers are reported
|
||||
- column - useful column numbers are reported
|
||||
- excerpt - a useful excerpt is shown, ideally with the error highlighted (✓✓)
|
||||
- flycheck - the current flycheck release (or a PR branch) recognises the error and highlights a useful region
|
||||
|
||||
| error/check name | std format | line | column | excerpt | flycheck |
|
||||
| error name | std format | line | column | excerpt | flycheck |
|
||||
|-------------------------------------------------------|------------|------|--------|---------|----------|
|
||||
| [accounts](#accounts) | ✓ | ✓ | ✓ | ✓✓ | ✓ |
|
||||
| [assertions](#assertions) | ✓ | ✓ | ✓ | ✓✓ | ✓ |
|
||||
@ -125,10 +154,6 @@ Click error names to see an example. Key:
|
||||
| [csvstdinrules](#csvstdinrules) | | | | | |
|
||||
|
||||
|
||||
## Current error messages
|
||||
|
||||
(To update: `make readme`)
|
||||
|
||||
<!-- GENERATED: -->
|
||||
hledger 1.26.99-ga7b920750-20220715 error messages:
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user