A quick file viewer for the Symplasma ecosystem.
Some files need processing before they can be viewed by a human e.g. aichat session files are stored as yaml containing snippets of markdown. They are much more readable if rendered directly into a single markdown stream.
Secondarily, this is a testbed for features that we might want to integrate into the preview pane of Retsyn. The current plan is to turn this into an egui widget so it can be used directly in Retsyn.
- Processing files to make them suitable for viewing
- AIChat session files
- Gemini REST format sessions
- WebScrapBook multi-file archives
- Markdown rendering
- Standard markdown elements
- Nested lists
- Task lists
- Partially completed task list items
- Search highlighting
- Showing a count of matches
- Moving forward and backward between search matches
- Automatically scroll the first match into view
- Automatically scroll nearest match into view when the query changes
- Toggle-able search options
- Ignoring stopwords
- Substring vs whole word matching
- Phrase based matching
- Matching on word stems
- Fuzzy matching with adjustable threshold
- Vector/embedding matches, probably for whole phrases, maybe for individual words i.e. synonyms
- Find equivalent hits in other languages
- Keybindings
- Pressing
Esconce clears the current query - Pressing
Escwith an empty query exits the app -
Ctrl-q/Ctrl-wshould exit the app -
Ctrl-nshould move to the next file -
Ctrl-pshould move to the previous file -
Ctrl-ghighlights the next match -
Ctrl-Shift-ghighlights the previous match -
PageDownshould scroll the document contents down -
PageUpshould scroll the document contents up -
Homeshould move to the top of the document -
Endshould move to the bottom of the document
- Pressing