|
3 | 3 |
|
4 | 4 | # Copyright 2025 Free Software Foundation, Inc. |
5 | 5 |
|
6 | | -* Release 7.0 MMM DD, YYYY |
| 6 | +* Release 7.0 Sep 12, 2025 |
7 | 7 |
|
8 | | -These are items that will appear in the next ELPA release. These items are available from MELPA. |
| 8 | +1. New matlab-ts-mode. |
9 | 9 |
|
10 | | -1. New matlab-ts-mode. Commit XXX. |
| 10 | + matlab-ts-mode is a [[https://tree-sitter.github.io/tree-sitter][tree-sitter]], based MATLAB mode using |
| 11 | + https://github.com/acristoffers/tree-sitter-matlab. This new MATLAB mode is a replacement |
| 12 | + for the matlab-mode. |
11 | 13 |
|
12 | | -* News for matlab-ts-mode |
| 14 | + + Improved font-lock (semantic coloring) performance, making editing even more smooth. |
13 | 15 |
|
14 | | - matlab-ts-mode is a [[https://tree-sitter.github.io/tree-sitter][tree-sitter]], based MATLAB mode using |
15 | | - https://github.com/acristoffers/tree-sitter-matlab. This new MATLAB mode is a replacement |
16 | | - for the matlab-mode. |
| 16 | + - More accurate fontification, we now identify language elements accurately and use |
| 17 | + more faces to color them. |
17 | 18 |
|
18 | | - + Improved font-lock (semantic coloring) performance, making editing even more smooth. |
| 19 | + - Fixes edge-case fontification issues when compared with matlab-mode |
19 | 20 |
|
20 | | - - More accurate fontification, we now identify language elements accurately and use |
21 | | - more faces to color them. |
| 21 | + Create issue for this: |
| 22 | + #+begin_src matlab-ts |
| 23 | + x = [1 2; 3 4]; |
| 24 | + y = x'' % this is valid double transpose where matlab-mode gets it wrong |
| 25 | + #+end_src |
22 | 26 |
|
23 | | - - Fixes edge-case fontification issues when compared with matlab-mode |
| 27 | + Function identification, see https://github.com/mathworks/Emacs-MATLAB-Mode/issues/48 |
24 | 28 |
|
25 | | - Create issue for this: |
26 | | - #+begin_src matlab-ts |
27 | | - x = [1 2; 3 4]; |
28 | | - y = x'' % this is valid double transpose where matlab-mode gets it wrong |
29 | | - #+end_src |
| 29 | + - In comments, we now highlight =FIXME=, =TODO=, and =XXX= markers. |
30 | 30 |
|
31 | | - Function identification, see https://github.com/mathworks/Emacs-MATLAB-Mode/issues/48 |
| 31 | + - Fixed fontification of "%% section" to require that the be the start of a comment and |
| 32 | + on their own line. |
32 | 33 |
|
33 | | - - In comments, we now highlight =FIXME=, =TODO=, and =XXX= markers. |
| 34 | + - Variable creation/assignment will be semantically colored. |
34 | 35 |
|
35 | | - - Fixed fontification of "%% section" to require that the be the start of a comment and |
36 | | - on their own line. |
| 36 | + - Now fontify all MATLAB/Simulink factory builtin provided functions, class |
| 37 | + methods/properties, enums, etc. Note, if you override a builtin function with a variable, |
| 38 | + the variable creation/assignment will be colored as a variable, but the use will continue to |
| 39 | + be a function. To avoid this confusing state, use variable names that collide with builtin |
| 40 | + items. |
37 | 41 |
|
38 | | - - Variable creation/assignment will be semantically colored. |
| 42 | + + Improved indent |
39 | 43 |
|
40 | | - - Now fontify all MATLAB/Simulink factory builtin provided functions, class |
41 | | - methods/properties, enums, etc. Note, if you override a builtin function with a variable, |
42 | | - the variable creation/assignment will be colored as a variable, but the use will continue to |
43 | | - be a function. To avoid this confusing state, use variable names that collide with builtin |
44 | | - items. |
| 44 | + - Simplified the semantics for indent. The indent rules are described in matlab-ts-mode.el |
| 45 | + for completeness. |
45 | 46 |
|
46 | | - + Improved indent |
| 47 | + - Improved indent performance, making editing very smooth. |
47 | 48 |
|
48 | | - - Simplified the semantics for indent. The indent rules are described in matlab-ts-mode.el |
49 | | - for completeness. |
| 49 | + - Fixes various edge-case indent issues, some are |
50 | 50 |
|
51 | | - - Improved indent performance, making editing very smooth. |
| 51 | + + Fixed indent of function definition when ellipsis continuations are used. |
52 | 52 |
|
53 | | - - Fixes various edge-case indent issues, some are |
| 53 | + + Auto-indentation of end, see https://github.com/mathworks/Emacs-MATLAB-Mode/issues/33 |
54 | 54 |
|
55 | | - + Fixed indent of function definition when ellipsis continuations are used. |
| 55 | + + Fixed cell and matrices indent alignment problems |
56 | 56 |
|
57 | | - + Auto-indentation of end, see https://github.com/mathworks/Emacs-MATLAB-Mode/issues/33 |
| 57 | + + There's no longer prompting if you want functions to have end's. This is now computed |
| 58 | + automatically. |
58 | 59 |
|
59 | | - + Fixed cell and matrices indent alignment problems |
| 60 | + + Improved fill-paragraph, =M-q=, which will now fill comments and when not in a comment, indent |
| 61 | + the current function or statement. |
60 | 62 |
|
61 | | - + There's no longer prompting if you want functions to have end's. This is now computed |
62 | | - automatically. |
| 63 | + + Accurate type of m-file detection, which improves matlab-sections-minor-mode. |
63 | 64 |
|
64 | | - + Improved fill-paragraph, =M-q=, which will now fill comments and when not in a comment, indent |
65 | | - the current function or statement. |
| 65 | + + Change Log command now work with MATLAB *.m files. |
66 | 66 |
|
67 | | - + Accurate type of m-file detection, which improves matlab-sections-minor-mode. |
| 67 | + Running =C-x 4 a= (add-change-log-entry-other-window) will now insert the name of the function |
| 68 | + or classdef for the current point. |
68 | 69 |
|
69 | | - + Change Log command now work with MATLAB *.m files. |
| 70 | + + Added support for =M-x outline-minor-mode=. Outline headings are =function='s, =classdef='s, |
| 71 | + and "%% heading" comments. |
70 | 72 |
|
71 | | - Running =C-x 4 a= (add-change-log-entry-other-window) will now insert the name of the function |
72 | | - or classdef for the current point. |
| 73 | + + On save fix of function/classdef name now handles buffer names that aren't valid MATLAB |
| 74 | + identifiers. On save fix of function/classdef name handles buffers not associated with files |
| 75 | + on disk. Also fixed cases where detection of scripts failed. |
73 | 76 |
|
74 | | - + Added support for =M-x outline-minor-mode=. Outline headings are =function='s, =classdef='s, |
75 | | - and "%% heading" comments. |
| 77 | + + Improved handling of single quotes for =M-x electric-pair-mode=. These will automatically |
| 78 | + pair |
| 79 | + - Single quote when used to create a single-quoted string, but not when used elsewhere, |
| 80 | + e.g. a matrix transpose. |
| 81 | + - Double quotes for a double-quoted string. |
| 82 | + - Parenthesis =()=, Vectors, =[]=, and Cells ={}=. |
76 | 83 |
|
77 | | - + On save fix of function/classdef name now handles buffer names that aren't valid MATLAB |
78 | | - identifiers. On save fix of function/classdef name handles buffers not associated with files |
79 | | - on disk. Also fixed cases where detection of scripts failed. |
| 84 | + + We now highlight starting and ending string quote when the point is on the start or end single |
| 85 | + or double quote. |
80 | 86 |
|
81 | | - + Improved handling of single quotes for =M-x electric-pair-mode=. These will automatically |
82 | | - pair |
83 | | - - Single quote when used to create a single-quoted string, but not when used elsewhere, |
84 | | - e.g. a matrix transpose. |
85 | | - - Double quotes for a double-quoted string. |
86 | | - - Parenthesis =()=, Vectors, =[]=, and Cells ={}=. |
| 87 | + + Improved (more predictable) s-expression commands |
87 | 88 |
|
88 | | - + We now highlight starting and ending string quote when the point is on the start or end single |
89 | | - or double quote. |
| 89 | + #+begin_example |
| 90 | + C-M-f Move forward by s-expression, forward-sexp |
| 91 | + - If point is on the start of an s-expression, move to the end. |
| 92 | + - If point is on the end of an s-expression, move to the start of the next s-expression |
| 93 | + at the same level. If there is no next s-expression, no movement occurs. |
| 94 | + C-M-b Move backward by s-expression, backward-sexp |
| 95 | + - If point is on the end of an s-expression, move to the start. |
| 96 | + - If point is on the start of an s-expression, move to the start of the prior s-expression |
| 97 | + at the same level. If there is no prior s-expression, no movement occurs. |
| 98 | + C-M-SPC Mark s-expression, place point at beginning of sexp and mark at the end, mark-sexp |
| 99 | + C-M-@ Same as C-M-SPC. |
| 100 | + C-M-k Kill s-expression, kill-sexp |
| 101 | + C-M-t Transpose s-expressions, transpose-sexp |
| 102 | + #+end_example |
90 | 103 |
|
91 | | - + Improved (more predictable) s-expression commands |
| 104 | + + Improved sentence commands. Also fixes bugs, e.g. M-a in old matlab-mode can result in error |
| 105 | + "Wrong number of arguments: (0 . 0), 1" and now works in matlab-ts-mode. |
92 | 106 |
|
93 | | - #+begin_example |
94 | | - C-M-f Move forward by s-expression, forward-sexp |
95 | | - - If point is on the start of an s-expression, move to the end. |
96 | | - - If point is on the end of an s-expression, move to the start of the next s-expression |
97 | | - at the same level. If there is no next s-expression, no movement occurs. |
98 | | - C-M-b Move backward by s-expression, backward-sexp |
99 | | - - If point is on the end of an s-expression, move to the start. |
100 | | - - If point is on the start of an s-expression, move to the start of the prior s-expression |
101 | | - at the same level. If there is no prior s-expression, no movement occurs. |
102 | | - C-M-SPC Mark s-expression, place point at beginning of sexp and mark at the end, mark-sexp |
103 | | - C-M-@ Same as C-M-SPC. |
104 | | - C-M-k Kill s-expression, kill-sexp |
105 | | - C-M-t Transpose s-expressions, transpose-sexp |
106 | | - #+end_example |
| 107 | + #+begin_example |
| 108 | + M-e Move forward to next end of sentence, forward-sentence |
| 109 | + M-a Move backward to start of sentence, backward-sentence |
| 110 | + M-k Kill from point to end of sentence, kill-sentence |
| 111 | + C-x DEL Kill back from point to start of sentence, backward-kill-sentence |
| 112 | + #+end_example |
107 | 113 |
|
108 | | - + Improved sentence commands. Also fixes bugs, e.g. M-a in old matlab-mode can result in error |
109 | | - "Wrong number of arguments: (0 . 0), 1" and now works in matlab-ts-mode. |
| 114 | + + Some older matlab-mode menu items and keybindings have been removed because there are |
| 115 | + standard replacements. Examples: |
110 | 116 |
|
111 | | - #+begin_example |
112 | | - M-e Move forward to next end of sentence, forward-sentence |
113 | | - M-a Move backward to start of sentence, backward-sentence |
114 | | - M-k Kill from point to end of sentence, kill-sentence |
115 | | - C-x DEL Kill back from point to start of sentence, backward-kill-sentence |
116 | | - #+end_example |
| 117 | + - To comment or uncomment code use select the code and type =M-;= which is the standard |
| 118 | + way to do this in Emacs. The older =C-c ;= and =C-c :" matlab only comment and uncomment |
| 119 | + commands no longer exist. |
117 | 120 |
|
118 | | - + Some older matlab-mode menu items and keybindings have been removed because there are |
119 | | - standard replacements. Examples: |
| 121 | + - Completion - we used to have =M-TAB= to complete symbol and this has been replaced by |
| 122 | + using LSP mode. |
120 | 123 |
|
121 | | - - To comment or uncomment code use select the code and type =M-;= which is the standard |
122 | | - way to do this in Emacs. The older =C-c ;= and =C-c :" matlab only comment and uncomment |
123 | | - commands no longer exist. |
| 124 | + + matlab-shell now has one correct ways of running code sections, via menu =MATLAB -> Code |
| 125 | + Sections -> Run Section (C-c C-<return>)= or and the older =MATLAB -> Run Code Section= |
| 126 | + (matlab-shell-run-code-section) because it was duplication and wasn't correctly handling all |
| 127 | + cases. |
124 | 128 |
|
125 | | - - Completion - we used to have =M-TAB= to complete symbol and this has been replaced by |
126 | | - using LSP mode. |
| 129 | + + Builtin items such as namespaces, functions, classes, enumerations, etc. provided by the |
| 130 | + MATLAB/Simulink products are shown in =font-lock-builtin-face=. Using a different face for |
| 131 | + builtins vs items you created improves readability. It also helps to avoid mistakes where you |
| 132 | + override a builtin with a variable. The number of builtin items in the MATLAB/Simulink |
| 133 | + R2025a.update1 product family is 153,627. |
127 | 134 |
|
128 | | - + matlab-shell now has one correct ways of running code sections, via menu =MATLAB -> Code |
129 | | - Sections -> Run Section (C-c C-<return>)= or and the older =MATLAB -> Run Code Section= |
130 | | - (matlab-shell-run-code-section) because it was duplication and wasn't correctly handling all |
131 | | - cases. |
| 135 | + + When creating a variable that matches a builtin item |
| 136 | + matlab-ts-mode-variable-override-builtin-face. This makes it easy to see when you are |
| 137 | + accidently shadowing a builtin function, class, etc. For example, in the following |
| 138 | + we create a lines variable that shadows the MATLAB built-in lines function: |
132 | 139 |
|
133 | | - + Builtin items such as namespaces, functions, classes, enumerations, etc. provided by the |
134 | | - MATLAB/Simulink products are shown in =font-lock-builtin-face=. Using a different face for |
135 | | - builtins vs items you created improves readability. It also helps to avoid mistakes where you |
136 | | - override a builtin with a variable. The number of builtin items in the MATLAB/Simulink |
137 | | - R2025a.update1 product family is 153,627. |
| 140 | + #+begin_src matlab |
| 141 | + lines = ['line1', 'line2'] |
| 142 | + #+end_src |
138 | 143 |
|
139 | | - + When creating a variable that matches a builtin item |
140 | | - matlab-ts-mode-variable-override-builtin-face. This makes it easy to see when you are |
141 | | - accidently shadowing a builtin function, class, etc. For example, in the following |
142 | | - we create a lines variable that shadows the MATLAB built-in lines function: |
| 144 | + Using a non-builtin name for a variable results in the standard =font-lock-variable-name-face= |
| 145 | + being used: |
143 | 146 |
|
144 | | - #+begin_src matlab |
145 | | - lines = ['line1', 'line2'] |
146 | | - #+end_src |
| 147 | + #+begin_src matlab |
| 148 | + myLines = ['line1', 'line2'] |
| 149 | + #+end_src |
147 | 150 |
|
148 | | - Using a non-builtin name for a variable results in the standard =font-lock-variable-name-face= |
149 | | - being used: |
| 151 | + + MLint MATLAB code analyzer integration via flycheck. Flycheck is an improved on-the-fly |
| 152 | + error reporting system when compared with the mlint integration in the older matlab-mode. |
150 | 153 |
|
151 | | - #+begin_src matlab |
152 | | - myLines = ['line1', 'line2'] |
153 | | - #+end_src |
| 154 | + + New "MATLAB -> View mlint code analyzer messages" menu item. |
154 | 155 |
|
155 | | - + MLint MATLAB code analyzer integration via flycheck. Flycheck is an improved on-the-fly |
156 | | - error reporting system when compared with the mlint integration in the older matlab-mode. |
| 156 | + + New "MATLAB -> View tree-sitter parse errors" menu item that lets one inspect |
| 157 | + the parse errors found by the MATLAB tree-sitter backing the new matlab-ts-mode. |
157 | 158 |
|
158 | | - + New "MATLAB -> View mlint code analyzer messages" menu item. |
| 159 | + + New "MATLAB -> Jump to function" menu item. |
159 | 160 |
|
160 | | - + New "MATLAB -> View tree-sitter parse errors" menu item that lets one inspect |
161 | | - the parse errors found by the MATLAB tree-sitter backing the new matlab-ts-mode. |
| 161 | + + New "MATLAB -> Check setup" menu item that helps validate flycheck and lsp-mode are |
| 162 | + setup correctly. |
162 | 163 |
|
163 | | - + New "MATLAB -> Jump to function" menu item. |
164 | | - |
165 | | - + New "MATLAB -> Check setup" menu item that helps validate flycheck and lsp-mode are |
166 | | - setup correctly. |
167 | | - |
168 | | - + New "MATLAB -> Editing -> ..." submenu that contains helpful editing commands. |
| 164 | + + New "MATLAB -> Editing -> ..." submenu that contains helpful editing commands. |
169 | 165 |
|
170 | 166 | 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]]. |
171 | 167 |
|
|
0 commit comments