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
  …  …

Reply via email to