[GNU ELPA] Matlab-Mode version 8.2.0
ELPA update <[email protected]> Sun, 19 Apr 2026 17:05:21 -0400
| Newsgroups | gmane.emacs.sources |
|---|---|
| Message-ID | <[email protected]> |
Version 8.2.0 of package Matlab-Mode has just been released in GNU ELPA.
You can now find it in M-x list-packages RET.
Matlab-Mode describes itself as:
====================================
Major mode for MATLAB(R) dot-m files
====================================
More at https://elpa.gnu.org/packages/matlab-mode.html
## Summary:
1 Emacs MATLAB-mode
═══════════════════
[MathWorks] MATLAB® and [GNU Emacs] integration:
1. MATLAB mode, *matlab-ts-mode* or *matlab-mode*, for editing `*.m'
files.
• Edit MATLAB code with syntax highlighting, indentation (code
formatting), and semantic movement.
• Lint MATLAB code with fix-it's using the MATLAB Code Analyzer.
The *matlab-ts-mode* is a more capable, performant, and accurate
than *matlab-mode*.
2. *Code navigation and more*
• The [MATLAB Language Server with Emacs], matlabls, provides code
navigation, code completion, go to definition, find references,
and more.
• Imenu support for quickly jumping to function declarations in the
current `*.m' or `*.tlc' file. See [doc/matlab-imenu.org].
## Recent NEWS:
1 Release 8.2.0 Apr-19-2026
═══════════════════════════
1. matlab-ts-mode: structural changes to electric indent for improved
performance
• Numeric matrices are now aligned directly without additional
tree-sitter API queries For example, a file with large numeric
multi-line matrices (one row per line) went from ~100s to 5s for
indent-region on the buffer.
• Several optimizations and eliminations of tree-sitter API calls
• Many additional small performance improvements that add up.
• Added TODO comments in the code for possible future optimizations
2. whitespace at end of lines is now removed during indent
2 Release 8.1.2 Mar-15-2026
═══════════════════════════
1. matlab-ts-mode: improved performance of electric indent.
Previously we were using (treesit-node-at (point)) to obtain the
language elements to indent. Now we use treesit-capture-query which
is faster.
This is the first step in speeding up electric indent. Future
possible optimizations include using symbols from the
treesit-capture for language element identification rather than
treesit-node-type, simplification of matrix alignment and the other
alignments, additional removal of treesit-node-at, etc.
2. matlab-ts-mode: fixed trailing comment alignment problems.
Now we only align consecutive statements when in same scope. For
example, first comment below is in a different scope so not aligned
with the last two comments:
┌────
│ fooBarGooToo = [something, ...
│ [otherThing(wIndex) : theEndIndex(wIndex) - 1, ...
│ otherThing(wIndex) + 1 : theEndIndex(wIndex); ...
│ otherThing(wIndex) + 1 : theEndIndex(wIndex), ...
│ otherThing(wIndex) : theEndIndex(wIndex) - 1]]; %#ok<AGROW>
│ P0 = [P0, foo.blah{wIndex}.foobarGooOrig(:, 1 : end - 1)]; %#ok<AGROW>
│ P1 = [P1, foo.blah{wIndex}.foobarGooOrig(:, 2 : end)]; %#ok<AGROW>
└────
3. matlab-ts-mode: when using keywords (end, arguments, etc.) as
variables or functions, they now indent correctly. Note, MATLAB
allows end.m, arguments = 10, etc.
4. matlab-ts-mode: An ellipsis at start of file no longer causes a
hang
5. matlab-shell: add matlab-shell-before-start-hook
6. matlab-shell: hyperlink syntax error
3 Release 8.1.1 Feb-22-2026
═══════════════════════════
1. Enable matlab-ts-mode with Emacs 30.2 which is using tree-sitter
ABI 15 (or 14). Note, Emacs 30.1 is using tree-sitter ABI 14 which
continues to work.
2. Update installation instructions for the MATLAB Language Server
3. Fix mlint.el issue ("Do not permit multiple groups with the same
name")
4 Release 8.1.0 Feb-16-2026
═══════════════════════════
1. The behavior of TAB and RET in matlab-ts-mode to electric
indent/code-format adjacent lines of code. There is no change in
the indent/code-format rules. The goal of this change is to improve
editing interactions with the MATLAB indent/code-format engine.
• TAB behavior example. Given
┌────
│ a = 1;
│ foo = 2;
│ foobar = 3;
└────
A TAB on any these code lines results in:
┌────
│ a = 1;
│ foo = 2;
│ foobar = 3;
└────
• RET behavior example. Given
┌────
│ v1=1;
│ var2= [1,1];
└────
Typing the 4 characters, `x=3;', on the 3rd line (without typing
RET) gives us:
┌────
│ v1=1;
│ var2= [1,1];
│ x=3;
└────
When we type the RET, we get:
┌────
│ v1 = 1;
│ var2 = [1, 1];
│ x = 3;
│
└────
Now, if we type a RET at the end of the 2nd line, we get the
following. Notice that the alignment of x assignment has changed.
┌────
│ v1 = 1;
│ var2 = [1, 1];
│
│ x = 3;
│
└────
1. An "electric ends" edge case issues in matlab-ts-mode has been
fixed. When typing a statement
… …