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