Change to code formatting behaviour in editor in R2021b?
25 views (last 30 days)
Does anyone know if this is a change in default formatting behaviour for indents and formatting behaviour or whether I am just missing some setting that I had in R2019b? (I have compared my settings between R2019b and R2021b and they look the same and were presumably imported on installing r2021b)
Below is the same file in R2019b (top) and R2021b (bottom). I did what I always do when creating a new function, which is to type the signature line, a blank line and then the 'end' line, then after typing 'end' I hit up arrow to take me to the previous line to start typing my function body.
This has always been my method for creating new functions. I have all auto-completion things turned off and always have, I like to type my own 'end', close parentheses, quotes, etc. But while in R2019b this used to put my cursor exactly where I want to type, at the correct indent I now find in R2021b that pressing up arrow after typing 'end' takes me to the start of the line, which is just really annoying as I clearly don't want to start typing there.
This has only changed in behaviour since I updated to R2021b.
Duncan Lilley on 3 Dec 2021
I can see two possible options here:
1. Enable automatic completions for block statements in the preferences. This can be done through the preference panel (MATLAB > Editor/Debugger > Automatic Completions) and checking the boxes under "Autocomplete block endings". Setting these preferences will cause MATLAB to automatically insert the "end" after you type the starting keywords (i.e. "if" or "function") and then insert a return.
2. Alternatively, you should be able to regain the old behavior by modifying the following setting:
s = settings;
s.matlab.editor.indent.RemoveAutomaticWhitespace.PersonalValue = 0;
This should no longer remove whitespaces as you continue to type.
Please note that this setting is currently not documented, and is therefore subject to potential change in future releases of MATLAB.
Do either of these help with this?
More Answers (1)
DGM on 18 Nov 2021
I don't have anything newer than R2019b, but the documentation suggests that the same should apply.
The SmartIndentWhileTyping setting under the Editor>Language tab is likely what you want to enable. The documentation indicates that this is disabled by default.