#+title: Notes * DONE show errors with ariadne :PROPERTIES: :EFFORT: 10min :END: ** [X] errors should have a generic show() function :PROPERTIES: :EFFORT: 10min :END: :LOGBOOK: CLOCK: [2025-05-03 sam. 18:40]--[2025-05-03 sam. 18:46] => 0:06 :END: ** DONE OSDBError::display() should take a filename and display it alongside the error :LOGBOOK: CLOCK: [2025-05-03 sam. 21:24]--[2025-05-03 sam. 21:28] => 0:04 :END: ** DONE OSDBError::display() should take an input string, to be able to resolve spans inside the error :PROPERTIES: :EFFORT: 10 :END: :LOGBOOK: CLOCK: [2025-05-03 sam. 21:28]--[2025-05-03 sam. 21:30] => 0:02 :END: ** DONE OSDBError::display() should generate ariadne errors and return those :PROPERTIES: :EFFORT: 10 :END: :LOGBOOK: CLOCK: [2025-05-03 sam. 21:30]--[2025-05-03 sam. 21:50] => 0:20 :END: ** DONE error display should include a span to show where the error occured :PROPERTIES: :EFFORT: 10 :END: :LOGBOOK: CLOCK: [2025-05-03 sam. 21:51]--[2025-05-03 sam. 21:54] => 0:03 :END: ** DONE deduplicate error display code :PROPERTIES: :EFFORT: 10 :END: :LOGBOOK: CLOCK: [2025-05-03 sam. 21:55]--[2025-05-03 sam. 22:01] => 0:06 :END: * DONE snapshot testing ** DONE Find the snapshot testing library :PROPERTIES: :EFFORT: 10min :END: :LOGBOOK: CLOCK: [2025-05-03 sam. 18:48]--[2025-05-03 sam. 18:49] => 0:01 :END: ** DONE document myself on insta, the snapshot testing library :PROPERTIES: :EFFORT: 10min :END: :LOGBOOK: CLOCK: [2025-05-03 sam. 18:49]--[2025-05-03 sam. 18:57] => 0:08 :END: ** DONE insta test startup message :PROPERTIES: :EFFORT: 10min :END: :LOGBOOK: CLOCK: [2025-05-03 sam. 19:00]--[2025-05-03 sam. 19:05] => 0:05 :END: ** DONE insta test insert :PROPERTIES: :EFFORT: 10min :END: :LOGBOOK: CLOCK: [2025-05-03 sam. 21:10]--[2025-05-03 sam. 21:14] => 0:04 CLOCK: [2025-05-03 sam. 19:08]--[2025-05-03 sam. 19:21] => 0:13 :END: *** DONE all display of command results must be made via a display method on CommandExecutionResult :PROPERTIES: :EFFORT: 10min :END: :LOGBOOK: CLOCK: [2025-05-03 sam. 21:02]--[2025-05-03 sam. 21:09] => 0:07 :END: ** DONE insta test select :PROPERTIES: :EFFORT: 10min :END: :LOGBOOK: CLOCK: [2025-05-03 sam. 21:15]--[2025-05-03 sam. 21:16] => 0:01 :END: ** DONE insta test .exit :PROPERTIES: :EFFORT: 10min :END: :LOGBOOK: CLOCK: [2025-05-03 sam. 21:16]--[2025-05-03 sam. 21:18] => 0:02 :END: ** DONE insta test wrong statement :PROPERTIES: :EFFORT: 10min :END: :LOGBOOK: CLOCK: [2025-05-03 sam. 21:18]--[2025-05-03 sam. 21:21] => 0:03 :END: ** DONE insta test wrong meta-command :PROPERTIES: :EFFORT: 10min :END: :LOGBOOK: CLOCK: [2025-05-03 sam. 21:21]--[2025-05-03 sam. 21:22] => 0:01 :END: * DONE exit message is not displayed when pressing C-d :bug: :PROPERTIES: :EFFORT: 10min :END: :LOGBOOK: CLOCK: [2025-05-03 sam. 19:06]--[2025-05-03 sam. 19:07] => 0:01 :END: * TODO switch statement parsing to more extensible token-based algorithm :PROPERTIES: :EFFORT: 10 :END: :LOGBOOK: CLOCK: [2025-05-04 dim. 12:07]--[2025-05-04 dim. 12:10] => 0:03 :END: ** TODO use tokens to parse meta-commands :PROPERTIES: :EFFORT: 10 :END: :LOGBOOK: CLOCK: [2025-05-04 dim. 12:10]--[2025-05-04 dim. 12:22] => 0:12 :END: *** DONE recognize meta-commands as tokens :PROPERTIES: :EFFORT: 10 :END: :LOGBOOK: CLOCK: [2025-05-04 dim. 13:32]--[2025-05-04 dim. 13:35] => 0:03 CLOCK: [2025-05-04 dim. 13:27]--[2025-05-04 dim. 13:32] => 0:05 :END: *** DONE CommandParseError must have a ScanError variant with an Into impl :PROPERTIES: :EFFORT: 10 :END: :LOGBOOK: CLOCK: [2025-05-04 dim. 13:35]--[2025-05-04 dim. 13:38] => 0:03 :END: *** DONE ScanErrors must be convertible to ariadne reports :PROPERTIES: :EFFORT: 10 :END: **** DONE Remove the CommandParseError Display implementation :PROPERTIES: :EFFORT: 10 :END: :LOGBOOK: CLOCK: [2025-05-04 dim. 13:38]--[2025-05-04 dim. 13:44] => 0:06 :END: **** DONE implement OSDBError for ScanError :PROPERTIES: :EFFORT: 10 :END: :LOGBOOK: CLOCK: [2025-05-04 dim. 13:45]--[2025-05-04 dim. 13:56] => 0:11 :END: *** TODO remove token types which are not recognized at all :PROPERTIES: :EFFORT: 10 :END: *** TODO parse tokens into meta-commands :PROPERTIES: :EFFORT: 10 :END: ** TODO use tokens to parse statements :PROPERTIES: :EFFORT: :END: