Add support for data tooltips when debugging.
(matlab-shell-gud-startup): Add matlab-mode to list of gud tooltip supported modes.
(matlab-shell-gud-minor-mode): Add enable/disable of gud-toolti-mode,
and our special hook.
(gud-matlab-tooltip-tips): New. Fcn for displaying a tooltip via the help of
gud-tooltip-mode, and tooltip-mode.
Add fancy debugging mode for MATLAB buffers.
(matlab-shell-gud-startup): Add a debug tracker hook.
(gud-matlab-marker-regexp-k>>): Rename from borig -1
(gud-matlab-marker-regexp->>): New
(gud-matlab-marker-regexp-2): Delete
(gud-matlab-marker-filter): Use renamed or new vars from above.
(gud-matlab-debug-active): New
(gud-matlab-debug-activate-hook, *-deactivate-hook): New
(gud-matlab-debug-tracker): New fcn to activate and deactivate
our special debug features.
(matlab-shell-gud-minor-mode-map)
(matlab-shell-god-menu)
(matlab-shell-gud-minor-mode)
(global-matlab-shell-gud-minor-mode)
(matlab-shell-gud-mode-edit)
(matlab-shell-gud-mode-help-notice)
(matlab-shell-gud-mode-help): New minor mode that provides
direct access to gud comands w/out prefix keys.
Factor out matlab-shell-gud.el -> gud support is seperate.
Move stuff around so things make a little more sense.
(matlab-shell-enable-gud-flag): Remove. Always enable.
(matlab-shell-mode, matlab-shell): Move content between these
two functions. Keep settings and keybindings in the mode,
move filters and such in matlab-shell.
Delete gud content, call to matlab-shell-gud-* fcns instead.
Stop asking to use gud, just do it.
(matlab-shell-wrapper-filter): Adopt the garbage filter from
the gud filter.
Always call gud-filter.
(matlab-shell-wrapper-sentinel): Always call gud-sentinel.
Make sure buffer is set correctly.
(gud-matlab-*): Move to matlab-shell-gud.el
New, content copied from matlab-shell, includes
all the GUD specific support, including the process filter.
Makefile, Project.ede:
Include matlab-shell-gud.el
Fix matlab-shell-locate-fcn and fix spelling errors.
matlab-shell.el:
(matlab-shell-mode-map): Change C-c. keybinding to do matlab-shell-locate-fcn.
(matlab-shell-locate-fcn): New.
(matlab-find-file-under-path, matlab-find-file-on-path):
Deleted.
matlab.el:
(matlab-mode-map): Change binding of C-c. to do matlab-shell-locate-fcn
(matlab-frame-init): Change menu binding as with keybinding above.
(matlab-shell-run-region-internal): Reduce end by 1 char to match
how MATLAB does indexing of regions.
Check for DOS encoded files. If it is, add charts to start & end to match
the number of CRs. (DOS files have CRLF endings, not just LF endings.)
Add additional debugger tests.
((mstest-run-all-tests): Enable additional debug output
if environment says so.
(mstest-error-parse): The buggy cmderr line no check is -1
so we work with diff versions of MATLAB src.
(mstest-error-command-check): If input line is negative,
don't check the line number. (It may move.)
(mstest-debugger): Add additional debugger test points.
Test dbclear.
Test functions gud-break & gud-next, & gud-cont.
(mstest-debugger-navto):
New helper. Test gud functions like next and continue.
Support emacs commands as debugger commands.
(mstest-cap-context): New, for debugging tests.
(mstest-debugger): Add additional test debugging features.
Add support for elisp fcns that are commands.
Make sure current buffere is the *MATLAB* buffer in more cases.
Verify what is at START location when caping output to decide if we
need to skip over echoed output or not.
Add support for debugging & the test harness.
(matlab-shell-io-testing): New.
(gud-matlab-marker-filter): When sending dbhotlink
command, force an echo if the subprocess isn't echoeing.
Print IO state if io testing is on.
(matlab-on-empty-prompt-p): Force to shell buffer before test.
(matlab-on-debug-prompt-p): New (used in tests.)
(matlab-shell-send-string): message io if iotesting is on.
Add debugger tests.
(mstest-run-all-tests): Add mstest-debugger.
(mstest-error-parse): Fix comments, simplify some testing output.
(mstest-debugger): New test fcn for debugger commands and state.
(mstest-debugger-breakpoint): New util for testing state of various
breakpoint setting functions.
tests/dbtester.m
New file with interesting places to debug.
(matlab-shell-class-mref-to-file): First split input on >
to strip off local functions, then continue as before.
(matlab-shell-mref-to-filename): Operate only in the MATLAB shell buffer.
Convenience for debugging.
tests/mstest.el:
Add point for testme(true) - error in local fcn.
Fix some line numbers.
tests/+eltest/+utils/testme.m:
Add error in local fcn option.
(matlab-shell-error-face): Face used to colorize errors in MATLAB shell.
(matlab-shell-mode): Add prompt hook to colorize errors.
(matlab-shell-errortext-start-text, matlab-shell-errortext-end-text): New.
(matlab-shell-colorize-errors): New.
Scans for errortext start/end tokens, and drops an overlay on them.
(gud-matlab-marker-filter): Scan for {^H and }^H tokens, and convert
to errotext tokens. Comint finds these and erases them, but they
really indicate text distinct from other output text.
(matlab-shell-wrapper-filter): Make sure we are in the *MATLAB* buffer
when checking and running prompt hooks.
(matlab-shell-run-region): Change how display-buffer is called
to better re-use frames and windows if they are showing.
Improve output and debugging on failures.
Add syntax error test.
(matlab-run-all-tests): If interactive, turn on debugging features.
(mtest-start): Add timeouts to accept-process-output.
Add BEEP test, mostly to turn off beeping with the errors.
(mstest-error-parse): Add syntaxerr call to test this error type.
Update how filters are setup and run, and move where prompt-appears-hook is created.
Setup several new prompt-appears hook fcns for initializing the process instead of comint filter fcns.
Improve how errors are scanned.
(matlab-shell-errorscanning-syntx-table): New syntax table where \n is whitespace.
(matlab-shell-prompt-hook-cookie): New, used to pass prompt appear status.
(matlab-shell-suppress-prompt-hooks): New
(matlab-shell-cco-testing): New
(matlab-shell-mode): Move our comint hooks to be local.
Add new prompt-appear-hook to a first-prompt-fcn, and also for render-errors-as-anchor.
(matlab-shell): Remove GUD process filter and sentinel.
Add our own matlab-shell-wrapper-* filter and sentinel.
(matlab-shell-wrpper-filter): New.
Calls out to GUD, and calls matlab-shell-prompt-appears-hook when
matlab-shell-prompt-hook-cookie is true.
(matlab-shell-wrapper-sentinel): New.
(matlab-shell-render-html-anchor):
Use matlab-shell-errorscanning-syntax-table.
(matlab-shell-error-anchor-expression, matlab-shell-error-location-expression):
Update spaces to be \s- to overcome newlines.
(matlab-shell-scan-for-error): Use errorscanning syntax table.
(matlab-shell-render-errors-as-anchor): Minor comment/doc cleanup.
Put full file in help-echo.
(matlab-shell-first-prompt-fcn, matlab-shell-user-startup-fcn): NEW
Contents was from `gud-matlab-marker-filter'. Setup matlab for first
time by running emacsinit, and user's init code.
(matlab-shell-second-prompt-fcn): New. Set's prompt-seen.
(gud-matlab-marker-filter): Remove emacsinit setup for MATLAB, and other content
that moved to matlab-shell-first-prompt-fcn.
Turn off beeps.
Stop running matlab-shell-prompt-appears-hook, and instead just set the cookie.
(matlab-shell-collect-command-output): suppress prompt hooks.
Enable timeouts if we wait too long.
(matlab-shell-mref-which-fcn): Disable when cco testing.
(matlab-find-other-window-file-line-column): Stop using goto-line (as per doc)
and use forward line isntead. Cleans up spurious 'set mark' text during test.
(mtest-error-command-check): Add second block that CDs up
so error file refs are no longer on the path. Then re-check
that we get to the right place with last error.
Add more tests needed for error parsing.
(mstest-run-all-tests): Leave in debug flag commented out.
(mstest-start): Add tests for valid MATLABROOT,
and 'which' utility test.
(mstest-error-parse): Build utility around first test. (see below)
Use utility for 3 buggy.m tests, package fcn error test,
and class method error tests.
(mstest-error-command-check): New, copied from above.
Plus minor improvements to messages.
Enable testing harness, and MATLAB running under a pipe insted of pty.
(matlab-shell-render-errors-as-anchor): Make sure that the
full file (from the mref expander) succeeds before using it.
(matlab-shell-matlabroot-run): New variable.
(matlab-shell-matlabroot): Use cache
(matlab-shell-collect-command-output): Enable when using pipe
instead of pty. In this case the process doesn't echo, so
we compute bounds of result differently.
Use computations instead of movement to id bounds of captured output.
(matlab-shell-mref-which-fcn): Wrapper around `matlab-shell-mref-which-fcn'
to prevent errors. (ie - allow it to just return nil).
(matlab-shell-mref-converters): Use above.
Make finding errors more robust.
(matlab-shell-render-errors-as-anchor):
Compute actual full file here, and store on the URL instead of using
the matlab reference name.
Improve behavior of return key in this preceeding history text of the shell.
(matlab-shell-mode):
Set comint-get-old-input to below.
(matlab-comint-get-old-input): New.
Only return text to evauate if it was on a prompt before.
(matlab-find-other-window-file-line-column):
If input file fails to translate into a file name, issue a descriptive
error instead of passing nil to find-file-other-window.
Improve error highlighting.
(matlab-shell-render-errors-as-anchor): Fix scanning for the first error
in a session.
(matlab-shell-class-mref-to-file): Add fcn-p flag.
When t, convert to a function name in a package.
(matlab-shell-mref-converters): Add expression to
match functions in a package.
tests/+eltest/+utils/testme.m:
New function in a package that throws an error.
Fix to work w/ newer versions of Emacs.
(matlab-shell-help-mode): Add mouse-1 keybinding for clicking on things.
(mtlab-shell-topic-browser-create-contents): Replace toggling
read-only-mode with `inhibit-read-only' feature.
Add bit @ end to force font-lock to activate for this buffer.
In E27 it seems to not colorize.
(matlab-shell-topic-choose): Don't error if not clicking on a topic now
that mouse-1 also clicks in addition to moving point.
(matlab-shell-topic-mouse-highlight-subtopics):
Use `inhibit-read-only' when adding text properties.