Intelligent code completion for matlab

バージョン 1.14.0.0 (6.04 KB) 作成者: Leif Persson
Code completion for the Matlab editor.
ダウンロード: 1.4K
更新 2009/10/9

ライセンスの表示

The Matlab editor provides an integrated code completion through the tab key. However the scope of this completion is the entire Matlab path, so the number of matches is usually large when matching a few characters. On the other hand the native Matlab code completion is sometimes too restrictive since it only matches sequential characters. I have found the more flexible matching of TextMate very convenient to use, where e.g. the string 'fcn' can be completed to 'function'. The purpose of this macro is to provide such a more flexible matching algorithm, but with scope restricted to the current document.
To use this macro you must install EditorMacro by Yair Altman, put this file (Matlab_Code_Completion_Macro.m) on your Matlab path and add the following lines to your startup.m file:
macros = EditorMacro('ctrl-space',@Matlab_Code_Completion_Macro, 'run');
macros = EditorMacro('ctrl-alt-space',@Matlab_Code_Completion_Macro, 'run');
macros = EditorMacro('shift-ctrl-space',@Matlab_Code_Completion_Macro, 'run');
To use the macro, type in the Matlab editor a string to be completed, e.g.,
fo
To find possible completions, press ctrl-space.
Then you get the suggested code completion
fo<<--{for}
Pressing ctrl-space once again you get the next best completion
fo<<--{function}
and pressing ctrl-space again
fo<<--{parfor}
Pressing ctrl-shift-space we step back to the previous suggestion
fo<<--{function}
and this completion is chosen by pressing ctrl-alt-space, so we get
function
Now with the caret positioned at the end of the function keyword, we press ctrl-alt-space again and get
function [
Now we can type a variable list
function [y,z
and type ctrl-alt-space again to get
function [y,z] =
Type the function name
function [z,w] = f
and press ctrl-alt-space again
function [z,w] = f(
Type a variable list
function [z,w] = f(x,y
and press ctrl-alt-space again
function [z,w] = f(x,y)
Next, you can type the function body, for example
function [z,w] = f(x,y)
z=x+y; w=z-y;
(to get correct indentation you may need to apply the smart indent, e.g., by the shortcut ctrl-i). Finally, you can use ctrl-alt-space again to get the end statement
function [z,w] = f(x,y)
z=x+y; w=z-y;
end
Similar completions work for if, elseif, for and while.

In conclusion, I have found this macro a valuable complement to the native Matlab code completion, and it has saved me a lot of typing and searching for variable and function names.
I hope you find it useful. Enjoy!

引用

Leif Persson (2024). Intelligent code completion for matlab (https://www.mathworks.com/matlabcentral/fileexchange/25217-intelligent-code-completion-for-matlab), MATLAB Central File Exchange. に取得済み.

MATLAB リリースの互換性
作成: R2009a
すべてのリリースと互換性あり
プラットフォームの互換性
Windows macOS Linux
カテゴリ
Help Center および MATLAB AnswersEnvironment and Settings についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
バージョン 公開済み リリース ノート
1.14.0.0

Description update

1.12.0.0

Updated documentation

1.10.0.0

Bugfix for struct fields

1.9.0.0

Turned off debug print (again!)

1.8.0.0

Bug fix

1.7.0.0

Tokens in strings now excluded
Bug fixes

1.5.0.0

Cleaned up debug prints

1.4.0.0

Cleaned up debug prints

1.3.0.0

Improved sorting of code completion matches
Bugfix for comment exclusion
Added end statement as last altenative for ctrl-alt

1.2.0.0

Bug fix

1.1.0.0

Improved code completion: function and variable names within comments are now ignored

1.0.0.0