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

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

Откройте пример проекта Airframe

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

Затем закольцовывайте каждый файл и присоедините метку проект из категории 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"

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

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

Следующий код создает категорию меток Engineers, которая может использоваться для обозначения владения файлами в проекте. Эти метки имеют тип данных 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"

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

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