ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

Auto​Matlab

作者: asparc Win ALL

Sublime Text插件,适用于Matlab,具有自动完成、文档生成和命令面板功能。

详细信息

  • W 2.0.1
    W 1.1.2
  • github.​com
  • github.​com
  • 4个月前
  • 56分钟前
  • 4年前

安装

  • 总数 1K
  • Win 1K
  • Mac 0
  • Linux 1
8月6日 8月5日 8月4日 8月3日 8月2日 8月1日 7月31日 7月30日 7月29日 7月28日 7月27日 7月26日 7月25日 7月24日 7月23日 7月22日 7月21日 7月20日 7月19日 7月18日 7月17日 7月16日 7月15日 7月14日 7月13日 7月12日 7月11日 7月10日 7月9日 7月8日 7月7日 7月6日 7月5日 7月4日 7月3日 7月2日 7月1日 6月30日 6月29日 6月28日 6月27日 6月26日 6月25日 6月24日 6月23日
Windows 0 0 0 0 0 0 2 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 3 1 0 1 1 0 1 0 0 2 0 0 0 2 1 2 0 0 2 0
Mac 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Linux 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

README

源代码
raw.​githubusercontent.​com

AutoMatlab

AutoMatlab通过结合Sublime Text和Matlab的优点,让编写Matlab代码变得更有趣。

功能:

  • 自动完成任何Matlab函数!
  • 在Sublime Text中运行Matlab命令!
  • 生成基于上下文的Matlab函数文档!

目录:

入门指南

  • 自动完成 即插即用!开始输入或尝试按下 Ctrl + Space 来查看其功能。如果您对更多定制功能感兴趣,请查看 这里
  • Matlab命令 需要 AutoHotkey。如果已安装AutoHotkey并且正确指定了AutoMatlab设置中的 auto_hotkey_path,请尝试按下 Ctrl + b 在Matlab中运行当前文件或 Alt + m 打开AutoMatlab命令面板。如果您对更多定制功能感兴趣,请查看 这里
  • 函数文档生成 立即开启!在 Matlab 函数文件中按 Ctrl + Alt + m 看看它能做什么。如果您想了解更多定制功能,请查看这里

注意 1:AutoMatlab 目前仅支持 Windows 下的 Matlab 安装.
注意 2:请确保 .m 文件的语法设置为 Matlab(默认情况)

View > Syntax (> Open all with current extension as...) > Matlab

自动完成

AutoMatlab 提供了大量自动完成功能,这比 Matlab 编辑器内置的非常有限的自动完成功能有了很大的改进。

功能:

  • 多层次的自动完成:Matlab 全局、项目全局、文件夹全局、文件全局。
  • 可自定义的自动完成源。
  • 文档弹窗类似于 Matlab 的 help
  • 响应式的 相关内容 超链接。

在键入文本时会自动显示自动完成建议,但也可以通过默认的键盘快捷键 Ctrl + Space 进行查询。

Command panel

当键入的文本与功能名称完全匹配时,使用 Ctrl + Space 进行自动完成查询将显示一系列建议的功能签名片段,以及功能文档的弹窗。也可以通过命令 show_auto_matlab_documentation_panel 调出功能文档的面板。

Command panel

Matlab自动完成

AutoMatlab 默认包含约 3000 个内置 Matlab 函数的自动完成信息。由于 Matlab 安装和用户偏好不同,这些信息可以通过以下步骤调整到特定 Matlab 安装

  1. 打开 AutoMatlab 设置
    • 通过 matlabroot 指定 Matlab 安装路径。
    • (可选)通过 matlab_pathdef_path 指定 pathdef.m 路径。
    • (可选)在 Matlab 自动完成源 部分,细化自动完成信息的来源。所有细化选项均在默认的 AutoMatlab 设置文件中记录。
  2. 打开 Sublime 命令面板
    • 运行 AutoMatlab: Index Matlab autocomplete。AutoMatlab 将解析指定的目录,寻找符合 The MathWorks 所用文档格式的 Matlab 函数。
    • 等待进程完成(见状态栏)。这可以持续几分钟,具体时间取决于 Matlab 安装。
  3. 完成!Matlab 自动完成数据存储在 Packages\AutoMatlab\data\matlab_completions

项目自动完成

AutoMatlab 为当前活动的 Sublime 项目中的 Matlab 函数提供自动完成信息。每次项目中的文件保存时,AutoMatlab 会更新此信息。

以下设置可以添加到 .sublime-project 文件中,以在每个项目中调整自动完成源。这些选项与默认 AutoMatlab 设置文件中的相应选项具有相同的操作方式,其中它们有所记录。

{
    "auto_matlab":
    {
        "include_dirs": [],
        "exclude_dirs": [],
        "exclude_patterns": [],
        "free_documentation_format": true
    }
}

当前文件夹自动完成

AutoMatlab 为当前打开的文件夹中的 Matlab 函数提供自动完成信息。每次文件夹中的文件保存时,AutoMatlab 会更新此信息。

当前文件自动完成

AutoMatlab 为当前打开的文件内的本地 Matlab 函数提供自动完成信息。每次文件保存或激活时,AutoMatlab 会更新此信息。

Matlab命令

如果已安装 AutoHotkey,AutoMatlab 可以发送命令到 Matlab,以在 Matlab 命令窗口中运行。

AutoMatlab命令面板

Command panel

可以通过 Sublime 命令面板或通过 Alt + m 访问 AutoMatlab 命令面板。它显示最近的 Matlab 命令历史中的命令建议。如果没有显示历史记录,请确保 AutoMatlab 设置中的 matlab_history_path 已正确设置。

