File: NEWS.org

package info (click to toggle)
matlab-mode 7.2.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 12,136 kB
  • sloc: lisp: 167,760; makefile: 5; sh: 5
file content (335 lines) | stat: -rw-r--r-- 17,135 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
#+startup: showall
#+options: toc:nil

# Copyright (C) 2025 Free Software Foundation, Inc.

* Release 7.2.1 Oct 30, 2025

1. In matlab-ts-mode, fix indent involving catch clause with a comment.

* Release 7.2.0 Oct 29, 2025

1. Updated matlab-ts-mode to use latest matlab tree-sitter v1.2.3 branch [[https://github.com/acristoffers/tree-sitter-matlab/tree/abi/14][abi/14]] at [[https://github.com/acristoffers/tree-sitter-matlab/tree/9a4e65df4bb08e2b019ca2ef16b2d8f3d95ce978][9a4e65d]]. This
   fixes parse on a number of MATLAB language constructs, which is visible behavior improvements,
   so bumping revision to 7.2.0.

2. In matlab-ts-mode, don't offer to fix function/classdef names when there are syntax errors
   because this can lead to changing the name of other identifiers and not the function/classdef
   name.

* Release 7.1.2 Oct 16, 2025

1. matlab-is-matlab-file: This function identifies when the content of a *.m file
   is MATLAB code, if it's not MATLAB code, Emacs defaults to Objective-C. This fixes
   a case where a *.m contains MATLAB code and the first line is a @function_handle.

* Release 7.1.1 Oct 1, 2025

1. matlab-ts-mode: fix semantic movement in strings. Now C-M-f, C-M-b, C-M-SPC work when point is
   within strings.

* Release 7.1.0 Sep 29, 2025

1. Improved matlab-ts-mode imenu. The imenu index now creates indices for code sections defined by
   "%% heading comments". In addition, the menu was updated to have structure:

   - Class
   - Function
   - Section

   Previously, imenu was a flat list without code sections index entries.

* Release 7.0.1 Sep 13, 2025

1. emacsrunregion fix, https://github.com/mathworks/Emacs-MATLAB-Mode/pull/55

* Release 7.0.0 Sep 12, 2025

1. New matlab-ts-mode.

   matlab-ts-mode is a [[https://tree-sitter.github.io/tree-sitter][tree-sitter]], based MATLAB mode using
   https://github.com/acristoffers/tree-sitter-matlab. This new MATLAB mode is a replacement
   for the matlab-mode.

   + Improved font-lock (semantic coloring) performance, making editing even more smooth.

     - More accurate fontification, we now identify language elements accurately and use
       more faces to color them.

     - Fixes edge-case fontification issues when compared with matlab-mode

       Create issue for this:
         #+begin_src matlab-ts
         x = [1 2; 3 4];
         y = x''               % this is valid double transpose where matlab-mode gets it wrong
         #+end_src

       Function identification, see https://github.com/mathworks/Emacs-MATLAB-Mode/issues/48

     - In comments, we now highlight =FIXME=, =TODO=, and =XXX= markers.

     - Fixed fontification of "%% section" to require that the be the start of a comment and
       on their own line.

     - Variable creation/assignment will be semantically colored.

     - Now fontify all MATLAB/Simulink factory builtin provided functions, class
       methods/properties, enums, etc. Note, if you override a builtin function with a variable,
       the variable creation/assignment will be colored as a variable, but the use will continue to
       be a function.  To avoid this confusing state, use variable names that collide with builtin
       items.

   + Improved indent

     - Simplified the semantics for indent. The indent rules are described in matlab-ts-mode.el
       for completeness.

     - Improved indent performance, making editing very smooth.

     - Fixes various edge-case indent issues, some are

       + Fixed indent of function definition when ellipsis continuations are used.

       + Auto-indentation of end, see https://github.com/mathworks/Emacs-MATLAB-Mode/issues/33

       + Fixed cell and matrices indent alignment problems

   + There's no longer prompting if you want functions to have end's. This is now computed
     automatically.

   + Improved fill-paragraph, =M-q=, which will now fill comments and when not in a comment, indent
     the current function or statement.

   + Accurate type of m-file detection, which improves matlab-sections-minor-mode.

   + Change Log command now work with MATLAB *.m files.

     Running =C-x 4 a= (add-change-log-entry-other-window) will now insert the name of the function
     or classdef for the current point.

   + Added support for =M-x outline-minor-mode=. Outline headings are =function='s, =classdef='s,
     and "%% heading" comments.

   + On save fix of function/classdef name now handles buffer names that aren't valid MATLAB
     identifiers.  On save fix of function/classdef name handles buffers not associated with files
     on disk.  Also fixed cases where detection of scripts failed.

   + Improved handling of single quotes for =M-x electric-pair-mode=. These will automatically
     pair
     - Single quote when used to create a single-quoted string, but not when used elsewhere,
       e.g. a matrix transpose.
     - Double quotes for a double-quoted string.
     - Parenthesis =()=, Vectors, =[]=, and Cells ={}=.

   + We now highlight starting and ending string quote when the point is on the start or end single
     or double quote.

   + Improved (more predictable) s-expression commands

     #+begin_example
       C-M-f   Move forward by s-expression, forward-sexp
               - If point is on the start of an s-expression, move to the end.
               - If point is on the end of an s-expression, move to the start of the next s-expression
                 at the same level. If there is no next s-expression, no movement occurs.
       C-M-b   Move backward by s-expression, backward-sexp
               - If point is on the end of an s-expression, move to the start.
               - If point is on the start of an s-expression, move to the start of the prior s-expression
                 at the same level. If there is no prior s-expression, no movement occurs.
       C-M-SPC Mark s-expression, place point at beginning of sexp and mark at the end, mark-sexp
       C-M-@   Same as C-M-SPC.
       C-M-k   Kill s-expression, kill-sexp
       C-M-t   Transpose s-expressions, transpose-sexp
     #+end_example

   + Improved sentence commands. Also fixes bugs, e.g. M-a in old matlab-mode can result in error
     "Wrong number of arguments: (0 . 0), 1" and now works in matlab-ts-mode.

     #+begin_example
       M-e      Move forward to next end of sentence, forward-sentence
       M-a      Move backward to start of sentence, backward-sentence
       M-k      Kill from point to end of sentence, kill-sentence
       C-x DEL  Kill back from point to start of sentence, backward-kill-sentence
     #+end_example

   + Some older matlab-mode menu items and keybindings have been removed because there are
     standard replacements. Examples:

     - To comment or uncomment code use select the code and type =M-;= which is the standard
       way to do this in Emacs. The older =C-c ;= and =C-c :" matlab only comment and uncomment
       commands no longer exist.

     - Completion - we used to have =M-TAB= to complete symbol and this has been replaced by
       using LSP mode.

   + matlab-shell now has one correct ways of running code sections, via menu =MATLAB -> Code
     Sections -> Run Section (C-c C-<return>)= or and the older =MATLAB -> Run Code Section=
     (matlab-shell-run-code-section) because it was duplication and wasn't correctly handling all
     cases.

   + Builtin items such as namespaces, functions, classes, enumerations, etc. provided by the
     MATLAB/Simulink products are shown in =font-lock-builtin-face=. Using a different face for
     builtins vs items you created improves readability. It also helps to avoid mistakes where you
     override a builtin with a variable. The number of builtin items in the MATLAB/Simulink
     R2025a.update1 product family is 153,627.

   + When creating a variable that matches a builtin item
     matlab-ts-mode-variable-override-builtin-face. This makes it easy to see when you are
     accidently shadowing a builtin function, class, etc. For example, in the following
     we create a lines variable that shadows the MATLAB built-in lines function:

      #+begin_src matlab
        lines = ['line1', 'line2']
      #+end_src

    Using a non-builtin name for a variable results in the standard =font-lock-variable-name-face=
    being used:

      #+begin_src matlab
        myLines = ['line1', 'line2']
      #+end_src

   + MLint MATLAB code analyzer integration via flycheck. Flycheck is an improved on-the-fly
     error reporting system when compared with the mlint integration in the older matlab-mode.

   + New "MATLAB -> View mlint code analyzer messages" menu item.

   + New "MATLAB -> View tree-sitter parse errors" menu item that lets one inspect
     the parse errors found by the MATLAB tree-sitter backing the new matlab-ts-mode.

   + New "MATLAB -> Jump to function" menu item.

   + New "MATLAB -> Check setup" menu item that helps validate flycheck and lsp-mode are
     setup correctly.

   + New "MATLAB -> Editing -> ..." submenu that contains helpful editing commands.

2. Added [[file:doc/matlab-netshell-for-windows.org][doc/matlab-netshell-for-windows.org]]. Commit [[https://github.com/mathworks/Emacs-MATLAB-Mode/commit/b0222ac2c067292b43fba91a60b39a262c6149d3][b0222ac]].

   #+begin_example

    +--------------- Emacs ----------------+         +------------  MATLAB  ------------+
    |                                      |         |                                  |
    | (1) M-x matlab-netshell-server-start |         | (2) connect to Emacs             |
    |                                      |<=======>| >> addpath <matlab-mode>/toolbox |
    | (3) Visit script *.m files and use   |         | >> emacsinit                     |
    |     "MATLAB -> Code Sections" menu   |         | >>                               |
    |     or the key bindings              |         |                                  |
    +--------------------------------------+         +----------------------------------+

   #+end_example

3. Setup imenu for *.tlc files. Commit [[https://github.com/mathworks/Emacs-MATLAB-Mode/commit/7d0d26a0312cf3a7b0cb07ff982f1b5274f96424][7d0d26a]] and [[https://github.com/mathworks/Emacs-MATLAB-Mode/commit/e3e6952d57955764d48e9f9432247903672297dc][e3e6952]].

4. Fix imenu for ~*.m~ files and added [[file:doc/matlab-imenu.org][doc/matlab-imenu.org]] on using it. Commit [[https://github.com/mathworks/Emacs-MATLAB-Mode/commit/a54d2061bd31c9cba32fc5e0e0ecf34b900e26d1][a54d206]].

   Now typing ~M-g i~ (or ~M-x imenu~) when visiting a ~*.m~ file will let you quickly jump to
   function declarations.

5. Indent first non-help comment. Commit [[https://github.com/mathworks/Emacs-MATLAB-Mode/commit/a63e0fe398fa0e49ef0ca71eb1371a0b45ce62cd][a63e0fe]].

   #+begin_src matlab
     function b = foo
     % This is the help for function foo
     % which can span multiple lines.

         % This is a non-help comment for the following code
         b = 1;
     end
   #+end_src

6. [[https://github.com/mathworks/MATLAB-language-server][MATLAB Language Server]], matlabls, for code navigation, code completion, go to definition,
   find references, and more. See [[file:doc/matlab-language-server-lsp-mode.org][doc/matlab-language-server-lsp-mode.org]]. Commit [[https://github.com/mathworks/Emacs-MATLAB-Mode/commit/e9ab4fb8b0fedc0e769f4c7e0d86bd26a08567f8][e9ab4fb]].

7. Improved Emacs tramp remote *M-x matlab-shell*. Commit [[https://github.com/mathworks/Emacs-MATLAB-Mode/commit/64e1805d36a362111ac3518a4fd7428c60483079][64e1805]].

   Prior to this commit, matlab-shell running through Emacs tramp partially.  This commit enables
   remote matlab-shell and enables remote debugging, hyperlinks, etc.  See [[https://github.com/mathworks/Emacs-MATLAB-Mode/blob/default/doc/remote-matlab-shell.org][remote-matlab-shell.org]]
   documentation.

8. Remove font-lock-constant-face from help comments. Commit [[https://github.com/mathworks/Emacs-MATLAB-Mode/commit/1d935b364dd90449a9dfa9a8743e275359096289][1d935b3]].

   A general guideline for help comments is to capitalize functions such as PLOT as references and
   matlab-mode used to make these a font-lock-constant-face inside of comments. However, often capital items are
   not references and make comments look bad, so removed these. Likewise, there were other uses of
   font-lock-constant-face that look odd, so removed these.

9. Revamped MATLAB code sections script support issues. Commit [[https://github.com/mathworks/Emacs-MATLAB-Mode/commit/e75ebf5a88b02833d700bcf9ee4419c5888caf12][e75ebf5]] and others.

   - Added [[file:doc/matlab-code-sections.org][doc/matlab-code-sections.org]].

   - MATLAB code sections is now a minor mode, *matlab-sections-minor-mode* which is automatically
     enabled when in a MATLAB script. A MATLAB script contains one or more MATLAB commands or
     function calls.

   - When visiting a MATLAB *.m script, you now have *MATLAB -> Code Sections* menu which includes
     all command and there's a help entry explaining how to use the code sections capabilities.

   - The default key bindings for MATLAB code section functions are now ~C-c C-<KEY>~ and
     ~C-c M-<KEY>~, which means code sections key bindings work on system without the super
     (aka Windows) key.  Super key bindings can be added by customizing
     ~matlab-sections-use-super-key~.

     : C-c C-SPC        matlab-sections-mark-section

     : C-c C-<up>       matlab-sections-backward-section
     : C-c C-<down>     matlab-sections-forward-section
     : C-c C-<left>     matlab-sections-beginning-of-section
     : C-c C-<right>    matlab-sections-end-of-section

     : C-c M-<up>       matlab-sections-move-section-up
     : C-c M-<down>     matlab-sections-move-section-down

     : C-c C-<return>   matlab-sections-run-section
     : C-c M-<return>   matlab-sections-run-prior-sections

   - Improved performance in detecting MATLAB *.m file type, which gives a small speedup to
     matlab-mode.

   - MATLAB code sections are now identified by header comments of form "%% description" and no
     longer get confused with "%%%%%" comment blocks.

   - Fixed [[https://github.com/mathworks/Emacs-MATLAB-Mode/issues/14][issue #14]] and many other fixes.

   - Added tests, [[https://github.com/mathworks/Emacs-MATLAB-Mode/issues/8][issue 8]].

10. Enhanced *M-x matlab-shell* to search for MATLAB in standard installation locations if it is not
    on the path. If we are unable to find MATLAB, we now generate an error explaining how to setup
    your system to make matlab-shell work. Commit [[https://github.com/mathworks/Emacs-MATLAB-Mode/commit/9773232626919a6319e3ac36bc7e0cdd99c46585][9773232]].

11. Improved fill-paragraph to work when point is before a comment. Commit [[https://github.com/mathworks/Emacs-MATLAB-Mode/commit/8686c85cf376f90549d3aaf8478ed381f22282aa][8686c85]].

12. Add TAB completion in matlab-shell for MATLAB R2025a. Commit [[https://github.com/mathworks/Emacs-MATLAB-Mode/commit/e92fe818acd71c4bead7bdf837e791b5aa456d11][e92fe81]] and several followup
    commits.

13. Fixed Emacs 30 lisp compiler warnings. Commit [[https://github.com/mathworks/Emacs-MATLAB-Mode/commit/89b585e6d935fd36176791caa66d4dad0405407b][89b585e]].

14. Fixed [[https://github.com/mathworks/Emacs-MATLAB-Mode/issues/56][issue #56]], *.m files within archives, e.g. foo.zip containing bar.m

* Release 6.3 Dec 8, 2024

This is the first [[https://elpa.gnu.org/packages//matlab-mode.html][ELPA matlab-mode]] release (commit [[https://github.com/mathworks/Emacs-MATLAB-Mode/tree/935137844e16551a5369f928d2591556be7fb9c2][9351378]]).  This release provides:

1. *matlab-mode*  for editing *.m MATLAB files

2. *M-x matlab-shell* for running and debugging MATLAB within Emacs (Unix-only)

3. *M-x matlab-netsell* for interacting with a separate MATLAB from Emacs on Microsoft Windows.

4. *Code sections* for working with MATLAB script code files.

5. *Org-mode* support for creating scientific papers using MATLAB and org babel.

6. *tlc-mode* for editing ~*.tlc~ files

* Older releases

matlab-mode was created in 1991.  Change history from 2005 till now
can be found in https://github.com/mathworks/Emacs-MATLAB-Mode.

The prior location for matlab-mode was [[https://sourceforge.net/projects/matlab-emacs/][https://sourceforge.net/projects/matlab-emacs/]].  Locations
prior to sourceforge no longer exist.

See older history [[https://github.com/mathworks/Emacs-MATLAB-Mode/blob/2ff6f96294353f3f17757a2522a64c427929ff01/ChangeLog][ChangeLog]], [[https://github.com/mathworks/Emacs-MATLAB-Mode/blob/528a4fc79426adc7cf9a484d231dec7defd9c5f4/ChangeLog.old1][ChangeLog.old1]], [[https://github.com/mathworks/Emacs-MATLAB-Mode/blob/528a4fc79426adc7cf9a484d231dec7defd9c5f4/ChangeLog.old2][ChangeLog.old2]], and older [[https://github.com/mathworks/Emacs-MATLAB-Mode/blob/b7e170ee37a23b6852e461772de1c4e986bb6833/NEWS.org][NEWS.org]].

# LocalWords:  showall ELPA MELPA fontification fontify sexp SPC LSP builtins MLint flycheck lsp
# LocalWords:  netshell emacsinit imenu matlabls netsell sourceforge MMM YYYY emacsrunregion