Main Content

validateFunctionSignaturesJSON

验证 functionSignatures.json 文件

说明

示例

validateFunctionSignaturesJSON 显示当前文件夹中 functionSignatures.json 文件的验证消息。验证消息指示任何无效代码的位置以及代码无效的原因。消息中的行号是一个超链接,点击后可以直接转到编辑器中的该行。

functionSignatures.json 文件中的 JSON 语法错误会影响文件的验证。如果 validateFunctionSignaturesJSON 报告 JSON 语法错误,请更正这些错误,然后重新验证该文件。

有关创建 functionSignatures.json 文件的信息,请参阅自定义代码建议和自动填充

validateFunctionSignaturesJSON(filenames) 验证 filenames 中的 functionSignatures.json 文件。使用此语法验证多个文件夹中的函数签名文件。

T = validateFunctionSignaturesJSON(___) 返回一个包含验证结果的表。您可以将此语法与上述语法中的任何输入参数结合使用。

示例

全部折叠

在当前工作文件夹中创建 myFunc 函数。

function myFunc(reqA,reqB,varargin)
    NV1 = true;
    NV2 = 'Default';
    posA = [];
    
    if nargin > 3
        if rem(nargin,2)
            posA = varargin{1};
            V = varargin(2:end);
        else
            V = varargin;
        end
        for n = 1:2:size(V,2)
            switch V{n}
                case 'Name1'
                    NV1 = V{n+1};
                case 'Name2'
                    NV2 = V{n+1}
                otherwise
                    error('Error.')
            end
        end
    end
end

在当前工作文件夹中创建以下函数签名文件,如 functionSignatures.json。它包含三个验证问题。

  1. 第一个参数对象中的一个属性(特性)不正确。该属性应为 "name" 而不是 "argument"

  2. in3 的参数对象的顺序不正确。您必须在名称-值对组之前指定位置参数。

  3. 在最后一个参数对象之后有不必要的逗号。此位置的逗号是 JSON 语法错误。

{
  "_schemaVersion": "1.0.0",
  "myFunc":
  {
     "inputs":
     [
        {"argument":"input1",  "kind":"required", "type":["numeric"], "purpose":"ID of item"},
        {"name":"input2",  "kind":"positional", "type":["numeric"], "purpose":"# Items"},
        {"name":"Name1", "kind":"namevalue", "type":["logical","scalar"],"purpose":"Option"},
        {"name":"in3",  "kind":"positional", "type":["numeric"], "purpose":"Input Value"},
        {"name":"Name2", "kind":"namevalue", "type":["char", "choices={'Default','Choice1','Choice2'}"]},
     ]
  }
}

验证 functionSignatures.json 文件。验证函数不报告前两个验证问题,因为它遇到 JSON 语法错误。

validateFunctionSignaturesJSON
functionSignatures.json
=======================
L 12 (C 6-7): JSON syntax error at line 12, column 6 (character 551): expected value but found ']'.

删除第 12 行末尾的附加逗号。要查看其余的验证问题,请重新验证该文件。

validateFunctionSignaturesJSON
functionSignatures.json
=======================
L 7 (C 10-19): Invalid attribute "argument".
L 10 (C 32-43): "positional" argument must appear before all "namevalue" and "flag" arguments.

更正其余的问题。

{
  "_schemaVersion": "1.0.0",
  "myFunc":
  {
     "inputs":
     [
        {"name":"input1",  "kind":"required", "type":["numeric"], "purpose":"ID of item"},
        {"name":"input2",  "kind":"positional", "type":["numeric"], "purpose":"# Items"},
        {"name":"in3",  "kind":"positional", "type":["numeric"], "purpose":"Input Value"},
        {"name":"Name1", "kind":"namevalue", "type":["logical","scalar"],"purpose":"Option"},
        {"name":"Name2", "kind":"namevalue", "type":["char", "choices={'Default','Choice1','Choice2'}"]}
     ]
  }
}

重新验证 functionSignatures.json 文件。

validateFunctionSignaturesJSON
validateFunctionSignaturesJSON completed without producing any messages.

输入参数

全部折叠

functionSignatures.json 文件的绝对路径或相对路径,指定为字符向量、字符向量元胞数组或字符串数组。

示例: ["ProjectA/functionSignatures.json" "ProjectB/functionSignatures.json"]

示例: 'myFolder/functionSignatures.json'

版本历史记录

在 R2018b 中推出