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 として作成します。そこには 3 つの検証上の問題が含まれています。

  1. 最初の引数オブジェクトで、1 つのプロパティ (属性) が正しくない。プロパティは "argument" ではなく、"name" でなければなりません。

  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 ファイルを検証します。検証関数では、最初の 2 つの検証上の問題が報告されません。これは、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 ファイルへの絶対パスまたは相対パス。文字ベクトル、文字ベクトルの cell 配列、または string 配列として指定します。

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

例: 'myFolder/functionSignatures.json'

バージョン履歴

R2018b で導入