Автоматизируйте управление меткой в проекте

В этом примере показано, как использовать функции проекта, чтобы управлять метками.

Откройте проект корпуса в качестве примера

Создайте и откройте рабочую копию файлов проекта в качестве примера. MATLAB® копирует файлы в папку в качестве примера так, чтобы можно было отредактировать их.

sldemo_slproject_airframe;
Starting: Simulink
Building with 'MinGW64 Compiler (C)'.
MEX completed successfully.

Получите объект проекта.

Создайте объект проекта управлять в настоящее время открытым проектом в командной строке.

project = currentProject;

Просмотрите метки файла

Исследуйте файлы в проекте.

files = project.Files;
disp(files);
  1×31 ProjectFile array with properties:

    Path
    Labels
    Revision
    SourceControlStatus

Используйте индексацию, чтобы получить доступ к файлам в этом списке. Например, получите номер документа 10. Каждый файл имеет два свойства, описывающие его путь и присоединенные метки.

aFile = files(10);
disp(aFile);
  ProjectFile with properties:

                   Path: "C:\workSpace\examples\airframe2\data\system_model.sldd"
                 Labels: [1×1 matlab.project.Label]
               Revision: "57973f5e87ca65215ab688e3544287e07db794c4"
    SourceControlStatus: Unmodified

Найдите, что информация о файле присоединила метки путем индексации в свойство меток объектов файла. Следующая команда присоединила первую метку к этому конкретному файлу.

label = aFile.Labels(1);
disp(label);
  Label with properties:

            File: "C:\workSpace\examples\airframe2\data\system_model.sldd"
        DataType: 'none'
            Data: []
            Name: "Design"
    CategoryName: "Classification"

Присоедините метку к подмножеству файлов.

Следующий код присоединяет метку Design в категории Классификации ко всем файлам в проекте с.m расширением файла.

Сначала получите список файлов:

files = project.Files;

Затем цикл через каждый файл и присоединяют метка Design от категории Классификации, если файл имеет расширение.m.

for fileIdx = 1:numel(files)
   file = files(fileIdx); 
   [~, ~, fileExtension] = fileparts(file.Path);
   if strcmp(fileExtension,'.m')
       addLabel(file, 'Classification', 'Design');
   end
end

Найдите именованную метку

Можно установить и запросить данные по метке, которая присоединена к файлу. Для этого сначала необходимо найти объект файла. Можно сделать это цикличным выполнением через все файлы в проекте, как показано на предыдущем шаге. В качестве альтернативы можно использовать функцию findFile на проекте.

Следующий код находит объект файла для файла 'utilities/rebuild_s_functions.m'.

pathToLocate = fullfile('utilities','rebuild_s_functions.m');
file = findFile(project, pathToLocate);

Исследуйте свойство Labels получить массив объектов Метки, один для каждой метки, присоединенной к файлу.

labels = file.Labels;
disp(labels);
  Label with properties:

            File: "C:\workSpace\examples\airframe2\utilities\rebuild_s_functions.m"
        DataType: 'none'
            Data: []
            Name: "Design"
    CategoryName: "Classification"

Чтобы найти метку по наименованию, используйте findLabel на объекте файла.

label = findLabel(file, 'Classification','Design');
disp(label);
  Label with properties:

            File: "C:\workSpace\examples\airframe2\utilities\rebuild_s_functions.m"
        DataType: 'none'
            Data: []
            Name: "Design"
    CategoryName: "Classification"

Создайте новую категорию

Необходимо создать новые метки, прежде чем можно будет присоединить их к файлу. Вы задаете метки в категориях, давая каждой категории имя и поддерживаемый тип данных.

Следующий код создает категорию меток под названием Инженеры, которые могут использоваться, чтобы обозначить принадлежность файла в проекте. Эти метки имеют тип данных char для присоединения данных о Строке.

createCategory(project,'Engineers','char');
engineersCategory = findCategory(project, 'Engineers');
createLabel(engineersCategory,'Sam');
createLabel(engineersCategory,'Pat');
createLabel(engineersCategory,'Alex');

Можно теперь присоединить марку Сэма от категории 'Инженеров' до файла в проекте.

addLabel(file, 'Engineers', 'Sam');
label = findLabel(file, 'Engineers', 'Sam');

Установите данные о метке

Следующие наборы команд данные для присоединенной метки.

label.Data = 'Maintenance responsibility';
disp(label)
  Label with properties:

            File: "C:\workSpace\examples\airframe2\utilities\rebuild_s_functions.m"
        DataType: 'char'
            Data: 'Maintenance responsibility'
            Name: "Sam"
    CategoryName: "Engineers"

Дополнительная информация

Управление проектами