* Support special classdef syntaxes, including class name highlight,
class, property, and method block attribute highlighting, property
variable name highlighting and property variable data-type
highlighting.
* Create matlab mode specific version of regexp-opt so users can
customize keyword lists in any Emacs version.
* Converted the simulink symbols, and constant symbols (like pi) into
lists that can be configured.
Tweaks:
* Simulink symbols are always highlighted. Removed configuration
variable to disable.
* matlab-gaudy-font-lock-keywords is now built from 3 other variables,
making maintenance a little easier.
* set font-lock-multiline to 'undecided. This fixes block comments,
unreachable code, and enables property block var highlighting so
they work when editing inside the block.
* Added "autostart" option to matlab-forward-sexp to aid in font-locking
blocks. This will move until a block the cursor is in is exited.
Correctly highlights parens even when there are other parens in strings and comments.
In mode, init paren-mode with this fcn. Disable older block highlighter.
Remove elipsis highliter from gaudy font lock elements.
Add matlab-up-string-or-comment, and matlab-backward-up-string-or-comment.
Add matlab-move-list-sexp-internal for navigating lists
Add matlab-move-simple-sexp-internal for navigating simple sexp expressions like comments, strings, and lists.
Update matlab-backward-sexp and matlab-forward-sexp replace emacs sexp navigation with above simple-sexp naviation functions.
Update matlb-cursor-comment-string-context to also return bounds to be used for navigating strings and comments.
Regex version had too many mismatch conditions that could go subtly wrong.
New version philosophy:
* A single font-locker for comment, charvec, and comments.
* After matching a start for one of the above, identify the end
location, custom for each type.
This prevents interaction between multiple font lock matchers.
For predicates like matlab-cursor-in-comment, same idea to avoid same problem.
* add a new fcn 'matlab-cursor-comment-string-context' which starts at
beginning of line, and scans to point, identifying where the cursor
is in.
* all predicates now use this new fcn.
Also, fix elipsis as comment highlighter.
Undo previous attempt at supporting strings.
Strategy: Have two sets of font lock functions, one for char vectors, and one for strings.
the "in a string" functions will check for both.
Added ' as an operator when it is placed as a transpose.
* matlab.el (matlab-string-start-regexp): Patch provided by Eric
Ludlam: adds support for Strings in matlab-mode. b = "string
scalar" and b = "string "" scalar" are now highlighted.
* README.org: Revamp help. Remove stale items.
* matlab.el, emacsinit.m: make matlab-shell-emacsclient-command
customizable so people can easily tailor the ">> edit file.m" behavior.
(matlab-comment): For comment on same line. If we run out of space (fill-column)
pull the comment closer to the code.
(matlab-auto-fill): When filling a string, improve checking of when to add brackets
around the string.
(matlab-shell-mode): Disable html rendering trickery.
(gud-matlab-error-regexp): Add a new variant (off by default) as reminder to
go back and get the current ones to handle newer MATLAB error format.
(matlab-ltype-comm): Add support for block comment detection.
(matlab-ltype-block-comm): New fcn.
(matlab-shell): Add TAB binding for TAB for when (tab) doesn't work.
Add support for setting WINDOWID environment variable so that MATLAB
will bring Emacs forward when typing in a figure.
a line, but the next bit of code isn't part of an enclosing fcn, then no.
(matlab-shell-mode): Patch from Eli Merriam;
make comint-input-filter-functions buffer local.
Add matlab-shell-render-html-txt-format hook to comint.
(matlab-txt-format-beg, matlab-txt-format-end): New
(matlab-shell-render-html-txt-format): New.
(matlab-shell-last-anchor-as-frame): New.
(matlab-shell-render-errors-as-anchor): Use last anchor var above.
Note: Not used for any logic yet. ;(
(matlab-shell-previous-matching-input-from-input): patch; Mark Histed
Force cursor to eol.
(matlab-shell-run-region): Force displayed buffer to recycled visible buffers.
is not on the path.
(matlab-shell-window-exists-for-display-completion-flag): New flag
(matlab-shell-tab): Update to set window exists flag (above) when
showing completions, and call hide-completions (below) when done
completing.
(matlab-shell-tab-hide-completions): New.
and running of hooks in a save excursion so point can be moved during
checking for the indentation style.
(matlab-toggle-show-mlint-warnings)
(matlab-toggle-highlight-cross-function-variables):
Always call mlint-minor-mode after a change, but pass in a numeric arg
to force on or off dependent on the current state.
Add binding for return
(matlab-anchor-beg): Add to expression to remove "matlab:"
(matlab-shell-render-html-anchor): Add help-echo.
(gud-matlab-error-regexp): Improve for newere MATLABs
(matlab-shell-last-error-anchor): New
(matlab-shell-render-errors-as-anchor): No longer depend on deleted
stack start/end variables which seem to no longer be active.
Add help-echo to overlay.
Change how 'first' is calculated, apply after the fact.
(gud-matlab-marker-filter):Don't collect if prompt hasn't been seen yet.
(matlab-shell-html-click): Now use below
(matlab-shell-html-go): New from above.
(matlab-indent-function-body): Add 'MathWorks-Standard option.
(matlab-functions-have-end-minor-mode): Add code to flip the
`matlab-functions-have-end' variable.
(matlab-do-functions-have-end-p): New.
(matlab-indent-function-body-p): New function.
(matlab-mode): First detect if fcns have end, save.
Next detect indenting fcn bodies based on 'guess.
(matlab-calculate-indentation-1, matlab-next-line-indentation)
(matlab-frame-init):
Use fcn form of indent-function-body.
comint-output-filter-functions.
(matlab-anchor-beg,matlab-anchor-end)
(gud-matlab-marker-regexp-1,gud-matlab-marker-regexp-2): Moved.
(gud-matlab-marker-regexp-prefix): Updated.
(gud-matlab-error-regexp): Updated.
(matlab-last-frame-returned): Deleted.
(gud-matlab-error-regexp): Updated.
(matlab-shell-render-html-anchor): Remove debugger jumping code.
(matlab-shell-error-stack-start, matlab-shell-error-stack-end): New
(matlab-shell-render-errors-as-anchor): New.
(gud-matlab-marker-filter): Remove support for MATLAB 5 debugging.
I don't think it would have worked anyway. (matlab-one-db-request stuff).
For frame calculations, query out of gud-marker-acc instead of scanning the buffer
which was unreliable.
When stripping individual lines from the return buffer, only do so if
there is no telltale sign of debugger output.
(matlab-url-stack-top-at): New.
(matlab-shell-previus-matlab-url):Call above is new arg is t.
(matlab-find-other-window-file-line-column): Be robust to more types
of file names that might not have .m on the end.
(matlab-shell-last-error): Specify there might be a stack, and choose the top.
(defcustom, etc): Delete old backward compatable stuff for Emacs 19.
(matlab-toggle-functions-have-end-minor-mode): Moved to supress
byte compile warnings.
(matlab-font-lock-nested-function-keyword-match)
(matlab-font-lock-cross-function-variables-match): Make overlay a local variable.
(matlab-mode): Comments about byte-comp warnings.
(gud-matlab-marker-filter,matlab-find-other-window-file-line-column):
Use string-to-number.
(matlab-shell-run-region-or-line): New new mechanism w/ transient-mark-mode.
(matlab-shell-topic-highlight-line): Add comment.
OBSOLETE STUFF:
(matlab-hilit19-patterns,fume-function-name-regexp-matlab)
(fume-find-next-matlab-function-name,matlab-mode-hilit): Delete
(matlab-imenu-generic-expression): Get rid of fume use.
INDENT FIX:
(matlab-valid-end-construct-p,matlab-lattr-block-close)
(matlab-calc-indent,matlab-calculate-indentation)
(matlab-calculate-indentation-1): Handle multiple ends on one line.
MATLAB EDITOR UPDATE:
(matlab-shell-history-file): Calculate from below.
(matlab-shell-running-matlab-version, matlab-shell-running-matlab-release)
(matlab-shell-use-emacs-toolbox, matlab-shell-emacsclient-command):
New variables.
(matlab-shell,matlab-shell-hack-logo,matlab-shell-mode)
(gud-matlab-marker-filter):
Calc version from output.
(matlab-shell-version-scrape): New, for above.
(matlab-shell-next-matching-input-from-input)
(matlab-shell-prev-matching-input-from-input): New commands.
(matlab-find-other-window-via-url): Support opentoline links.