Bugs:
- Fix local attribute types (they are missing now)
Short term:
- Make git & github repositories; fix project structure & split modules; use GtkDrawArea
- Add port/circle for each child node and appropriate spacing.
- Add local variables with one port on top and one port at the bottom.
- Proper layout.
- Parse a-terms and extract dependencies (consider using UUAGC)
- Add selection menu to select other nonterminals and productions
- Bug: Fix terminals and local variables
- Make implicit connections visually distinct (light, dotted, thin)
- Layout local attributes:
- Move downward attributes to the left side
- Multiple layers of local variables
- Filtering the display attributes:
- Hide copy rules only visually (Transitive closure should still include the copy rule dependencies)
- Popup window that can stay open besides main window.
- Global list of attributes and not per production. Maybe grouped into projects.
- Transitive dependencies toggle button
- Attributes interaction:
- For blue attributes, show type and location
- For orange attributes, show only the type
- Open window for source code (when clicked) and refresh contents
- Flip left local attributes
- Horizontal scrolling when productions are too large
- Add arrow heads to indicate direction (make blue disks into triangles)
- Filter window extras:
- Transitive dependencies depth slider
- "Selected production only"
- Better vertical alignment of trapezoids (currently, they are centered)
- Improve bezier curves
- Hide all local attributes toggle
Future work:
- Show node self disks (maybe also for locals) if they're used
- Pretty print with wrapping and indentation in code window
- Expand/collapse all for the side bar
- Search in side bar (is already present, but not satisfactory)
- Search bar at top of filter window
- In filter window highlight on hover and also highlight transitive dependencies if enabled
- Hide locals if they are not used (with fixed point iteration)
- Project files (open file / add file) save filters
- Ordering attributes
- Smart filters / heuristic grouping
- Persistance
- Limit maximum number of visable attributes so that trapezoids never overlap
- Indirect dependency analysis
- Open multiple files at the same time (workaround: include all in one .ag file)
- Drag local attributes
- Flip local attributes (with right-click maybe?)