;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (byte-code "\300\301!\210\300\302!\210\300\303!\210\304\305\306\307\310\301\311\312&\207" [require matlab-shell gud eieio custom-declare-variable matlab-shell-debug-tooltips-p nil "*Enable tooltips displaying data values when at the K>> prompt.\nDisable this option if the tooltips are too slow in your setup." :group :type boolean] 8) #@40 Non-nil if MATLAB has a K>> prompt up. (defvar gud-matlab-debug-active nil (#$ . 424)) #@63 Hooks run when MATLAB detects a K>> prompt after a >> prompt. (defvar gud-matlab-debug-activate-hook nil (#$ . 517)) #@63 Hooks run when MATLAB detects a >> prompt after a K>> prompt. (defvar gud-matlab-debug-deactivate-hook nil (#$ . 640)) #@48 Toolbar keymap used when in MATLAB debug mode. (defvar gud-matlab-tool-bar-map nil (#$ . 765)) #@65 Define CMD to be a GUD command that works w/ shell or netshell. (defalias 'matlab-at-fcn '(macro . #[(cmd) "\301\302\303\304\305BB\306BB\301\307\310\311\312BBD\313BBBF\207" [cmd if (matlab-shell-active-p) gud-call concat ("%%") (arg) (matlab-netshell-active-p) matlab-netshell-eval gud-format-command (arg) ((error "No MATLAB shell active"))] 9 (#$ . 866)])) #@48 Define CMD forms to be sent to a MATLAB shell. (defalias 'matlab-gud-fcn '(macro . #[(cmd) "\301\302\303D\304BBB\207" [cmd if gud-matlab-debug-active matlab-at-fcn ((error "MATLAB debugging not active"))] 4 (#$ . 1233)])) #@63 Enable GUD features for `matlab-shell' in the current buffer. (defalias 'matlab-shell-mode-gud-enable-bindings #[nil "\306\307!\204\n\310\311!\210\312\313\314\"\210\315\316\313\"\210\317\320\321\"\313\"\210\312\322\323\"\210\315\324\322\"\210\317\320\325\"\322\"\210\312\326\327\"\210\315\330\326\"\210\317\320\331\"\326\"\210\312\332\333\"\210\315\334\332\"\210\317\320\335\"\332\"\210\312\336\337\"\210\315\340\336\"\210\317\320\341\"\336\"\210\312\342\343\"\210\315\344\342\"\210\317\320\345\"\342\"\210\312\346\347\"\210\315\350\346\"\210\317\320\351\"\346\"\210\312\352\353\"\210\315\354\352\"\210\317\320\355\"\352\"\210\312\356\357\"\210\315\360\356\"\210\317\320\361\"\356\"\210\312\362\363\"\210\315\364\362\"\210\317\320\365\"\362\"\210\312\366\367\"\210\315\370\366\"\210\317\320\371\"\366\"\210 \203\367\372 \373\374\211\203\362\f@\375 @ A\n $\210\fA\211\204\337*\n)@\306\376!\203\376 \210\377\201A!\205\201B\201A!\207" [gud-key-prefix window-system map x --dolist-tail-- matlab-mode-map fboundp gud-def error "Your Emacs is missing `gud-def' which means matlab-shell won't work correctly. Stopping" defalias gud-break #[#1=(arg) "?\205\302 \203\303\304 \"\207\305 \203\306\307\310 \"!\207\311\312!\207" [gud-running arg matlab-shell-active-p gud-call "ebstop in %d%f at %l%%" matlab-netshell-active-p matlab-netshell-eval gud-format-command "ebstop in %d%f at %l" error #2="No MATLAB shell active"] 4 "Set breakpoint at current line." #3="p"] local-set-key "" global-set-key vconcat "" gud-remove #[#1# "?\205\302 \203\303\304 \"\207\305 \203\306\307\310 \"!\207\311\312!\207" [gud-running arg matlab-shell-active-p gud-call "ebclear in %d%f at %l%%" matlab-netshell-active-p matlab-netshell-eval gud-format-command "ebclear in %d%f at %l" error #2#] 4 "Remove breakpoint at current line." #3#] "" "" gud-step #[#1# "?\205& \203#\303 \203\304\305\n\"\207\306 \203\307\310\311\n\"!\207\312\313!\207\312\314!\207" [gud-running gud-matlab-debug-active arg matlab-shell-active-p gud-call "dbstep in%%" matlab-netshell-active-p matlab-netshell-eval gud-format-command "dbstep in" error #2# #4="MATLAB debugging not active"] 4 "Step one source line, possibly into a function." #3#] "" "" gud-next #[#1# "?\205& \203#\303 \203\304\305\n\"\207\306 \203\307\310\311\n\"!\207\312\313!\207\312\314!\207" [gud-running gud-matlab-debug-active arg matlab-shell-active-p gud-call "dbstep %p%%" matlab-netshell-active-p matlab-netshell-eval gud-format-command "dbstep %p" error #2# #4#] 4 "Step over one source line." #3#] "" "" gud-cont #[#1# "?\205& \203#\303 \203\304\305\n\"\207\306 \203\307\310\311\n\"!\207\312\313!\207\312\314!\207" [gud-running gud-matlab-debug-active arg matlab-shell-active-p gud-call "dbcont%%" matlab-netshell-active-p matlab-netshell-eval gud-format-command "dbcont" error #2# #4#] 4 "Continue with display." #3#] "" "" gud-stop-subjob #[#1# "?\205& \203#\303 \203\304\305\n\"\207\306 \203\307\310\311\n\"!\207\312\313!\207\312\314!\207" [gud-running gud-matlab-debug-active arg matlab-shell-active-p gud-call "dbquit%%" matlab-netshell-active-p matlab-netshell-eval gud-format-command "dbquit" error #2# #4#] 4 "Quit debugging." #3#] "" "" gud-finish #[#1# "?\205& \203#\303 \203\304\305\n\"\207\306 \203\307\310\311\n\"!\207\312\313!\207\312\314!\207" [gud-running gud-matlab-debug-active arg matlab-shell-active-p gud-call "dbstep out%%" matlab-netshell-active-p matlab-netshell-eval gud-format-command "dbstep out" error #2# #4#] 4 "Finish executing current function." #3#] "" "" gud-up #[#1# "?\205& \203#\303 \203\304\305\n\"\207\306 \203\307\310\311\n\"!\207\312\313!\207\312\314!\207" [gud-running gud-matlab-debug-active arg matlab-shell-active-p gud-call "dbup%%" matlab-netshell-active-p matlab-netshell-eval gud-format-command "dbup" error #2# #4#] 4 "Up N stack frames (numeric arg)." #3#] "<" "<" gud-down #[#1# "?\205& \203#\303 \203\304\305\n\"\207\306 \203\307\310\311\n\"!\207\312\313!\207\312\314!\207" [gud-running gud-matlab-debug-active arg matlab-shell-active-p gud-call "dbdown%%" matlab-netshell-active-p matlab-netshell-eval gud-format-command "dbdown" error #2# #4#] 4 "Down N stack frames (numeric arg)." #3#] ">" ">" gud-list-breakpoints #[#1# "?\205\302 \203\303\304 \"\207\305 \203\306\307\310 \"!\207\311\312!\207" [gud-running arg matlab-shell-active-p gud-call "ebstatus%%" matlab-netshell-active-p matlab-netshell-eval gud-format-command "ebstatus" error #2#] 4 "List breakpoints" #3#] "" "" gud-show-stack #[#1# "?\205\302 \203\303\304 \"\207\305 \203\306\307\310 \"!\207\311\312!\207" [gud-running arg matlab-shell-active-p gud-call "ebstack%%" matlab-netshell-active-p matlab-netshell-eval gud-format-command "ebstack" error #2#] 4 "Show stack" #3#] "" "" make-sparse-keymap ((gud-break . "gud/break") (gud-remove . "gud/remove") (gud-cont . "gud/cont") (gud-next . "gud/next") (gud-step . "gud/step") (gud-finish . "gud/finish") (gud-stop-subjob . "gud/stop") (mlg-show-stack . "gud/all") (gud-list-breakpoints . "describe")) nil tool-bar-local-item-from-menu gud-make-debug-menu boundp gud-matlab-tool-bar-map tool-bar-map kill-local-variable] 6 (#$ . 1462)]) #@57 Configure GUD when a new `matlab-shell' is initialized. (defalias 'matlab-shell-gud-startup #[nil "\304 \210\305\306\307\310\"\210\311\301!\210\312\311\302!\210\313\311\303!\210\314\315\316\317\"\210\320 \207" [gud-minor-mode gud-marker-filter gud-find-file gud-marker-acc gud-mode matlab add-to-list gud-tooltip-modes matlab-mode make-local-variable gud-matlab-marker-filter gud-matlab-find-file nil add-hook matlab-shell-prompt-appears-hook gud-matlab-debug-tracker gud-set-buffer] 3 (#$ . 6730)]) #@138 Argument message for starting matlab file. I don't think I have to do anything, but I'm not sure. FILE is ignored, and ARGS is returned. (defalias 'gud-matlab-massage-args #[(file args) "\207" [args] 1 (#$ . 7241)]) #@46 Find file F when debugging frames in MATLAB. (defalias 'gud-matlab-find-file #[(f) "\212\303\304\"\203\305\224\306I\210\202\307 \310\"\211q\210\311\312!\203%\312 \210\n+\207" [f realfname buf string-match "\\.\\(p\\)$" 1 109 find-file-noselect t fboundp gud-make-debug-menu] 4 (#$ . 7464)]) #@42 Regular expression for finding a prompt. (defvar gud-matlab-marker-regexp-plain-prompt "^K?>>" (#$ . 7772)) #@52 Regular expression for finding a file line-number. (defvar gud-matlab-marker-regexp-K>> "^K>>" (#$ . 7886)) #@52 Regular expression for finding a file line-number. (defvar gud-matlab-marker-regexp->> "^>>" (#$ . 8000)) #@42 Track if we've sent a dbhotlink request. (defvar gud-matlab-dbhotlink nil (#$ . 8112)) (make-variable-buffer-local 'gud-matlab-dbhotlink) #@65 Filters STRING for the Unified Debugger based on MATLAB output. (defalias 'gud-matlab-marker-filter #[(string) " P\306\307\310\311\"\203\312\f\313\211\314%\202\310\315\"\203,\312 \313\211\314%\202\310&\"\203V\n\204V'\204V(\203F\316\202G\317)\320\321*!)\"\210)\313''\203\352\310\322\"\307+\211,\203\336\314,O,\307O\310-\"\203\351\314\225+\323 .\324\216\314\224/\310\316\"0\314\22511/O\2112G\314V\203\312\3251\273\3262!\2113\205\265\3273!)0\210\202\3124\330\3312\"\210\330\3324\")\210.+\307O P\306\307'\202\351\3105\"\203\351\307'*6\203\364'\204k\310\333\"\203\f \314\211\225OP\314\225\307O\202\364\310-\334P\"\203 P\306\3105\334P \"\203P7\203P\307\21187\3079\335\307!:\336:!\211;\203K\337;!\210\340 \210*\341\314!\210\310\342\"\204k\310\343\"\204k\310\344\"\204k P\306\n\203r\n<=\203}\330\345 #\210>\204\215\310- \"\203\215\313? *\207" [gud-marker-acc string frame output matlab-shell-errortext-start-text matlab-shell-errortext-end-text "" nil string-match "{" replace-match t 0 "}" "dbhotlink()%%%\n" "disp(['dbhotlink()%%%' newline]);dbhotlink();\n" process-send-string get-buffer-process "dbhotlink()%%%" match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] (error) read eval message "Failed to evaluate dbhotlink expression: \"%s\"" "Error is: %S" "^[^\n]*\n" "\\s-*$" mlg-set-stack get-buffer-window select-window mlg-stack-quit sit-for "[%s] [%s]" gud-matlab-marker-regexp-K>> gud-matlab-dbhotlink matlab-shell-echoes dbhlcmd gud-comint-buffer endprompt start gud-matlab-marker-regexp-plain-prompt save-match-data-internal expr-end m1 expr-start expression forms ERR gud-matlab-marker-regexp->> matlab-prompt-seen gud-last-last-frame overlay-arrow-position gud-overlay-arrow-position buff win gud-last-frame matlab-shell-io-testing matlab-shell-suppress-prompt-hooks matlab-shell-prompt-hook-cookie] 7 (#$ . 8256)]) (byte-code "\300\301\302\303!\"\210\300\304\305\303!\"\210\300\306\304\"\210\307\306\310\311#\210\312\303\313\304#\314\303\315\316\317$\207" [defalias mlg-stack-frame-p eieio-make-class-predicate mlg-stack-frame mlg-stack-frame--eieio-childp eieio-make-child-predicate mlg-stack-frame-child-p make-obsolete "use (cl-typep ... \\='mlg-stack-frame) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal nil ((file :initarg :file :type string :documentation "The filename this frame belongs to.") (name :initarg :name :type string :documentation "The name of the location of this frame") (line :initarg :line :type integer :documentation "The line number for this frame")) (:documentation "A single stack frame from MATLAB.")] 6) #@54 Create a new object of class type `mlg-stack-frame'. (defalias 'mlg-stack-frame #[(&rest slots) "\301\302\303#\207" [slots apply make-instance mlg-stack-frame] 4 (#$ . 11038)]) (byte-code "\300\301\302\303#\300\207" [function-put mlg-stack-frame compiler-macro mlg-stack-frame--anon-cmacro] 4) (defalias 'mlg-stack-frame--anon-cmacro #[(whole &rest slots) "@;\204 \207\302\303\304@ @# @\305@DABB\"\207" [slots whole macroexp-warn-and-return format "Obsolete name arg %S to constructor %S" identity] 5]) (cl-generic-define-method 'mlg-print nil '((frame mlg-stack-frame) longestname) nil #[(frame longestname) "\304\305\206\306!\307Q\310\311 \312\n\313\"\"\314\315#\316\310\311\317\312\n\320\"\"\314\321#\316\310\312\n\322\"\314\323#\260\310 \324\n#\211*\207" [longestname namefmt frame str "%" number-to-string 10 "s" propertize format eieio-oref name face font-lock-function-name-face " " "%3d" line bold file font-lock-constant-face object] 9 "Use print to output this stack FRAME.\nLONGESTNAME specifies the how long the longest name we can expect is."]) #@40 The last stack sent to us from MATLAB. (defvar mlg-stack nil (#$ . 12116)) #@41 The last frame sent to use from MATLAB. (defvar mlg-frame nil (#$ . 12197)) #@63 Specify a NEWSTACK provided by MATLAB to replace the old one. (defalias 'mlg-set-stack #[(newstack) "\304 \304\211\203& @\305\306\307\n@\310\nA@\311\312\n8&B A\211\204\n*\237\313 \207" [mlg-stack newstack L --dolist-tail-- nil make-instance mlg-stack-frame :file :name :line 2 mlg-refresh-stack-buffer] 10 (#$ . 12279)]) #@56 Specify a NEWFRAME provided by MATLAB we should visit. (defalias 'mlg-set-stack-frame #[(newframe) "\302 \210\303!\207" [newframe mlg-frame mlg-show-stack mlg-show-frame] 2 (#$ . 12618)]) #@56 Specify a NEWFRAME provided by MATLAB we should visit. (defalias 'mlg-set-stack-frame-via-gud #[(newframe) "\306S\n8\304\"\306S\n8\303\" \307W\203 [\f B\211*\207" [newframe mlg-frame mlg-stack line file gud-last-frame eieio-oref 0] 4 (#$ . 12815)]) #@59 Setup windows to show FRAME from the current stack frame. (defalias 'mlg-show-frame #[(&optional frame) "\206  \2038\n GX\2038\306\307!\310\f!\f\203! \204'\311 \210\202+\312 !\210eb\210Sy\210\313 *\202H\306\307!\310\f!\211\205G\314 !*)\207" [frame mlg-frame newframe mlg-stack buff win get-buffer "*MATLAB stack*" get-buffer-window mlg-show-stack select-window mlg-stack-choose delete-window] 3 (#$ . 13080)]) #@38 Refresh the buffer displaying stack. (defalias 'mlg-refresh-stack-buffer #[nil "\212\306\307!\310\311 \312\211\203+ @\313\f\314\"G V\203$\313\f\314\"G A\211\204*\nq\210\315 \210\316 \312\211\203t @\317\320\"c\210\203\\U\203\\\321c\210\202_\322c\210\323 \"\324\261\210T A\211\204>+\325 \210eb\210p,\207" [inhibit-read-only namelen buff mlg-stack S --dolist-tail-- get-buffer-create "*MATLAB stack*" 5 t nil eieio-oref name erase-buffer 1 format "%2d" " >> " " -- " mlg-print "\n" mlg-stack-mode cnt F mlg-frame] 4 (#$ . 13512)]) #@52 Display the MATLAB stack in an interactive buffer. (defalias 'mlg-show-stack #[nil "\301 \302\303\"\210\304\305!!\210\306b)\207" [buff mlg-refresh-stack-buffer display-buffer ((display-buffer-at-bottom) (inhibit-same-window . t) (window-height . fit-window-to-buffer)) select-window get-buffer-window 3] 3 (#$ . 14086) nil]) #@35 Keymap used in MATLAB stack mode. (defvar mlg-stack-mode-map (byte-code "\301 \302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\312#\210\302\313\314#\210\302\315\314#\210)\207" [km make-sparse-keymap define-key [return] mlg-stack-choose "q" mlg-stack-quit "n" mlg-stack-next "p" mlg-stack-prev [mouse-2] mlg-stack-click [mouse-1]] 4) (#$ . 14420)) #@48 Syntax table used in `matlab-shell-help-mode'. (defvar mlg-stack-mode-syntax-table (make-syntax-table) (#$ . 14792)) (defvar mlg-stack-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [mlg-stack-mode-hook variable-documentation put "Hook run after entering MStack mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp mlg-stack-mode-map definition-name mlg-stack-mode] 4) (defvar mlg-stack-mode-map (make-sparse-keymap)) (byte-code "\301\302N\204\303\301\302\304\305!#\210\306\300!\204#\303\300\307\310#\210\311\312\300\313\"\210!\210\300\302N\2041\303\300\302\304\314!#\210\303\310\315\313#\207" [mlg-stack-mode-abbrev-table mlg-stack-mode-map variable-documentation put purecopy "Keymap for `mlg-stack-mode'." boundp definition-name mlg-stack-mode (lambda (def-tmp-var) (defvar mlg-stack-mode-abbrev-table def-tmp-var)) define-abbrev-table nil "Abbrev table for `mlg-stack-mode'." derived-mode-parent] 5) #@177 Major mode for viewing a MATLAB stack. Commands: \{mlg-stack-mode-map} This mode runs the hook `mlg-stack-mode-hook', as the final or penultimate step during initialization. (defalias 'mlg-stack-mode #[nil "\306\300!\210\307\310 \210\311\312\313 !\210\314\f!\210 \307)\315\316!\207" [delay-mode-hooks major-mode mode-name mlg-stack-mode-map mlg-stack-mode-syntax-table mlg-stack-mode-abbrev-table make-local-variable t kill-all-local-variables mlg-stack-mode "MStack" use-local-map set-syntax-table run-mode-hooks mlg-stack-mode-hook local-abbrev-table buffer-read-only] 2 (#$ . 15859) nil]) #@29 Quit the MATLAB stack view. (defalias 'mlg-stack-quit #[nil "\300 G\301U\203 \302 \207\303\304 !\207" [window-list 1 bury-buffer delete-window selected-window] 2 (#$ . 16466) nil]) #@27 Visit stack on next line. (defalias 'mlg-stack-next #[nil "\300y\210\301u\210\302 \207" [1 2 mlg-stack-choose] 1 (#$ . 16654) nil]) #@27 Visit stack on next line. (defalias 'mlg-stack-prev #[nil "\300y\210\301u\210\302 \207" [-1 2 mlg-stack-choose] 1 (#$ . 16792) nil]) #@63 Click on a stack frame to visit it. Must be bound to event E. (defalias 'mlg-stack-click #[(e) "\301!\210\302 \207" [e mouse-set-point mlg-stack-choose] 2 (#$ . 16931) "e"]) #@86 Choose the stack the under the cursor. Visit the file presented in that stack frame. (defalias 'mlg-stack-choose #[nil "\306\211`\212\307 \210\310u\210\311`\312\"\313 \314\"\313 \315\"\316\f\317\"\320\321\"\210\322 \323\324!!\210eb\210 Sy\210\323!. \207" [p fun topic sf f l nil beginning-of-line 10 get-text-property object eieio-oref file line find-file-noselect t display-buffer ((display-buffer-reuse-window display-buffer-use-some-window) (inhibit-same-window . t)) selected-window select-window get-buffer-window buff win] 3 (#$ . 17112) nil]) (byte-code "\300\301\302\303!\"\210\300\304\305\303!\"\210\300\306\304\"\210\307\306\310\311#\210\312\303\313\304#\314\303\315\316\317$\207" [defalias mlg-breakpoint-p eieio-make-class-predicate mlg-breakpoint mlg-breakpoint--eieio-childp eieio-make-child-predicate mlg-breakpoint-child-p make-obsolete "use (cl-typep ... \\='mlg-breakpoint) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal nil ((file :initarg :file :type string :documentation "The filename this breakpoint belongs to.") (name :initarg :name :type string :documentation "Name of the function this breakpoint is in.") (line :initarg :line :type integer :documentation "The line number for this breakpoint") (overlay :documentation :default nil "The overlay indicating the presence of this breakpoint.")) (:documentation "Representation of a breakpoint.\nUsed to track active breakpoints, and how to show them.")] 6) #@53 Create a new object of class type `mlg-breakpoint'. (defalias 'mlg-breakpoint #[(&rest slots) "\301\302\303#\207" [slots apply make-instance mlg-breakpoint] 4 (#$ . 18598)]) (byte-code "\300\301\302\303#\300\207" [function-put mlg-breakpoint compiler-macro mlg-breakpoint--anon-cmacro] 4) (defalias 'mlg-breakpoint--anon-cmacro #[(whole &rest slots) "@;\204 \207\302\303\304@ @# @\305@DABB\"\207" [slots whole macroexp-warn-and-return format "Obsolete name arg %S to constructor %S" identity] 5]) (cl-generic-define-method 'mlg-print nil '((break mlg-breakpoint) longestname) nil #[(break longestname) "\304\305\206\306!\307Q\310\311 \312\n\313\"\"\314\315#\316\310\311\317\312\n\320\"\"\314\321#\316\310\312\n\322\"\314\323#\260\310 \324\n#\211*\207" [longestname namefmt break str "%" number-to-string 10 "s" propertize format eieio-oref name face font-lock-function-name-face " " "%3d" line bold file font-lock-constant-face object] 9 "Use print to output this breakpoint BREAK.\nLONGESTNAME specifies the how long the longest name we can expect is."]) #@44 List of breakpoints MATLAB has sent to us. (defvar matlab-gud-visible-breakpoints nil (#$ . 19674)) #@32 Remove all cached breakpoints. (defalias 'mlg-reset-breakpoints #[nil "\303\211\203\n@\304 !\210\nA\211\204*\303\211\207" [matlab-gud-visible-breakpoints BP --dolist-tail-- nil mlg-deactivate] 3 (#$ . 19780)]) #@43 Add a visible breakpoint to FILE at LINE. (defalias 'mlg-add-breakpoint #[(file fcn line) "\306 \306\211\203( @\307\n\304\"\f\230\203!\307\n\305\" U\203!\310 A\211\204\n*\204@\311\312\313\f\314\315 & B\316 @!\210)\317\320\321\"\207" [found matlab-gud-visible-breakpoints BP --dolist-tail-- file line nil eieio-oref t make-instance mlg-breakpoint :file :name :line mlg-activate add-hook matlab-mode-hook mlg-breakpoint-activate-buffer-opened-hook fcn] 9 (#$ . 20006)]) #@43 Add a visible breakpoint to FILE at LINE. (defalias 'mlg-del-breakpoint #[(file fcn line) "\305\211\2030\306\n@\303\" \230\203$\306\n@\304\"\fU\203$\307\n@!\210\202)\n@ B\nA\211\204 \237\211*\207" [matlab-gud-visible-breakpoints NBPS BPS file line nil eieio-oref mlg-deactivate] 4 (#$ . 20496)]) (byte-code "\300\301\302\303\304\305\304\306\307\257DC\310\311\312%\210\313\314\304\315\304\316%\210\313\317\304\320\304\321%\207" [custom-declare-face mlg-breakpoint-face t :background nil :foreground :underline "red1" "*Face to use to highlight breakpoints." :group matlab-shell cl-generic-define-method mlg-activate ((bp mlg-breakpoint)) #[(bp) "\303\304\"\203\305\304\"\203\306\305\304\"!\204\307\304\310#\210\311\305\312\"!\303\304\"\2033\305\304\"?\205i \205ir q\210eb\210\305\313\"Sy\210\314\212\315 \210`)\316 \310\211%\307\304\n#\210\317\n\320\321#\210\317\n\322\323\324\325\326##*)\207" [bp buff ol slot-boundp overlay eieio-oref overlay-buffer eieio-oset nil find-buffer-visiting file line matlab-make-overlay back-to-indentation point-at-eol matlab-overlay-put face mlg-breakpoint-face before-string propertize "#" display (left-fringe filled-square matlab-shell-error-face)] 7 "Activate breakpoint BP if needed."] mlg-deactivate ((bp mlg-breakpoint)) #[(bp) "\303\304\"\205)\305 \304\"\205(\306\305 \304\"!\205(\307\305 \304\"!\210 \310\n\304\311#))\207" [bp #:object #:v slot-boundp overlay slot-value overlayp delete-overlay eieio-oset nil] 4 "Deactivate this breakpoint BP."]] 9) #@67 Activate any breakpoints in a buffer when that buffer is read in. (defalias 'mlg-breakpoint-activate-buffer-opened-hook #[nil "\303 \204\304 \207\305\211\205\n@\306 !\210\nA\211\204\305*\207" [matlab-gud-visible-breakpoints BP --dolist-tail-- matlab-shell-active-p mlg-reset-breakpoints nil mlg-activate] 3 (#$ . 22035)]) #@52 Flush existing breakpoint markers, and reactivate. (defalias 'mlg-breakpoint-flush-and-reactivate #[nil "\303\211\205\n@\304 !\210\305 !\210\nA\211\204\303*\207" [matlab-gud-visible-breakpoints BP --dolist-tail-- nil mlg-deactivate mlg-activate] 3 (#$ . 22374) nil]) #@44 Refresh the buffer displaying breakpoints. (defalias 'mlg-refresh-breakpoint-buffer #[nil "\212\306\307!\310\311 \312\211\203+ @\313\f\314\"G V\203$\313\f\314\"G A\211\204*\nq\210\315 \210\316 \312\211\203^ @\317\320\"c\210\321 \"\322\261\210T A\211\204>+\323 \210eb\210p,\207" [inhibit-read-only namelen buff matlab-gud-visible-breakpoints S --dolist-tail-- get-buffer-create "*MATLAB breakpoints*" 5 t nil eieio-oref name erase-buffer 1 format "%2d - " mlg-print "\n" mlg-breakpoint-mode cnt F] 4 (#$ . 22656)]) #@52 Display the MATLAB stack in an interactive buffer. (defalias 'mlg-show-breakpoints #[nil "\301 \302\303\"\210\304\305!!\210\306b)\207" [buff mlg-refresh-breakpoint-buffer display-buffer ((display-buffer-at-bottom) (inhibit-same-window . t) (window-height . fit-window-to-buffer)) select-window get-buffer-window 3] 3 (#$ . 23207) nil]) #@40 Keymap used in MATLAB breakpoint mode. (defvar mlg-breakpoint-mode-map (byte-code "\301 \302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\312#\210\302\313\314#\210\302\315\314#\210)\207" [km make-sparse-keymap define-key [return] mlg-breakpoint-choose "q" mlg-breakpoint-quit "n" mlg-breakpoint-next "p" mlg-breakpoint-prev [mouse-2] mlg-breakpoint-click [mouse-1]] 4) (#$ . 23552)) #@48 Syntax table used in `matlab-shell-help-mode'. (defvar mlg-breakpoint-mode-syntax-table (make-syntax-table) (#$ . 23959)) (defvar mlg-breakpoint-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [mlg-breakpoint-mode-hook variable-documentation put "Hook run after entering MBreakpoints mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp mlg-breakpoint-mode-map definition-name mlg-breakpoint-mode] 4) (defvar mlg-breakpoint-mode-map (make-sparse-keymap)) (byte-code "\301\302N\204\303\301\302\304\305!#\210\306\300!\204#\303\300\307\310#\210\311\312\300\313\"\210!\210\300\302N\2041\303\300\302\304\314!#\210\303\310\315\313#\207" [mlg-breakpoint-mode-abbrev-table mlg-breakpoint-mode-map variable-documentation put purecopy "Keymap for `mlg-breakpoint-mode'." boundp definition-name mlg-breakpoint-mode (lambda (def-tmp-var) (defvar mlg-breakpoint-mode-abbrev-table def-tmp-var)) define-abbrev-table nil "Abbrev table for `mlg-breakpoint-mode'." derived-mode-parent] 5) #@193 Major mode for viewing a MATLAB breakpoints. Commands: \{mlg-breakpoint-mode-map} This mode runs the hook `mlg-breakpoint-mode-hook', as the final or penultimate step during initialization. (defalias 'mlg-breakpoint-mode #[nil "\306\300!\210\307\310 \210\311\312\313 !\210\314\f!\210 \307)\315\316!\207" [delay-mode-hooks major-mode mode-name mlg-breakpoint-mode-map mlg-breakpoint-mode-syntax-table mlg-breakpoint-mode-abbrev-table make-local-variable t kill-all-local-variables mlg-breakpoint-mode "MBreakpoints" use-local-map set-syntax-table run-mode-hooks mlg-breakpoint-mode-hook local-abbrev-table buffer-read-only] 2 (#$ . 25092) nil]) #@34 Quit the MATLAB breakpoint view. (defalias 'mlg-breakpoint-quit #[nil "\300 G\301U\203 \302 \207\303\304 !\207" [window-list 1 bury-buffer delete-window selected-window] 2 (#$ . 25751) nil]) #@32 Visit breakpoint on next line. (defalias 'mlg-breakpoint-next #[nil "\300y\210\301u\210\302 \207" [1 2 mlg-breakpoint-choose] 1 (#$ . 25949) nil]) #@32 Visit breakpoint on next line. (defalias 'mlg-breakpoint-prev #[nil "\300y\210\301u\210\302 \207" [-1 2 mlg-breakpoint-choose] 1 (#$ . 26102) nil]) #@68 Click on a breakpoint frame to visit it. Must be bound to event E. (defalias 'mlg-breakpoint-click #[(e) "\301!\210\302 \207" [e mouse-set-point mlg-breakpoint-choose] 2 (#$ . 26256) "e"]) #@96 Choose the breakpoint the under the cursor. Visit the file presented in that breakpoint frame. (defalias 'mlg-breakpoint-choose #[nil "\306\211`\212\307 \210\310u\210\311`\312\"\313 \314\"\313 \315\"\316\f\317\"\320\321\"\210\322 \323\324!!\210eb\210 Sy\210\323!. \207" [p fun topic sf f l nil beginning-of-line 10 get-text-property object eieio-oref file line find-file-noselect t display-buffer ((display-buffer-reuse-window display-buffer-use-some-window) (inhibit-same-window . t)) selected-window select-window get-buffer-window buff win] 3 (#$ . 26452) nil]) #@83 Function called when new prompts appear. Call debug activate/deactivate features. (defalias 'gud-matlab-debug-tracker #[nil "\212\306db\210\307 \210 \203/\310\n!\203/\311\312\305!\203%r\313 q\210\314\305!\210)\315\316!\210\317\320!\202X \204W\310 !\203W\306\312\305!\203Mr\313 q\210\321\305!\210\f)\315\322!\210\317\323!\202X\306*\207" [inhibit-field-text-motion gud-matlab-debug-active gud-matlab-marker-regexp->> gud-matlab-marker-regexp-K>> gud-matlab-tool-bar-map tool-bar-map t beginning-of-line looking-at nil boundp matlab-shell-active-p kill-local-variable global-matlab-shell-gud-minor-mode -1 run-hooks gud-matlab-debug-deactivate-hook make-local-variable 1 gud-matlab-debug-activate-hook] 2 (#$ . 27039)]) #@41 Keymap used by matlab mode maintainers. (defvar matlab-shell-gud-minor-mode-map (byte-code "\302 \303\304X\203\305 \306!\307#\210T\211\202\305 \310\311#\210\305 \312\313#\210\305 \314\315#\210\305 \316\317#\210\305 \320\321#\210\305 \322\321#\210\305 \323\324#\210\305 \325\326#\210\305 \327\330#\210\305 \331\332#\210\305 \333\334#\210\305 \335\336#\210\305 \337\340#\210\305 \341\342#\210\305 \343\344#\210 *\207" [key km make-sparse-keymap 32 126 define-key string matlab-shell-gud-mode-help-notice "h" matlab-shell-gud-mode-help "b" gud-break "x" gud-remove "c" gud-cont "s" gud-step " " "n" gud-next "f" gud-finish "q" gud-stop-subjob "<" gud-up ">" gud-down "w" mlg-show-stack "v" gud-list-breakpoints "e" matlab-shell-gud-show-symbol-value "" matlab-shell-gud-mode-edit] 5) (#$ . 27774)) #@123 Non-nil if Matlab-Shell-Gud minor mode is enabled. Use the command `matlab-shell-gud-minor-mode' to change this variable. (defvar matlab-shell-gud-minor-mode nil (#$ . 28588)) (make-variable-buffer-local 'matlab-shell-gud-minor-mode) #@1519 Minor mode activated when `matlab-shell' K>> prompt is active. This minor mode makes MATLAB buffers read only so simple keystrokes activate debug commands. It also enables tooltips to appear when the mouse hovers over a symbol when debugging. \ Debug commands are: \[matlab-shell-gud-mode-edit] - Edit file (toggle read-only) Allows editing file without causing MATLAB to exit debug mode. \[gud-break] - Add breakpoint (ebstop in FILE at point) \[gud-remove] - Remove breakpoint (ebclear in FILE at point) \[gud-list-breakpoints] - List breakpoints (ebstatus) \[gud-step] - Step (dbstep in) \[gud-next] - Next (dbstep) \[gud-finish] - Finish function (dbstep out) \[gud-cont] - Continue (dbcont) \[matlab-shell-gud-show-symbol-value] - Evaluate expression \[mlg-show-stack] - Where am I (ebstack) \[gud-stop-subjob] - Quit (dbquit) This is a minor mode. If called interactively, toggle the `Matlab-Shell-Gud minor mode' mode. If the prefix argument is positive, enable the mode, and if it is zero or negative, disable the mode. If called from Lisp, toggle the mode if ARG is `toggle'. Enable the mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, evaluate `matlab-shell-gud-minor-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. (defalias 'matlab-shell-gud-minor-mode #[(&optional arg) "\306  \307=\203\n?\202 \247\203 \310W\203\311\202\312\313\303!\2032\314\302 \"\n\2032\302 B\n\203U\315 \203=\312 \203J\316\310!\210\317\320\321\"\210\322\323!\210%\202s\315 \203`\324\315 !?\316\325!\210\326\320\321\"\210\313\327!\203s\330\327!\210\331\332\n\203}\333\202~\334\"\210\335\336!\203\245\306 \203\222\306 \232\203\245\337&\340\341\n\203\237\342\202\240\343&#\210))\344 \210\n\207" [#1=#:last-message arg matlab-shell-gud-minor-mode local-minor-modes buffer-read-only matlab-shell-debug-tooltips-p current-message toggle 1 nil t boundp delq buffer-file-name gud-tooltip-mode add-hook tooltip-functions gud-matlab-tooltip-tips make-local-variable gud-tool-bar-map file-writable-p -1 remove-hook tool-bar-map kill-local-variable run-hooks matlab-shell-gud-minor-mode-hook matlab-shell-gud-minor-mode-on-hook matlab-shell-gud-minor-mode-off-hook called-interactively-p any " in current buffer" message "Matlab-Shell-Gud minor mode %sabled%s" "en" "dis" force-mode-line-update gud-matlab-tool-bar-map local] 4 (#$ . 28830) (list (if current-prefix-arg (prefix-numeric-value current-prefix-arg) 'toggle))]) (defvar matlab-shell-gud-minor-mode-hook nil) (byte-code "\301\302N\204\f\303\301\302\304#\210\303\301\305\306#\210\303\301\307\310C#\210\311\312\313\310\211%\210\303\314\315\316#\207" [matlab-shell-gud-minor-mode-map matlab-shell-gud-minor-mode-hook variable-documentation put "Hook run after entering or leaving `matlab-shell-gud-minor-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" custom-type hook standard-value nil add-minor-mode matlab-shell-gud-minor-mode " MGUD" global-matlab-shell-gud-minor-mode globalized-minor-mode t] 6) (defvar matlab-shell-gud-minor-mode-major-mode nil nil) (byte-code "\300\301!\210\302\303\304\305\306\307\310\311\312\313& \207" [make-variable-buffer-local matlab-shell-gud-minor-mode-major-mode custom-declare-variable global-matlab-shell-gud-minor-mode nil "Non-nil if Global Matlab-Shell-Gud minor mode is enabled.\nSee the `global-matlab-shell-gud-minor-mode' command\nfor a description of this minor mode.\nSetting this variable directly does not take effect;\neither customize it (see the info node `Easy Customization')\nor call the function `global-matlab-shell-gud-minor-mode'." :set custom-set-minor-mode :initialize custom-initialize-default :type boolean] 10) #@523 Toggle Matlab-Shell-Gud minor mode in all buffers. With prefix ARG, enable Global Matlab-Shell-Gud minor mode if ARG is positive; otherwise, disable it. If called from Lisp, enable the mode if ARG is omitted or nil. Matlab-Shell-Gud minor mode is enabled in all buffers where `(lambda nil Should we turn on in this buffer? Only if in a MATLAB mode. (when (eq major-mode 'matlab-mode) (matlab-shell-gud-minor-mode 1)))' would do it. See `matlab-shell-gud-minor-mode' for more information on Matlab-Shell-Gud minor mode. (defalias 'global-matlab-shell-gud-minor-mode #[(&optional arg) "\306 \307\303 \310=\203\311\303!?\202\" \247\203! \312W\203!\313\202\"\314\"\210\315\302!\2039\316\303\n\"\311\303!\2039\303\nB \203O\317\320\321\"\210\317\322\323\"\210\317\324\325\"\210\202^\326\320\321\"\210\326\322\323\"\210\326\324\325\"\210\327 \313\211\203\221 @r\fq\210 \203\200(\330=\203\211\331\312!\210\202\211\203\211\331\332!\210) A\211\204g*\333\334\311\303!\203\236\335\202\237\336\"\210\337\340!\203\314\341\303!\210\306 \203\267\306 \232\203\314\342)\343\344\311\303!\203\306\345\202\307\346)#\210))\347 \210\311\303!\207" [#1=#:last-message arg global-minor-modes global-matlab-shell-gud-minor-mode buf --dolist-tail-- current-message set-default toggle default-value 1 nil t boundp delq add-hook after-change-major-mode-hook global-matlab-shell-gud-minor-mode-enable-in-buffers find-file-hook global-matlab-shell-gud-minor-mode-check-buffers change-major-mode-hook global-matlab-shell-gud-minor-mode-cmhh remove-hook buffer-list matlab-mode matlab-shell-gud-minor-mode -1 run-hooks global-matlab-shell-gud-minor-mode-hook global-matlab-shell-gud-minor-mode-on-hook global-matlab-shell-gud-minor-mode-off-hook called-interactively-p any customize-mark-as-set "" message "Global Matlab-Shell-Gud minor mode %sabled%s" "en" "dis" force-mode-line-update major-mode local] 5 (#$ . 32859) (list (if current-prefix-arg (prefix-numeric-value current-prefix-arg) 'toggle))]) (defvar global-matlab-shell-gud-minor-mode-hook nil) (byte-code "\301\302N\204\f\303\301\302\304#\210\303\301\305\306#\210\303\301\307\310C#\210\311\312\310\313\300!\205#\310\211%\207" [global-matlab-shell-gud-minor-mode-map global-matlab-shell-gud-minor-mode-hook variable-documentation put "Hook run after entering or leaving `global-matlab-shell-gud-minor-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" custom-type hook standard-value nil add-minor-mode global-matlab-shell-gud-minor-mode boundp] 6) (defvar matlab-shell-gud-minor-mode-set-explicitly nil nil) (make-variable-buffer-local 'matlab-shell-gud-minor-mode-set-explicitly) (defalias 'matlab-shell-gud-minor-mode-set-explicitly #[nil "\301\211\207" [matlab-shell-gud-minor-mode-set-explicitly t] 2]) (byte-code "\300\301\302\303#\210\304\305\301\"\207" [put matlab-shell-gud-minor-mode-set-explicitly definition-name global-matlab-shell-gud-minor-mode add-hook matlab-shell-gud-minor-mode-hook] 4) (defvar global-matlab-shell-gud-minor-mode-buffers nil) (defalias 'global-matlab-shell-gud-minor-mode-enable-in-buffers #[nil "\306 \306\211\205R @\307\n!\203Jr\nq\210\f\204F \f=\204F\203;\310\311!\210\f\312=\203F\310\313!\210\202F\f\312=\203F\310\313!\210\f) A\211\204\f\306+\207" [global-matlab-shell-gud-minor-mode-buffers buffers buf --dolist-tail-- matlab-shell-gud-minor-mode-set-explicitly matlab-shell-gud-minor-mode-major-mode nil buffer-live-p matlab-shell-gud-minor-mode -1 matlab-mode 1 major-mode] 3]) (put 'global-matlab-shell-gud-minor-mode-enable-in-buffers 'definition-name 'global-matlab-shell-gud-minor-mode) (defalias 'global-matlab-shell-gud-minor-mode-check-buffers #[nil "\300 \210\301\302\303\"\207" [global-matlab-shell-gud-minor-mode-enable-in-buffers remove-hook post-command-hook global-matlab-shell-gud-minor-mode-check-buffers] 3]) (put 'global-matlab-shell-gud-minor-mode-check-buffers 'definition-name 'global-matlab-shell-gud-minor-mode) (defalias 'global-matlab-shell-gud-minor-mode-cmhh #[nil "p\211 \235\203 \210\202 B)\302\303\304\"\207" [#1=#:x global-matlab-shell-gud-minor-mode-buffers add-hook post-command-hook global-matlab-shell-gud-minor-mode-check-buffers] 4]) (put 'global-matlab-shell-gud-minor-mode-cmhh 'definition-name 'global-matlab-shell-gud-minor-mode) #@65 Show the value of the symbol SYM under point from MATLAB shell. (defalias 'matlab-shell-gud-show-symbol-value #[(sym) "\302\303\304Q!\305\306 \"\204\307\310 \"\202\311\312!)\207" [sym txt matlab-shell-collect-command-output "disp(" ")" string-match "ERRORTXT" matlab-output-to-temp-buffer "*MATLAB Help*" message "Error evaluating MATLAB expression"] 4 (#$ . 37262) (list (if (use-region-p) (buffer-substring-no-properties (region-beginning) (region-end)) (let ((word (matlab-read-word-at-point))) (read-from-minibuffer "MATLAB variable: " (cons word 0)))))]) #@63 Turn off `matlab-shell-gud-minor-mode' so you can edit again. (defalias 'matlab-shell-gud-mode-edit #[nil "\300\301!\207" [global-matlab-shell-gud-minor-mode -1] 2 (#$ . 37834) nil]) #@106 Default binding for most keys in `matlab-shell-gud-minor-mode'. Shows a help message in the mini buffer. (defalias 'matlab-shell-gud-mode-help-notice #[nil "\300\301!\207" [error "MATLAB shell GUD minor-mode: Press 'h' for help, 'e' to go back to editing"] 2 (#$ . 38024) nil]) #@74 Show the default binding for most keys in `matlab-shell-gud-minor-mode'. (defalias 'matlab-shell-gud-mode-help #[nil "\300\301!\207" [describe-minor-mode matlab-shell-gud-minor-mode] 2 (#$ . 38308) nil]) #@159 Implementation of the tooltip feature for MATLAB. Much of this was copied from `gud-tooltip-tips'. This function must return nil if it doesn't handle EVENT. (defalias 'gud-matlab-tooltip-tips #[(event) "\306!\205P\307!\205Pr\307!q\210 \205O\n\205O\310 !\205O\311!\312\211\205N\313\314 \315Q!\316\317\f\"?\205N\320 \321\fQ\206K\206K?\"\210\322*)\207" [event gud-tooltip-mode matlab-shell-gud-minor-mode gud-comint-buffer txt expr eventp tooltip-event-buffer buffer-name matlab-shell-gud-find-tooltip-expression nil matlab-shell-collect-command-output "emacstipstring(" ")" string-match "ERRORTXT" tooltip-show "=\n" t gud-tooltip-echo-area tooltip-use-echo-area tooltip-mode] 5 (#$ . 38519)]) #@173 Identify an expression to output in a tooltip at EVENT. Unlike `tooltip-expr-to-print', this looks at the symbol, and if it looks like a function call, it will return nil. (defalias 'matlab-shell-gud-find-tooltip-expression #[(event) "r\306!q\210 \205\200\307\310!!\311 \203+\312 \nX\205\n\313 X\205\312 \313 {\202\212\nb\210`\314\315!\210h\316U\203E\317u\210\314\315!\210\2025`\320 \321\322!\206Y\323 8\206Y\324 8?\205~ b\210\325\315!\210`\fV\205~\321\326!\204w\327\f`\"\202~\330 \210\327\f`\",))\207" [event matlab-shell-gud-minor-mode point origin start pstate tooltip-event-buffer posn-point event-end use-region-p region-beginning region-end skip-syntax-backward "w_" 46 -1 syntax-ppss looking-at "[0-9]" 3 4 skip-syntax-forward "\\s-*(" buffer-substring-no-properties matlab-forward-sexp] 3 (#$ . 39241) nil]) (provide 'matlab-shell-gud)