FileAge Tracker
Автор
ФИО: Анчин Егор Евгеньевич
Группа: М3116
Лабораторная работа №3: Создание плагина
IDE: Visual Studio Code
Язык программирования: TypeScript
Описание проекта
FileAge Tracker — расширение для Visual Studio Code, предназначенное для просмотра и анализа истории изменений проекта с помощью Git.
Плагин позволяет получать информацию о последних коммитах проекта: их авторах, датах, описаниях и изменённых файлах.
Также расширение подсчитывает количество коммитов каждого автора, что позволяет оценить активность участников разработки.
Основная цель плагина — упростить просмотр истории изменений без необходимости вручную вводить команды Git в терминале.
Возможности плагина
- Просмотр последних 20 коммитов проекта.
- Отображение сокращённого хеша каждого коммита.
- Получение имени автора коммита.
- Отображение даты создания коммита.
- Просмотр описания коммита.
- Просмотр списка файлов, изменённых в каждом коммите.
- Подсчёт количества коммитов каждого автора.
- Вывод информации в панель Output в Visual Studio Code.
- Обработка ошибок при отсутствии открытого проекта или невозможности получить историю Git.
Используемые технологии
- TypeScript — основной язык разработки.
- Visual Studio Code Extension API — взаимодействие с редактором.
- Node.js — запуск внешних программ.
- Git — получение истории изменений.
- npm — управление зависимостями.
Структура проекта
fileage-tracker/
├── .vscode/
├── src/
│ └── extension.ts
├── .gitignore
├── DOCUMENTATION.md
├── package.json
├── package-lock.json
├── README.md
├── tsconfig.json
└── TZ.md
Описание основных файлов:
src/extension.ts — исходный код расширения.
package.json — информация о плагине, зависимости и регистрация команд.
tsconfig.json — настройки компиляции TypeScript.
README.md — общее описание проекта и инструкция по использованию.
TZ.md — техническое задание.
DOCUMENTATION.md — описание архитектуры и алгоритмов работы плагина.
Принцип работы
После запуска команды FileAge: Show Project History плагин выполняет следующие действия:
- Получает путь к открытой папке проекта.
- Формирует массив аргументов для команды
git log.
- Запускает Git с помощью функции
execFile().
- Получает историю последних 20 коммитов.
- Выводит информацию об изменениях в панель Output.
- Разбивает полученный текст на строки.
- Находит имена авторов коммитов.
- Подсчитывает количество коммитов каждого автора с помощью структуры данных
Map.
- Выводит статистику активности авторов.
Подробное описание алгоритма и используемых функций приведено в DOCUMENTATION.md.
Установка и запуск
Для работы необходимы:
- Visual Studio Code.
- Node.js и npm.
- Git.
Порядок запуска:
Скачать или клонировать репозиторий.
Открыть папку fileage-tracker в Visual Studio Code.
Открыть терминал.
Установить зависимости:
npm install
Скомпилировать проект:
npm run compile
Нажать F5 для запуска расширения.
В новом окне VS Code открыть папку с Git-репозиторием.
Использование
- Нажать
Ctrl + Shift + P.
- Ввести
FileAge: Show Project History.
- Выбрать найденную команду.
- Просмотреть результат в панели Output.
Пример вывода:
ИСТОРИЯ ИЗМЕНЕНИЙ ПРОЕКТА
----------------------------
Коммит: a12b3c4
Автор: Ivan
Дата: 2026-10-24
Описание: Исправлена обработка ошибок
main.cpp
number.cpp
Коммит: b23c4d5
Автор: Petr
Дата: 2026-10-23
Описание: Добавлены функции
number.h
СТАТИСТИКА АВТОРОВ
----------------------------
Ivan: 1 коммит
Petr: 1 коммит
В примере используются условные данные.
Ограничения
- Для работы требуется установленный Git.
- Проект должен содержать историю коммитов.
- Плагин обрабатывает только последние 20 коммитов.
- Незакоммиченные изменения не учитываются.
- Статистика подсчитывается по именам авторов.
- Плагин показывает список изменённых файлов, но не сами изменения строк.
- В текущей версии используется первая открытая папка проекта.
Заключение
В ходе лабораторной работы разработано расширение FileAge Tracker для Visual Studio Code на языке TypeScript.
В процессе разработки были изучены основы создания расширений VS Code, работа с API редактора, выполнение команд Git из TypeScript и обработка полученных данных с помощью массивов, циклов и структуры Map.
Разработанный плагин позволяет просматривать историю изменений проекта и получать статистику активности авторов коммитов.
История изменений проекта
| Хеш коммита |
Описание изменения |
55e13da |
Изменен плагин FileAge Tracker |
af0876e |
Создан плагин FileAge Tracker |
2982442 |
Изменен файл README |