flexible UI component model aka iframes++, panes for side-by-side editor, stacked/split terminals
Wednesday November 10, 2021

Uncompressed File Size (Javascript):

Service Worker  3.21 MB
Editor          1.25 MB
Terminal         254 KB
Tree             157 KB

-----------------------
Total          4.871 MB

Thursday March 16, 2023
what's left?
- layout module is mostly done
	- just need to start using it
	- some issues left
- think about extensibility
	- plugins
	- store
- move to next version & repeat

How long has it been since 0.4.5?
  • new layout / index
    • multiple panes next to each other
    • drag panes to re-order
    • drag file from tree
    • index listens for events from each pane
    • cleaner loader
    • terminal status bar
    • tree status bar
    • editor status bar
  • select from command palette broken for tree and editor
  • hotkey does not show project search (but action bar does)

  • basic, two-editor scenario
    • side-by-side
    • command to enter this scenario
    • command to exit this scenario
  • basic two-terminal scenario
    • one on top of the other
    • command to enter this scenario
    • command to exit this scenario

candidate for do-it-later

  • more complex scenarios
    • dynamic panes through drag and drop
    • all arrangements are saved properly
    • saved to root settings file?
    • this is not as necessary as the items above
    • there is already a great deal of complexity for items above
    • this is potentially much more complex than the items above
  • tree running from iframe
    • should handle hotkeys (control-p, for example)
    • patterned after terminal in as much as it makes sense
    • all things work (write tests?)
  • editor running from iframe
    • files with same name but different parent should show different tabs
    • are all triggers needed in editor/events.js?
    • all things work (write tests?)
    • should handle hotkeys (control-p, for example)
    • error: fiugd/beta/service-worker/worker.rewrite.js/worker.rewrite.js « not right…
      • this probably has to do with how files are saved to SW state, not sure
      • modules/state.js could not handle name with full path
    • fix a ton of issues related to codemirror handlers
    • patterned after terminal in as much as it makes sense
    • connect to service worker (or overall app)
      • internal messages go to outside
      • external messages come to inside
    • insert editor iframe into app
      • editor build
      • dist in service manifest
    • bring codemirror deps into editor folder
      • as a stop-gap, this is handled by build
      • will cleanup later
    • tiggers have proper namespace
    • reduce the need for:
      • state.js
      • Types.js
      • Listeners.js
    • a single events handling file
    • break editor.js and editorTabs.js up
      • components get modularized and referenced
      • event attachment should congeal from there
    • make editorEvents and editorTabEvents super simple
      • bring listeners into editor.js and editorTabs.js
      • figure out how to cope with this ^^^ later
    • why do editor tabs not work?
    • add status bar to editor
  • theme-related css

  • move to github.com/fiugd
  • horizontal scroll issues

  • uml sequence diagram support
    • syntax and template
    • todo: use frontmatter to define syntax/template
      • plantuml + js-sequence-diagram
      • mermaid
      • nomnoml
      • dotuml, yuml, etc (search vscode extensions for “uml”)
    • todo: convert between different syntaxes
  • yaml mode improvements

events & UI

listen: for events coming from outside trigger: to self & outside

  1. components
    • render UI
    • expose their handlers
  2. event modules declare event connections
  3. main component
    • arranges/instantiates rendering
    • connects events with instances