(matlab-shell-mode-map): Add C-c C-c binding to matlab-shell-interrupt-subjob.
(matlab-shell-flush-accumulation-buffer): New state variable.
(matlab-shell-wrapper-filter): If above variable is non nil, flush
the accumulation buffer as if there were no emacscap tags.
(matlab-shell-interrupt-subjob): New command.
Sets state to flush accumulation buffer, and also sends interrupt signal.
(matlab-shell-accumulator): Make buffer local.
(matlab-shell-process-capture-text):
MATLAB Help buffers now can appear as prefix, not whole buff name.
Detect those.
Improve display-buffer so we can re-use windows.
Also call Breakpoints to send updated breakpoints.
Wrap stack and breakpoints in (progn ...)
toolbox/+emacs/@Breakpoints/Breakpoints.m:
(updateString): New, extracted from updateEmacs.
If show=false, and no changes, send no refresh command.
(updateEmacs): use above.
(updateForHotLinks): New, disp the commands only.
toolbox/+emacs/@Stack/Stack.m
(updateForHotLinks): Display nothing of there were no changes.
(matlab-shell-run-region-cmd): Delete, replace with...
(matlab-shell-internal-emacsrunregion): New variable specifies
what MATLAB command to use to run a region.
(matlab-shell-run-region-command): Renamed to ...
(matlab-shell-run-region-function): is now a lisp function symbol
to use to run the region, but uses the same text tags.
Cross ref the above variables.
(matlab-shell-region-command): Use new variable name from above.
If not 'auto' then just 'funcall' the region function.
(matlab-shell-run-region-internal): Renamed to ...
(matlab-shell-region->internal): New name.
Use new internal-emacsrunregion variable.
(matlab-shell-extract-region-to-tmp-file): Rename to ...
(matlab-shell-region->script): new name.
(matlab-shell-capture-text): Deleted.
(matlab-shell): Remove ref to above.
(matlab-shell-wrapper-filter): Prevent text between <EMACSCAP> from
being displayed into the comint buffer. Instead, dispatch to below.
(matlab-shell-process-capture-text): New.
Process text string that is expected to have entire content
between <EMACSCAP> tokens. Replaces `emacs-shell-capture-text'.
(gud-matlab-tool-bar-map): Add show stack and breakpoints.
Remove up/down.
Pull buttons from matlab-mode-map, not gud-minor-mode-map.
(matlab-shell-mode-gud-enable-bindings):
Bind stop-subjob to C-q
Finish is now dbstep out.
(matlab-shell-gud-minor-mode-map):
q now bound to stop-subjob.
(matlab-shell-history-ignore): New customizable variable.
(matlab-shell-version-scrape): Update version regex to include prerelease.
Add config for `comint-input-history-ignore' to ignore stuff
sent by Emacs to ML.
(metest-comment-string-syntax-test):
Add block comment testing.
(met-sexptest-files): Remove indents.m, it had
not test points for sexp tests.
tests/stringtest.m:
Add a block comment and tests for detecting contents.
(matlab-shell-mode-gud-enable-bindings): Update bindings.
Change remove breakpoint to be C-x.
Add ebstatus, ebstack on C-v, C-w.
(matlab-shell-gud-minor-mode-map): Update bindings.
change gud-remove to be x
Add SPC to be gud-step
show-stack is now w.
show breakpoints is now v.
show symbol value is now e
Remove e binding to "edit" - leave as C-x C-q only.
(define-minor-mode): Resort bindings in help to be
same as in MATLAB->Debug menu.
(matlab-shell-version-scrape): Change where we remove ourselves from
comint-filter-functions to avoid any leftovers if there is an error.
(matlab-shell-capture-text): Fix error msg when evaluating forms.
Used wrong variable previously.
(matlab-shell-gud-menu): Delete
matlab.el:
(matlab-frame-init): Improve Debug menu.
Add exit gud debug mode.
Rename various items to be clearer.
Add list breakpoints and show stack.
(matlab-shell-capture-text): Move the evaluation of forms,
or the display of the help buffer outside the
outermost save-excursion. This allows these commands to reposition
point in different buffers.
(mlg-breakpoint): New slot: name.
(mlg-breakpooints::mlg-print): New method to print in a buffer.
(mlg-add-breakpoint): Add 'fcn' input - put in name slot.
(mlg-del-breakpoint): Add 'fcn' input - then ignore. Needed to line up w/ add.
(mlg-refresh-breakpoint-buffer, mlg-show-breakpoints): New
Manage contents of a buffer listing all the breakpoints.
(mlg-breakpoint-mode-map, mlg-breakpoint-mode-syntax-table): New.
(mlg-breakpoint-mode): New mode.
(mlg-breakpoint-quit, mlg-breakpoint-next, mlg-breakpoint-prev)
(mlg-breakpoint-click, mlg-breakpoint-choose):
New commands for breakpoint mode.
(matlab-shell-gud-minor-mode-map): Add 'w' to show breakpoints.
(easy-menu-define): Add Show Breakpoints menu item.
toolbox/ebstatus.m:
Always show the breakpoint buffer in emacs when called.
toolbox/+emacs/@Breakpoints/Breakpoints.m:
(updateEmacs): Add show input arg.
This forces breakpoints to show.
If not showing, update breakpoint buffer.
(matlab-set-comm-fill-prefix): For comments that indicated bullet lists
in mlx files, create specialized prefix.
(matlab-fill-paragraph): Include paragraph start that includes bullet list
from mlx files.
(matlab-shell-startup-command): Use defcustom instead of
defvar.
(matlab-shell-run-region-cmd): New
(matlab-shell-run-region-internal): Use above for cmd instead
of hard coded value.
(matlab-prev-line-cont): Moved fcn next to the check for continuations.
Replace `matlab-prev-line' with snippet to move only 1 line, as blank
lines will cancel a continuation.
(matlab-lattr-cont): Ignore ellipsis when in strings.
tests/indents.m:
Added tests to verify the above.
(gud-matlab-marker-filter): Remove old hotlink url output scanning.
Replace with evaluating forms sent from MATLAB.
When exiting debug mode, also find and close the stack window.
(mlg-set-stack-frame-via-gud): New, called from MATLAB.
(mlg-stack-quit): New for stack mode. Replaces 'delete-window which
sometimes fails.
(matlab-shell-gud-minor-mode-map): Add 'v' binding to view stack frame
window.
(easy-menu-define): Add "Show Stack" menu item to show stack window.
toolbox/+emacs/@Stack/Stack.m:
Add `StackPending' and `FramePending' flags for when that part changes.
(captureStack): New method - uses what was in updateEmacs for computing
the part of the stack we will use.
(updateEmacs): Remove chunk, put in above.
Always post the request to show, as this is used from ebstack, and it should
always do something.
(updateForHotLinks): New method, called from dbhotlinks.
Sends over stack only if needed.
(stackEqual): Rename output arg to better indicate what it is.
toolbox/dbhotlink.m:
Remove most of the content.
Replace with use of EmacsStack object, using updateForHotLinks method.