;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\300\306!\210\307\310\311\312\313\314\315\316&\210\317\320\321\322\315\310%\210\317\323\324\325\315\310%\210\317\326\327\330\315\310%\210\317\331\332\333\315\310%\210\317\334\335\336\315\310%\210\317\337\340\341\315\310%\207" [require cl-lib haskell-session haskell-process haskell-interactive-mode haskell-font-lock haskell-utils custom-declare-group haskell-debug nil "Settings for debugging support." :link (custom-manual "(haskell-mode)haskell-debug") :group haskell custom-declare-face haskell-debug-warning-face ((t :inherit 'compilation-warning)) "Face for warnings." haskell-debug-trace-number-face ((t :weight bold :background "#f5f5f5")) "Face for numbers in backtrace." haskell-debug-newline-face ((t :weight bold :background "#f0f0f0")) "Face for newlines in trace steps." haskell-debug-keybinding-face ((t :inherit 'font-lock-type-face :weight bold)) "Face for keybindings." haskell-debug-heading-face ((t :inherit 'font-lock-keyword-face)) "Face for headings." haskell-debug-muted-face ((t :foreground "#999")) "Face for muteds."] 8) #@34 Keymap for `haskell-debug-mode'. (defvar haskell-debug-mode-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\311#\210\301\312\313#\210\301\314\315#\210\301\316\317#\210\301\320\321#\210\301\322\323#\210\301\324\325#\210\207" [make-sparse-keymap define-key "g" haskell-debug/refresh "s" haskell-debug/step "t" haskell-debug/trace "d" haskell-debug/delete "b" haskell-debug/break-on-function "a" haskell-debug/abandon "c" haskell-debug/continue "p" haskell-debug/previous "n" haskell-debug/next " " haskell-debug/select] 5) (#$ . 1213)) (defvar haskell-debug-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [haskell-debug-mode-hook variable-documentation put "Hook run after entering Debug mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp haskell-debug-mode-map definition-name haskell-debug-mode] 4) (defvar haskell-debug-mode-map (make-sparse-keymap)) (byte-code "\301\302N\204\303\301\302\304\305!#\210\306\307!\204\303\307\310\311#\210\312\313 !\210\307\302N\204-\303\307\302\304\314!#\210\306\300!\204B\303\300\310\311#\210\315\316\300\317\"\210!\210\300\302N\204P\303\300\302\304\320!#\210\303\311\321\322#\207" [haskell-debug-mode-abbrev-table haskell-debug-mode-map variable-documentation put purecopy "Keymap for `haskell-debug-mode'." boundp haskell-debug-mode-syntax-table definition-name haskell-debug-mode (lambda (#1=#:def-tmp-var) (defvar haskell-debug-mode-syntax-table #1#)) make-syntax-table "Syntax table for `haskell-debug-mode'." (lambda (#1#) (defvar haskell-debug-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `haskell-debug-mode'." derived-mode-parent text-mode] 5) #@248 Major mode for debugging Haskell via GHCi. In addition to any hooks its parent mode `text-mode' might have run, this mode runs the hook `haskell-debug-mode-hook', as the final or penultimate step during initialization. \{haskell-debug-mode-map} (defalias 'haskell-debug-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315 !\204'\316 \317 \"\210\320\f!\211\2035\211\321 =\203;\322\f\323 \"\210\210\324 \325\"\204R =\204R\326 \325C#\210\327 !\210\330\f!\210 )\331\332!\207" [delay-mode-hooks major-mode mode-name haskell-debug-mode-map haskell-debug-mode-syntax-table haskell-debug-mode-abbrev-table make-local-variable t text-mode haskell-debug-mode "Debug" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table run-mode-hooks haskell-debug-mode-hook local-abbrev-table] 5 (#$ . 3032) nil]) #@31 Cache of the tracing history. (defvar haskell-debug-history-cache nil (#$ . 4042)) #@39 Cache of the current step's bindings. (defvar haskell-debug-bindings-cache nil (#$ . 4131)) #@63 Breakpoints need to exist to start stepping. (fn &rest BODY) (defalias 'haskell-debug-with-breakpoints '(macro . #[128 "\300\301\302\303\"BB\207" [if (haskell-debug-get-breakpoints) append ((error "No breakpoints to step into!"))] 6 (#$ . 4229)])) #@63 Modules need to exist to do debugging stuff. (fn &rest BODY) (defalias 'haskell-debug-with-modules '(macro . #[128 "\300\301\302\303\"BB\207" [if (haskell-debug-get-modules) append ((error "No modules loaded!"))] 6 (#$ . 4485)])) #@30 Select whatever is at point. (defalias 'haskell-debug/select #[0 "\300`\301\"\203\300`\301\"\302\303\304\"\303\305\"\"\207\300`\306\"\205)\300`\306\"\302\303\304\"!\262\207" [get-text-property break haskell-debug-highlight plist-get :path :span module] 6 (#$ . 4723) nil]) #@34 Abandon the current computation. (defalias 'haskell-debug/abandon #[0 "\302 \203 \303\304 \305\"\207\306\307!\210\310\211\311 \210\312\313!\207" [haskell-debug-history-cache haskell-debug-bindings-cache haskell-debug-get-breakpoints haskell-process-queue-sync-request haskell-debug-process ":abandon" message "Computation abandoned." nil haskell-debug/refresh error "No breakpoints to step into!"] 4 (#$ . 5009) nil]) #@35 Continue the current computation. (defalias 'haskell-debug/continue #[0 "\302 \203 \303\304 \305\"\207\306\307!\210\310\211\311 \210\312\313!\207" [haskell-debug-history-cache haskell-debug-bindings-cache haskell-debug-get-breakpoints haskell-process-queue-sync-request haskell-debug-process ":continue" message "Computation continued." nil haskell-debug/refresh error "No breakpoints to step into!"] 4 (#$ . 5436) nil]) #@26 Break on function IDENT. (defalias 'haskell-debug/break-on-function #[0 "\300 \203\301\302\303 \"\304\305 \306P\"\210\307\310\"\210\311 \207\312\313!\207" [haskell-debug-get-modules read-from-minibuffer "Function: " haskell-ident-at-point haskell-process-queue-sync-request haskell-debug-process ":break " message "Breaking on function: %s" haskell-debug/refresh error "No modules loaded!"] 5 (#$ . 5866) nil]) #@33 Start stepping EXPR. (fn EXPR) (defalias 'haskell-debug/start-step #[257 "\300!\207" [haskell-debug/step] 3 (#$ . 6287) (byte-code "\300\301!C\207" [read-from-minibuffer "Expression to step through: "] 2)]) #@26 List breakpoint numbers. (defalias 'haskell-debug/breakpoint-numbers #[0 "\300\301\302 \"\211\204 \303\304!\207\303\305\306\307\310#\"\207" [mapcar #[257 "\300\301\302\"!\207" [number-to-string plist-get :number] 5 "\n\n(fn BREAKPOINT)"] haskell-debug-get-breakpoints message "No breakpoints." "Breakpoint(s): %s" mapconcat identity ", "] 7 (#$ . 6502) nil]) #@38 Go to next step to inspect bindings. (defalias 'haskell-debug/next #[0 "\300 \203 \301\302!\207\303\304!\207" [haskell-debug-get-breakpoints haskell-debug-navigate "forward" error "No breakpoints to step into!"] 2 (#$ . 6870) nil]) #@46 Go to previous step to inspect the bindings. (defalias 'haskell-debug/previous #[0 "\300 \203 \301\302!\207\303\304!\207" [haskell-debug-get-breakpoints haskell-debug-navigate "back" error "No breakpoints to step into!"] 2 (#$ . 7109) nil]) #@30 Refresh the debugger buffer. (defalias 'haskell-debug/refresh #[0 "r\301\302 !q\210\303\304\302 !!\210\305`\306 \210\307\310\311\302 !\312Q\313\314#c\210\315 \316 \317 \320 \2047\307\321\313\322#\312\261\210\323#\210\203J\324\"\210\325!\210\326!\266\327c\210d^b)\266\202)\207" [inhibit-read-only haskell-debug-buffer-name haskell-debug-session cd haskell-session-current-dir t erase-buffer propertize "Debugging " haskell-session-name "\n\n" face ((:weight bold)) haskell-debug-get-modules haskell-debug-get-breakpoints haskell-debug-get-context haskell-debug-get-history "You have to load a module to start debugging." haskell-debug-warning-face haskell-debug-insert-bindings haskell-debug-insert-current-context haskell-debug-insert-breakpoints haskell-debug-insert-modules "\n"] 10 (#$ . 7357) nil]) #@33 Delete whatever's at the point. (defalias 'haskell-debug/delete #[0 "\300`\301\"\205-\300`\301\"\302 \210\303\216\304\305\306\307\310\"\"!\205*\311\312 \305\313\307\310\"\"\"\210\314 )\262\207" [get-text-property break haskell-mode-toggle-interactive-prompt-state #[0 "\300\301!\207" [haskell-mode-toggle-interactive-prompt-state t] 2] y-or-n-p format "Delete breakpoint #%d?" plist-get :number haskell-process-queue-sync-request haskell-debug-process ":delete %d" haskell-debug/refresh] 8 (#$ . 8182) nil]) #@23 Trace the expression. (defalias 'haskell-debug/trace #[0 "\300 \203#\301 \203\302\303\304 \"\305\306 \307P\"\210\310\311\"\210\312 \207\313\314!\207\313\315!\207" [haskell-debug-get-modules haskell-debug-get-breakpoints read-from-minibuffer "Expression to trace: " haskell-ident-at-point haskell-process-queue-sync-request haskell-debug-process ":trace " message "Tracing expression: %s" haskell-debug/refresh error "No breakpoints to step into!" "No modules loaded!"] 5 (#$ . 8701) nil]) #@51 Step into the next function. (fn &optional EXPR) (defalias 'haskell-debug/step #[256 "\301 \203\223\301 \302 \303\304 \203\305P\202\306\"\211\307\230\203+\203'\310\311 \207\312\313!\207\314!\211\203;\211\315\316!\210\311 \207\203C\315\317!\207\320 \210\321\216\322\323!\205\221\315\324!\210\325\326 !\210\310:\203t@\262\303\304 \327\330\331\"P\"\210A\262\202Y\266\310:\203\214@\262\332!\210A\262\202x\266\333!)\207\311 \210\334\335!\207" [haskell-debug-bindings-cache haskell-debug-get-breakpoints haskell-debug-get-context haskell-process-queue-sync-request haskell-debug-process ":step " ":step" "not stopped at a breakpoint\n" nil haskell-debug/refresh call-interactively haskell-debug/start-step haskell-debug-parse-stopped-at message "Computation paused." "Computation finished." haskell-mode-toggle-interactive-prompt-state #[0 "\300\301!\207" [haskell-mode-toggle-interactive-prompt-state t] 2] y-or-n-p "Computation completed without breaking. Reload the module and retry?" "Reloading and resetting breakpoints..." haskell-interactive-mode-reset-error haskell-debug-session ":load " plist-get :path haskell-debug-break haskell-debug/step error "No breakpoints to step into!"] 13 (#$ . 9201) nil]) #@26 Get the Haskell session. (defalias 'haskell-debug-session #[0 "\300 \206\301\302!\207" [haskell-session-maybe error "No Haskell session associated with this debug\n buffer. Please just close the buffer and start again."] 2 (#$ . 10451)]) #@26 Get the Haskell session. (defalias 'haskell-debug-process #[0 "\300\301 !\206\n\302\303!\207" [haskell-session-process haskell-session-maybe error "No Haskell session associated with this debug\n buffer. Please just close the buffer and start again."] 2 (#$ . 10702)]) #@62 The debug buffer name for the current session. (fn SESSION) (defalias 'haskell-debug-buffer-name #[257 "\300\301\302!\"\207" [format "*debug:%s*" haskell-session-name] 5 (#$ . 10983)]) #@44 Get the list of breakpoints currently set. (defalias 'haskell-debug-get-breakpoints #[0 "\300\301 \302\"\211\303\230\203 \304\207\305\306\307!\"\207" [haskell-process-queue-sync-request haskell-debug-process ":show breaks" "No active breakpoints.\n" nil mapcar haskell-debug-parse-break-point haskell-debug-split-string] 5 (#$ . 11176)]) #@40 Get the list of modules currently set. (defalias 'haskell-debug-get-modules #[0 "\300\301 \302\"\211\303\230\203 \304\207\305\306\307!\"\207" [haskell-process-queue-sync-request haskell-debug-process ":show modules" "" nil mapcar haskell-debug-parse-module haskell-debug-split-string] 5 (#$ . 11522)]) #@26 Get the current context. (defalias 'haskell-debug-get-context #[0 "\300\301 \302\"\211\303\230?\205\304!\207" [haskell-process-queue-sync-request haskell-debug-process ":show context" "" haskell-debug-parse-context] 3 (#$ . 11832)]) #@23 Get the step history. (defalias 'haskell-debug-get-history #[0 "\301\302 \303\"\211\304\230\206\211\305\230?\205'\211\306\230?\205'\307\310\311\312\313!\"\"\211\211\262\207" [haskell-debug-history-cache haskell-process-queue-sync-request haskell-debug-process ":history" "" "Not stopped at a breakpoint\n" "Empty history. Perhaps you forgot to use :trace?\n" mapcar haskell-debug-parse-history-entry cl-remove-if #[257 "\211\300\230\206 \211\301\230\207" ["" "..."] 3 "\n\n(fn LINE)"] haskell-debug-split-string] 7 (#$ . 12074)]) #@62 Insert a list of bindings. (fn MODULES BREAKPOINTS CONTEXT) (defalias 'haskell-debug-insert-bindings #[771 "\203\300\301\302\"\210\300\303\304\"\210\300\305\306\307#\210\202*\203 \300\305\306\"\210\203*\300\303\304\307#\210\2033\300\310\311\"\210\211\203B\300\312\313\"\210\300\314\315\307#\210\211\203Q\300\316\317\"\210\300\320\321\307#\210\300\322\323\307#\210\324c\207" [haskell-debug-insert-binding "t" "trace an expression" "s" "step into an expression" "b" "breakpoint" t "d" "delete breakpoint" "a" "abandon context" "c" "continue" "p" "previous step" "n" "next step" "g" "refresh" "\n"] 7 (#$ . 12634)]) #@51 Insert the current context. (fn CONTEXT HISTORY) (defalias 'haskell-debug-insert-current-context #[514 "\300\301!\210\203\302\"\210\202\303 \210\304c\207" [haskell-debug-insert-header "Context" haskell-debug-insert-context haskell-debug-insert-debug-finished "\n"] 5 (#$ . 13266)]) #@51 insert the list of breakpoints. (fn BREAKPOINTS) (defalias 'haskell-debug-insert-breakpoints #[257 "\300\301!\210\211\204\302\303!\210\202W\211\304:\203U@\262\305\306\307\310\311\"\"\312\313\314%\315\316!\305\310\317\"\314\314%\315\306\320\310\211\321\"\322\"\310\211 \321\"\323\"#!\324\261\210A\262\202\266\324c\207" [haskell-debug-insert-header "Breakpoints" haskell-debug-insert-muted "No active breakpoints." nil propertize format "%d" plist-get :number face ((:weight bold)) break haskell-debug-muted " - " :module " (%d:%d)" :span :start-line :start-col "\n"] 14 (#$ . 13562)]) #@43 Insert the list of modules. (fn MODULES) (defalias 'haskell-debug-insert-modules #[257 "\300\301!\210\211\204\f\302\303!\207\211\304:\203;@\262\305\306\307\"\310\311\312%\313\314!\305\315\306\316\"!\310#\261\210\317c\210A\262\202\266\304\207" [haskell-debug-insert-header "Modules" haskell-debug-insert-muted "No loaded modules." nil propertize plist-get :module module face ((:weight bold)) haskell-debug-muted " - " file-name-nondirectory :path "\n"] 10 (#$ . 14175)]) #@78 Split GHCi's line-based output, stripping the trailing newline. (fn STRING) (defalias 'haskell-debug-split-string #[257 "\300\301\302#\207" [split-string "\n" t] 5 (#$ . 14668)]) #@33 Parse the context. (fn STRING) (defalias 'haskell-debug-parse-context #[257 "\300\301\"\205\"\302\303\"\304\302\305\"!\306\307\310\307\"\311\310\311\"\257\266\202\207" [string-match "^--> \\(.+\\)\n \\(.+\\)" match-string 1 haskell-debug-parse-stopped-at 2 :name :path plist-get :span] 11 (#$ . 14855)]) #@63 Insert a helpful keybinding. (fn BINDING DESC &optional END) (defalias 'haskell-debug-insert-binding #[770 "\300\301\302#\303\304!\203\305\202\303\306!\261\207" [propertize face haskell-debug-keybinding-face haskell-debug-muted " - " "\n" ", "] 8 (#$ . 15176)]) #@36 Insert a header title. (fn TITLE) (defalias 'haskell-debug-insert-header #[257 "\300\301\302#\303\261\207" [propertize face haskell-debug-heading-face "\n\n"] 5 (#$ . 15453)]) #@55 Insert the context and history. (fn CONTEXT HISTORY) (defalias 'haskell-debug-insert-context #[514 "\203\301\302\303\"\304\305#\306\307!\310\302\311\"!\306\312!\313\261\210\203R\313c\210\314\302\311\"\302\315\"\"c\210\316c\210\302\317\"\320:\203P@\262\321\322\"\313\261\210A\262\2028\266\211\206Z\323!C\211\205d\313c\210\324!\207" [haskell-debug-bindings-cache propertize plist-get :name face ((:weight bold)) haskell-debug-muted " - " file-name-nondirectory :path " (stopped)" "\n" haskell-debug-get-span-string :span "\n\n" :types nil haskell-fontify-as-mode haskell-mode haskell-debug-make-fake-history haskell-debug-insert-history] 8 (#$ . 15638)]) #@101 Insert message that no debugging is happening, but if there is some old history, then display that. (defalias 'haskell-debug-insert-debug-finished #[0 "\203\301\302!\210\303c\210\304!\207\301\305!\207" [haskell-debug-history-cache haskell-debug-insert-muted "Finished debugging." "\n" haskell-debug-insert-history "Not debugging right now."] 2 (#$ . 16325)]) #@36 Insert some muted text. (fn TEXT) (defalias 'haskell-debug-insert-muted #[257 "\300!\301\261\207" [haskell-debug-muted "\n"] 3 (#$ . 16694)]) #@34 Make some muted text. (fn TEXT) (defalias 'haskell-debug-muted #[257 "\300\301\302#\207" [propertize face haskell-debug-muted-face] 5 (#$ . 16845)]) #@43 Parse the logged breakpoint. (fn STRING) (defalias 'haskell-debug-parse-logged #[257 "\211\300\230\203\301\207\211\302\230\203\301\207\303\304\305\"r\211q\210\306\307\"\216c\210eb\210\310\311\312!\210\313`\311\314!S\"\315\316\313`\317 \"!\320\301y\210\321\313`d\"!\257*\207" ["no more logged breakpoints\n" nil "already at the beginning of the history\n" generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205 \302\300!\207" [V0 buffer-name kill-buffer] 2] :path search-forward " at " buffer-substring-no-properties ":" :span haskell-debug-parse-span line-end-position :types haskell-debug-split-string] 11 (#$ . 17002)]) #@128 Parse the location stopped at from the given string. For example: Stopped at /home/foo/project/src/x.hs:6:25-36 (fn STRING) (defalias 'haskell-debug-parse-stopped-at #[257 "\300\301\"\211\205!\302\303\304\"\305\306\303\307\"!\310\311\312O!A\257\207" [string-match "Stopped at \\([^:]+\\):\\(.+\\)\n?" :path match-string 1 :span haskell-debug-parse-span 2 :types haskell-debug-split-string nil] 11 (#$ . 17649)]) #@60 Get the string from the PATH and the SPAN. (fn PATH SPAN) (defalias 'haskell-debug-get-span-string #[514 "\300 \301\302\"\216\303!\210\212eb\210\304\305\"Sy\210\304\306\"Su\210`)\212eb\210\304\307\"Sy\210\304\310\"u\210`){)\207" [current-window-configuration make-closure #[0 "\301\300!\207" [V0 set-window-configuration] 2] find-file plist-get :start-line :start-col :end-line :end-col] 7 (#$ . 18080)]) #@41 Make a fake history item. (fn CONTEXT) (defalias 'haskell-debug-make-fake-history #[257 "\300\301\302\303\302\"\304\303\304\"\257\207" [:index -1 :path plist-get :span] 9 (#$ . 18498)]) #@39 Insert tracing HISTORY. (fn HISTORY) (defalias 'haskell-debug-insert-history #[257 "\211G\300:\2039@\262\301\302\303\"\302\304\"\"\305\306\307\"\310\311#\312\313\302\304\"\314#\315\261\210S\262\210A\262\202\266\300\207" [nil haskell-debug-get-span-string plist-get :path :span propertize format "%4d" face haskell-debug-trace-number-face " " haskell-debug-preview-span t "\n"] 11 (#$ . 18695)]) #@192 Parse a source span from a string. Examples: (5,1)-(6,37) 6:25-36 5:20 People like to make other people's lives interesting by making variances in source span notation. (fn STRING) (defalias 'haskell-debug-parse-span #[257 "\300\301\"\203)\302\303\304\305\"!\306\303\304\307\"!\310\303\304\305\"!\311\303\304\312\n\"!\257\207\300\313\"\203R\302\303\304\305\"!\306\303\304\307\"!\310\303\304\305\"!\311\303\304\307\n\"!\257\207\300\314\"\203{\302\303\304\305\"!\306\303\304\307\"!\310\303\304\312\"!\311\303\304\315\n\"!\257\207\316\317\"\207" [string-match "\\([0-9]+\\):\\([0-9]+\\)-\\([0-9]+\\)" :start-line string-to-number match-string 1 :start-col 2 :end-line :end-col 3 "\\([0-9]+\\):\\([0-9]+\\)" "(\\([0-9]+\\),\\([0-9]+\\))-(\\([0-9]+\\),\\([0-9]+\\))" 4 error "Unable to parse source span from string: %s"] 12 (#$ . 19117)]) #@88 Make a one-line preview of the given expression. (fn SPAN STRING &optional COLLAPSED) (defalias 'haskell-debug-preview-span #[770 "\300\301\302\"r\211q\210\303\304\"\216\305 \210c\210\306\307\"\310U\204\"\311ed\312#\210\313\314!\203.\314 \210\2021\315 \210\306\307\"\310U\204@\311ed\316#\210eb\210\203U\317\320\321\322\323\324#ed{#\202W\325 *\207" [generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205 \302\300!\207" [V0 buffer-name kill-buffer] 2] haskell-mode plist-get :start-col 0 indent-rigidly 1 fboundp font-lock-ensure font-lock-fontify-buffer -1 replace-regexp-in-string "\n[ ]*" propertize " " face haskell-debug-newline-face buffer-string] 10 (#$ . 19996)]) #@37 Start the debug mode. (fn SESSION) (defalias 'haskell-debug-start #[257 "\301\302!\210\303 \207" [buffer-read-only t haskell-session-assign haskell-debug/refresh] 3 (#$ . 20695)]) #@60 Start the debugger for the current Haskell (GHCi) session. (defalias 'haskell-debug #[0 "\301 \302\303!!\210\304=?\205\304 \210\305!\207" [major-mode haskell-debug-session switch-to-buffer-other-window haskell-debug-buffer-name haskell-debug-mode haskell-debug-start] 4 (#$ . 20884) nil]) #@57 Set BREAK breakpoint in module at line/col. (fn BREAK) (defalias 'haskell-debug-break #[257 "\300\301 \302\303\304\305\"\304\211\306\"\307\"\304\211\306\"\310\"$\"\207" [haskell-process-queue-without-filters haskell-debug-process format ":break %s %s %d" plist-get :module :span :start-line :start-col] 11 (#$ . 21184)]) #@60 Navigate in DIRECTION "back" or "forward". (fn DIRECTION) (defalias 'haskell-debug-navigate #[257 "\301\302 \303P\"\304!\211\211\204\305\306\"\210\210\307 \207" [haskell-debug-bindings-cache haskell-process-queue-sync-request haskell-debug-process ":" haskell-debug-parse-logged message "No more %s results!" haskell-debug/refresh] 6 (#$ . 21517)]) #@62 Does the session have a debugging buffer open? (fn SESSION) (defalias 'haskell-debug-session-debugging-p #[257 "\300\301!!??\207" [get-buffer haskell-debug-buffer-name] 4 (#$ . 21879)]) #@55 Highlight the file at span. (fn PATH &optional SPAN) (defalias 'haskell-debug-highlight #[513 "\300\301 \302 \"\303\304\305#\210r\203#\306 \307\310\"\216\311!\210p)\262\202(\311!\210pq\210\205W\300\212eb\210\312\313\"Sy\210\312\314\"Su\210`)\212eb\210\312\315\"Sy\210\312\316\"u\210`)\"\211\203a\303\304\317#\210\320\321!\210\211\203m\322!\210\322!\262)\207" [make-overlay line-beginning-position line-end-position overlay-put face ((:background "#eee")) current-window-configuration make-closure #[0 "\301\300!\207" [V0 set-window-configuration] 2] find-file plist-get :start-line :start-col :end-line :end-col ((:background "#eee")) sit-for 0.5 delete-overlay] 8 (#$ . 22073)]) #@37 Parse a history entry. (fn STRING) (defalias 'haskell-debug-parse-history-entry #[257 "\300\301\"\203$\302\303\304\305\"!\306\304\307\"\310\304\311\"\312\313\304\314\n\"!\257\207\315\316\"\207" [string-match "^\\([-0-9]+\\)[ ]+:[ ]+\\([A-Za-z0-9_':]+\\)[ ]+(\\([^:]+\\):\\(.+?\\))$" :index string-to-number match-string 1 :name 2 :path 3 :span haskell-debug-parse-span 4 error "Unable to parse history entry: %s"] 12 (#$ . 22780)]) #@154 Parse a module and path. For example: X ( /home/foo/X.hs, interpreted ) Main ( /home/foo/X.hs, /home/foo/X.o ) (fn STRING) (defalias 'haskell-debug-parse-module #[257 "\300\301\"\203\302\303\304\"\305\303\306\"F\207\307\310\"\207" [string-match "\\([^ ]+\\)[ ]+( \\([^ ]+?\\), [/a-zA-Z0-9.]+ )$" :module match-string 1 :path 2 error "Unable to parse module from string: %s"] 7 (#$ . 23229)]) #@133 Parse a breakpoint number, module and location from a string. For example: [13] Main /home/foo/src/x.hs:(5,1)-(6,37) (fn STRING) (defalias 'haskell-debug-parse-break-point #[257 "\300\301\"\203$\302\303\304\305\"!\306\304\307\"\310\304\311\"\312\313\304\314\n\"!\257\207\315\316\"\207" [string-match "^\\[\\([0-9]+\\)\\] \\([^ ]+\\) \\([^:]+\\):\\(.+\\)$" :number string-to-number match-string 1 :module 2 :path 3 :span haskell-debug-parse-span 4 error "Unable to parse breakpoint from string: %s"] 12 (#$ . 23664)]) (provide 'haskell-debug)