exponenta event banner

validateFunctionSignaturesJSON

Утвердить functionSignatures.json файлы

Описание

пример

validateFunctionSignaturesJSON отображает сообщения о проверке для functionSignatures.json в текущей папке. Сообщения проверки указывают местоположение любого недопустимого кода и причину, по которой код является недопустимым. Номер строки в сообщении представляет собой гиперссылку, по которой можно перейти непосредственно к этой строке в редакторе.

Синтаксические ошибки JSON в functionSignatures.json проверка влияния файла на файл. Если validateFunctionSignaturesJSON сообщает о синтаксических ошибках JSON, исправляет эти ошибки и повторно проверяет файл.

Для получения информации о создании functionSignatures.json см. раздел Настройка предложений и дополнений кода.

validateFunctionSignaturesJSON(filenames) проверяет functionSignatures.json файлы в filenames. Этот синтаксис используется для проверки файлов сигнатур функций в нескольких папках.

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