diff --git a/collects/macro-debugger/syntax-browser/prefs.rkt b/collects/macro-debugger/syntax-browser/prefs.rkt index ec9c0ad..fb4dce2 100644 --- a/collects/macro-debugger/syntax-browser/prefs.rkt +++ b/collects/macro-debugger/syntax-browser/prefs.rkt @@ -15,11 +15,13 @@ (preferences:set-default 'SyntaxBrowser:Height 600 number?) (preferences:set-default 'SyntaxBrowser:PropertiesPanelPercentage 1/3 number?) (preferences:set-default 'SyntaxBrowser:PropertiesPanelShown #t boolean?) +(preferences:set-default 'SyntaxBrowser:DrawArrows? #t boolean?) (define pref:width (pref:get/set 'SyntaxBrowser:Width)) (define pref:height (pref:get/set 'SyntaxBrowser:Height)) (define pref:props-percentage (pref:get/set 'SyntaxBrowser:PropertiesPanelPercentage)) (define pref:props-shown? (pref:get/set 'SyntaxBrowser:PropertiesPanelShown)) +(define pref:draw-arrows? (pref:get/set 'SyntaxBrowser:DrawArrows?)) (define pref:invert-colors? (pref:get/set 'framework:white-on-black?)) @@ -68,7 +70,8 @@ (width pref:width) (height pref:height) (props-percentage pref:props-percentage) - (props-shown? pref:props-shown?)) + (props-shown? pref:props-shown?) + (draw-arrows? pref:draw-arrows?)) (super-new))) diff --git a/collects/macro-debugger/syntax-browser/widget.rkt b/collects/macro-debugger/syntax-browser/widget.rkt index 8b36dc7..085f966 100644 --- a/collects/macro-debugger/syntax-browser/widget.rkt +++ b/collects/macro-debugger/syntax-browser/widget.rkt @@ -157,15 +157,16 @@ binders)) (send display refresh) ;; Make arrows (& billboards, when enabled) - (for ([id (send/i range range<%> get-identifier-list)]) - (define definite? (hash-ref definite-table id #f)) - (when #f ;; DISABLED - (add-binding-billboard start range id definite?)) - (for ([binder (get-binders id)]) - (for ([binder-r (send/i range range<%> get-ranges binder)]) - (for ([id-r (send/i range range<%> get-ranges id)]) - (add-binding-arrow start binder-r id-r definite?)))))) - (void))) + (when (send config get-draw-arrows?) + (for ([id (send/i range range<%> get-identifier-list)]) + (define definite? (hash-ref definite-table id #f)) + (when #f ;; DISABLED + (add-binding-billboard start range id definite?)) + (for ([binder (get-binders id)]) + (for ([binder-r (send/i range range<%> get-ranges binder)]) + (for ([id-r (send/i range range<%> get-ranges id)]) + (add-binding-arrow start binder-r id-r definite?)))))) + (void)))) (define/private (add-binding-arrow start binder-r id-r definite?) (if definite? diff --git a/collects/macro-debugger/view/frame.rkt b/collects/macro-debugger/view/frame.rkt index 8bacc77..180dad6 100644 --- a/collects/macro-debugger/view/frame.rkt +++ b/collects/macro-debugger/view/frame.rkt @@ -58,7 +58,8 @@ (send/i config config<%> set-width w) (send/i config config<%> set-height h) (unless (and (= w0 w) (= h0 h)) - (send/i widget widget<%> update/preserve-view)) + (when (send/i config config<%> get-refresh-on-resize?) + (send/i widget widget<%> update/preserve-view))) (set!-values (w0 h0) (values w h))) (define warning-panel @@ -192,15 +193,23 @@ (menu-option/notify-box extras-menu "Highlight redex/contractum" (get-field highlight-foci? config)) + #| (menu-option/notify-box extras-menu "Highlight frontier" (get-field highlight-frontier? config)) + |# (menu-option/notify-box extras-menu "Include renaming steps" (get-field show-rename-steps? config)) (menu-option/notify-box extras-menu "One term at a time" (get-field one-by-one? config)) + (menu-option/notify-box extras-menu + "Refresh on resize" + (get-field refresh-on-resize? config)) + (menu-option/notify-box extras-menu + "Draw binding arrows" + (get-field draw-arrows? config)) (menu-option/notify-box extras-menu "Extra navigation" (get-field extra-navigation? config))) diff --git a/collects/macro-debugger/view/interfaces.rkt b/collects/macro-debugger/view/interfaces.rkt index e038725..efd20cb 100644 --- a/collects/macro-debugger/view/interfaces.rkt +++ b/collects/macro-debugger/view/interfaces.rkt @@ -4,7 +4,9 @@ (provide (all-defined-out)) (define-interface config<%> (sb:config<%>) - ((sb:methods:notify macro-hiding-mode + ((sb:methods:notify draw-arrows? + refresh-on-resize? + macro-hiding-mode show-hiding-panel? identifier=? highlight-foci? diff --git a/collects/macro-debugger/view/prefs.rkt b/collects/macro-debugger/view/prefs.rkt index 237d86a..baf5710 100644 --- a/collects/macro-debugger/view/prefs.rkt +++ b/collects/macro-debugger/view/prefs.rkt @@ -14,6 +14,8 @@ (preferences:set-default 'MacroStepper:Frame:Height 600 number?) (preferences:set-default 'MacroStepper:PropertiesShown? #f boolean?) (preferences:set-default 'MacroStepper:PropertiesPanelPercentage 1/3 number?) +(preferences:set-default 'MacroStepper:DrawArrows? #t boolean?) + (preferences:set-default 'MacroStepper:MacroHidingMode "Standard" string?) (preferences:set-default 'MacroStepper:ShowHidingPanel? #t boolean?) (preferences:set-default 'MacroStepper:IdentifierComparison "bound-identifier=?" string?) @@ -27,11 +29,14 @@ (preferences:set-default 'MacroStepper:SplitContext? #f boolean?) (preferences:set-default 'MacroStepper:MacroStepLimit 40000 (lambda (x) (or (eq? x #f) (exact-positive-integer? x)))) +(preferences:set-default 'MacroStepper:RefreshOnResize? #t boolean?) (define pref:width (pref:get/set 'MacroStepper:Frame:Width)) (define pref:height (pref:get/set 'MacroStepper:Frame:Height)) (define pref:props-shown? (pref:get/set 'MacroStepper:PropertiesShown?)) (define pref:props-percentage (pref:get/set 'MacroStepper:PropertiesPanelPercentage)) +(define pref:draw-arrows? (pref:get/set 'MacroStepper:DrawArrows?)) + (define pref:macro-hiding-mode (pref:get/set 'MacroStepper:MacroHidingMode)) (define pref:show-hiding-panel? (pref:get/set 'MacroStepper:ShowHidingPanel?)) (define pref:identifier=? (pref:get/set 'MacroStepper:IdentifierComparison)) @@ -44,7 +49,7 @@ (define pref:debug-catch-errors? (pref:get/set 'MacroStepper:DebugCatchErrors?)) (define pref:split-context? (pref:get/set 'MacroStepper:SplitContext?)) (define pref:macro-step-limit (pref:get/set 'MacroStepper:MacroStepLimit)) - +(define pref:refresh-on-resize? (pref:get/set 'MacroStepper:RefreshOnResize?)) (define macro-stepper-config-base% (class* prefs-base% (config<%>) @@ -58,6 +63,7 @@ (height pref:height) (props-percentage pref:props-percentage) (props-shown? pref:props-shown?) + (draw-arrows? pref:draw-arrows?) (macro-hiding-mode pref:macro-hiding-mode) (show-hiding-panel? pref:show-hiding-panel?) (identifier=? pref:identifier=?) @@ -68,7 +74,8 @@ (one-by-one? pref:one-by-one?) (extra-navigation? pref:extra-navigation?) (debug-catch-errors? pref:debug-catch-errors?) - (split-context? pref:split-context?)) + (split-context? pref:split-context?) + (refresh-on-resize? pref:refresh-on-resize?)) (super-new))) (define macro-stepper-config/prefs%