Error messages configuration
Compile-time error messages can be tweaked either passing -D... properties to the JVM hosting the compiler (or BSP) or using environment variables.
Parameters
Code format
Key: -Diron.codeFormat or IRON_CODE_FORMAT
Default: short
Change the format used to display the code in compile-time error messages. Each format correspond to a Printer.
| Value | Printer | 
|---|---|
full | 
    TreeCode | 
full_colored | 
    TreeCodeAnsi | 
short | 
    TreeShortCode | 
structure | 
    TreeStructure | 
Short messages
Key: -Diron.shortMessages or IRON_SHORT_MESSAGES
Default: false
Use short one-line error messages or detailled ones. Short messages can be useful for IDE lenses (like Error Lens in VSCode).
Example:
val x: Int :| Positive = -5
  
 true
Should be strictly positive: -5
   
  false
-- Constraint Error --------------------------------------------------------
Could not satisfy a constraint for type scala.Int.
Value: -5
Message: Should be strictly positive
----------------------------------------------------------------------------
   
  Short reasons
Key: -Diron.shortReasons or IRON_SHORT_REASONS
Default: true
Use more concise reasons when a value cannot be refined at compile-time. Full messages can be useful when debugging a custom constraint
true
-- Constraint Error --------------------------------------------------------
Cannot refine value at compile-time because the predicate cannot be evaluated.
This is likely because the condition or the input value isn't fully inlined.
To test a constraint at runtime, use one of the `refine...` extension methods.
Inlined input: a
Inlined condition: (((a.>(0.0): Boolean): Boolean).&&((a.<(100.0): Boolean)): Boolean)
Message: Should be strictly positive & Should be less than 100
Reason: 
- Term not inlined: a:
  - at main/src/io/github/iltotore/iron/constraint/any.scala:[2990..2995]
  - at main/src/io/github/iltotore/iron/macros/intersection.scala:[903..908]
----------------------------------------------------------------------------
   
  false
-- Constraint Error --------------------------------------------------------
Cannot refine value at compile-time because the predicate cannot be evaluated.
This is likely because the condition or the input value isn't fully inlined.
To test a constraint at runtime, use one of the `refine...` extension methods.
Inlined input: a
Inlined condition: (((a.>(0.0): Boolean): Boolean).&&((a.<(100.0): Boolean)): Boolean)
Message: Should be strictly positive & Should be less than 100
Reason: Non-inlined boolean and. The following patterns are evaluable at compile-time:
- <inlined value> && <inlined value>
- <inlined value> && false
- false && <inlined value>
Left member:
  Some arguments of `>` are not inlined:
  Arg 0:
    Term not inlined: a
Right member:
  Some arguments of `<` are not inlined:
  Arg 0:
    Term not inlined: a
---------------------------------------------------------------------------
   
  In this article