通过 AutoMatlab 命令面板,可以向 Matlab 发送命令

  • Enter 在 Matlab 中运行选中的历史条目。
  • 将选中的历史条目插入到 AutoMatlab 命令面板中。
  • Tab 在 Matlab 中运行来自 AutoMatlab 命令面板的输入。

预定义命令

已预定义了一些有用的命令。可以通过 Sublime 命令面板或通过键盘快捷键运行。一些示例

  • Ctrl + b 在 Matlab 中运行当前文件。
  • Ctrl + Shift + b 修改当前文件夹并在Matlab中运行当前文件。
  • Alt + . 在当前行设置Matlab断点。
  • Alt + , 从当前行清除Matlab断点。

自定义命令:Matlab命令行窗口

可以定义自定义的AutoHotkey命令,这些命令可以在Matlab命令窗口中执行文本命令。这些AutoMatlab命令可以添加到Sublime的键绑定或命令面板中。要为Matlab命令窗口创建自定义命令,请使用以下格式的AutoMatlab命令run_matlab_command

[
    {
        "caption": "AutoMatlab: Print status",
        "command": "run_matlab_command",
        "args": {"command": "disp('I am editing file $file_name at line $line.')"}
    }
]

run_matlab_command将展开默认的Sublime Text变量,如$file$file_name$file_base_name$folder$project_name。此外,AutoMatlab还定义了以下变量

  • $line: 当前活动行。
  • $column: 当前活动列。
  • $package_member: 当前打开的Matlab文件名,包括包命名空间。例如:C:\Users\Foo\myproject\+mypack\myfun.mmypack.myfun
  • $package_parent: 当前打开的Matlab包的父目录路径。例如:C:\Users\Foo\myproject\+mypack\myfun.mC:\Users\Foo\myproject

自定义命令:Matlab键盘快捷键

可以定义自定义的AutoHotkey命令,这些命令可以在Matlab中执行键盘快捷键。这些AutoMatlab命令可以添加到Sublime的键绑定或命令面板中。要创建自定义的键盘快捷键命令,请使用AutoMatlab命令run_matlab_command,如下所示

[
    {
        "caption": "AutoMatlab: Stop execution",
        "command": "run_matlab_command",
        "args": {"command": "^c", "type": "key"}
    }
]

这些命令使用AutoHotkey的SendInput函数的语法。有关此语法的更多信息,请参阅AutoHotkey文档中的参数键名部分。

函数文档生成

AutoMatlab提供了一种灵活且上下文感知的函数文档生成方法,基于可定制的模板片段。可以通过Sublime命令面板或键盘快捷键Ctrl + Alt + m生成函数文档。

预定义文档模板代码片段

AutoMatlab提供了一系列预定义的文档模板片段。这些模板片段遵循MathWorks使用的函数文档格式:它们包含一行函数描述和至少一个函数签名。此外,它们是自适应的,意味着它们将函数定义中的元素替换到片段中。

在AutoMatlab设置中,可以通过设置documentation_snippet为以下值之一来选择预定义的文档模板片段

  • matlab_documentation.sublime-snippet(默认)

Template snippet default

  • matlab_documentation_args.sublime-snippet

Template snippet args

  • matlab_documentation_args_in_out.sublime-snippet

Template snippet args in out

自定义文档模板代码片段

AutoMatlab还支持自定义文档模板片段。要创建这些片段,请从以下示例开始,根据需要添加/删除/修改,并将结果保存为.sublime-snippet文件。最后,在AutoMatlab设置中将documentation_snippet设置为创建的模板片段的名称或路径。

<snippet>
<description>Matlab documentation</description>
<content><![CDATA[ 
%${MDOC_NAME} ${1:<one line description>}${MDOC_NAME_MARKER}
%
% ${MDOC_SIGNATURE} ${2:<explain usage>}${MDOC_SIGNATURE_MARKER}
% 
% Input:${MDOC_INARG_BLOCK_MARKER}
%   - ${MDOC_INARG}: ${3:<description>}${MDOC_INARG_MARKER}
%
% Output:${MDOC_OUTARG_BLOCK_MARKER}
%   - ${MDOC_OUTARG}: ${4:<description>}${MDOC_OUTARG_MARKER}
% 
% ${MDOC_ARG_BLOCK_MARKER}
% ${MDOC_ARG}: ${5:<description>}${MDOC_ARG_MARKER}
%
% See also ${6:<list related>}${MDOC_SEE_ALSO_MARKER}

% Author(s): ${7:<authors>}${MDOC_AUTHOR_MARKER}
% Copyright ${8:<year>} ${9:<owner>}${MDOC_COPYRIGHT_MARKER}
]]></content>
<scope>source.matlab</scope>
</snippet>

项目特定文档格式

以下设置可以添加到.sublime-project文件中,以根据项目适配生成的函数文档。

{
    "auto_matlab":
    {
        "documentation_upper_case_signature": true,
        "documentation_snippet": "mysnippet.sublime-snippet"
    }
}

附加功能

打开/结束语句配对

AutoMatlab可以识别成对的开语句(例如,ifforfunction)和结束语句。当光标处于开或结束语句中时,可以使用以下命令触发关于成对语句的弹出窗口

Pair open end popup

[
    {
        "caption": "AutoMatlab: Pair open+end statement",
        "command": "pair_matlab_statements",
        "args": {"action": "popup"},
    }
]

还有直接在开/结束语句之间跳转或选择所有封装代码的命令。

[
    {
        "caption": "AutoMatlab: Jump open+end statement",
        "command": "pair_matlab_statements",
        "args": {"action": "jump"},
    },
    {
        "caption": "AutoMatlab: Select open+end statement",
        "command": "pair_matlab_statements",
        "args": {"action": "select"},
    }
]