exponenta event banner

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

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

Откройте пример проекта планера

Создайте и откройте рабочую копию файлов примеров проекта. 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

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

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 в категории Classification ко всем файлам проекта с расширением .m.

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

files = project.Files;

Затем выполните цикл для каждого файла и присоедините метку Design из категории Classification, если файл имеет расширение .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, чтобы получить массив объектов Label, по одному для каждой метки, присоединенной к файлу.

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');

Теперь можно прикрепить метку Sam из категории «Инженеры» к файлу в проекте.

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"

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

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