glance/todo.md
2020-12-09 23:53:59 -08:00

2.0 KiB

Todo

GUI Todo Now

Non-GUI Todo Now

  • Redesign case icon to avoid non-locality.
  • Move @ pattern circles so that they are on the same side as the variables.
  • Add command line flags for color style, embedding, and whether to draw arrowheads.
  • Add wiki pages discussing: Why a visual language?, History of Glance, How to contribute, Code guide [code style, ...], etc..

GUI Todo Later

  • Connect edges to specific ports
  • Select areas by clicking the vertices of the selection area.
  • Have a way to delete nodes and edges
  • Display the undo state in the app Bug #14
  • Scale based on mouse position
  • Add edge creation to history.
  • Extract out GUI interface code (GTK and GDK) into a module.
  • Refactor to make code extensible (e.g. records of functions instead of enums)
  • Click a button that shows an image of the mouse and keyboard controls in a new window.
  • Consider a way to keep the currentEdge after creating an edge. May be useful where a variable is used mulitple times (e.g. a big struct parameter).
  • Create functions by connecting a second edge to an apply argument port and then selecting the second output (or maybe just the select the output of the function and connect the function up later?)

Testing todos

  • Fix the arrowheads being too big for SyntaxGraph drawings.

Visual todos

  • Use different line styles (e.g. dashed, solid, wavy) in addition to colors

  • Consider improving nested apply icons embedded in case/guard icons.

  • Let lines connect to ports other than the original source

  • Use diagrams to shrink the drawing until icons start overlapping.

  • Make an icon font/library with labeled ports. E.g. the apply icon would have text labels "function", "result", "arg 0", "arg 1", etc.

Translate todos

  • Fix applyComposeScore in Translate.hs not counting expressions that nest via reference. May need to move compose generation to after translate.

  • Add proper RecConstr, and RecUpdate support.

  • Special case for otherwise.

Command line todos

  • Tab completion