EditorVCSInterface
Наследует: Object
Интерфейс системы контроля версий (VCS), который считывает и записывает данные в используемую локальную систему VCS.
Описание
Определяет API, который редактор использует для извлечения информации из базовой VCS. Реализация этого API включена в плагины VCS, которые являются плагинами GDExtension, которые наследуют EditorVCSInterface и присоединяются (по требованию) к единичному экземпляру EditorVCSInterface. Вместо того, чтобы выполнять задачу самостоятельно, все виртуальные функции, перечисленные ниже, вызывают внутренне переопределенные функции в плагинах VCS для обеспечения работы по принципу plug-n-play. Пользовательский плагин VCS должен наследовать от EditorVCSInterface и переопределять каждую из этих виртуальных функций.
Обучающие материалы
Методы
_checkout_branch(branch_name: String) virtual required |
|
void |
|
void |
_create_branch(branch_name: String) virtual required |
void |
_create_remote(remote_name: String, remote_url: String) virtual required |
void |
_discard_file(file_path: String) virtual required |
void |
|
_get_branch_list() virtual required |
|
_get_current_branch_name() virtual required |
|
_get_line_diff(file_path: String, text: String) virtual required |
|
_get_modified_files_data() virtual required |
|
_get_previous_commits(max_commits: int) virtual required |
|
_get_remotes() virtual required |
|
_get_vcs_name() virtual required |
|
_initialize(project_path: String) virtual required |
|
void |
|
void |
|
void |
_remove_branch(branch_name: String) virtual required |
void |
_remove_remote(remote_name: String) virtual required |
void |
_set_credentials(username: String, password: String, ssh_public_key_path: String, ssh_private_key_path: String, ssh_passphrase: String) virtual required |
_shut_down() virtual required |
|
void |
_stage_file(file_path: String) virtual required |
void |
_unstage_file(file_path: String) virtual required |
add_diff_hunks_into_diff_file(diff_file: Dictionary, diff_hunks: Array[Dictionary]) |
|
add_line_diffs_into_diff_hunk(diff_hunk: Dictionary, line_diffs: Array[Dictionary]) |
|
create_commit(msg: String, author: String, id: String, unix_timestamp: int, offset_minutes: int) |
|
create_diff_file(new_file: String, old_file: String) |
|
create_diff_hunk(old_start: int, new_start: int, old_lines: int, new_lines: int) |
|
create_diff_line(new_line_no: int, old_line_no: int, content: String, status: String) |
|
create_status_file(file_path: String, change_type: ChangeType, area: TreeArea) |
|
void |
popup_error(msg: String) |
Перечисления
enum ChangeType: 🔗
ChangeType CHANGE_TYPE_NEW = 0
Добавлен новый файл.
ChangeType CHANGE_TYPE_MODIFIED = 1
Ранее добавленный файл был изменен.
ChangeType CHANGE_TYPE_RENAMED = 2
Ранее добавленный файл был переименован.
ChangeType CHANGE_TYPE_DELETED = 3
Ранее добавленный файл был удален.
ChangeType CHANGE_TYPE_TYPECHANGE = 4
Ранее добавленный файл был изменен типом.
ChangeType CHANGE_TYPE_UNMERGED = 5
Файл остается необъединенным.
enum TreeArea: 🔗
TreeArea TREE_AREA_COMMIT = 0
В области коммита обнаружен коммит.
TreeArea TREE_AREA_STAGED = 1
Файл обнаружен в подготовленной области.
TreeArea TREE_AREA_UNSTAGED = 2
Обнаружен файл из неподготовленной области.
Описания метода
bool _checkout_branch(branch_name: String) virtual required 🔗
Извлекает branch_name в VCS.
void _commit(msg: String) virtual required 🔗
Фиксирует текущие подготовленные изменения и применяет фиксацию msg к полученной фиксации.
void _create_branch(branch_name: String) virtual required 🔗
Создает новую ветку с именем branch_name в VCS.
void _create_remote(remote_name: String, remote_url: String) virtual required 🔗
Создает новый удаленный пункт назначения с именем remote_name и указывает на remote_url. Это может быть удаленный HTTPS или удаленный SSH.
void _discard_file(file_path: String) virtual required 🔗
Отменяет изменения, внесенные в файл, расположенный по адресу file_path.
void _fetch(remote: String) virtual required 🔗
Извлекает новые изменения из remote, но не записывает изменения в текущий рабочий каталог. Эквивалентно git fetch.
Array[String] _get_branch_list() virtual required 🔗
Получает экземпляр Array из String, содержащих доступные имена ветвей в VCS.
String _get_current_branch_name() virtual required 🔗
Получает текущее имя ветви, определенное в VCS.
Array[Dictionary] _get_diff(identifier: String, area: int) virtual required 🔗
Возвращает массив элементов Dictionary (см. create_diff_file(), create_diff_hunk(), create_diff_line(), add_line_diffs_into_diff_hunk() и add_diff_hunks_into_diff_file()), каждый из которых содержит информацию о diff. Если identifier является путем к файлу, возвращает diff файла, а если это идентификатор фиксации, то возвращает diff фиксации.
Array[Dictionary] _get_line_diff(file_path: String, text: String) virtual required 🔗
Возвращает Array элементов Dictionary (см. create_diff_hunk()), каждый из которых содержит разницу строк между файлом по адресу file_path и переданным text.
Array[Dictionary] _get_modified_files_data() virtual required 🔗
Возвращает Array элементов Dictionary (см. create_status_file()), каждый из которых содержит данные о состоянии каждого измененного файла в папке проекта.
Array[Dictionary] _get_previous_commits(max_commits: int) virtual required 🔗
Возвращает Array элементов Dictionary (см. create_commit()), каждый из которых содержит данные о прошлой фиксации.
Array[String] _get_remotes() virtual required 🔗
Возвращает Array из String, каждая из которых содержит имя удаленного устройства, настроенного в VCS.
String _get_vcs_name() virtual required 🔗
Возвращает имя базового поставщика VCS.
bool _initialize(project_path: String) virtual required 🔗
Инициализирует плагин VCS при вызове из редактора. Возвращает, был ли успешно инициализирован плагин. Проект VCS инициализируется в project_path.
void _pull(remote: String) virtual required 🔗
Извлекает изменения из удаленного. Это может привести к конфликтам слияния.
void _push(remote: String, force: bool) virtual required 🔗
Отправляет изменения на remote. Если force равно true, принудительная отправка переопределит историю изменений, уже имеющуюся на удаленном.
void _remove_branch(branch_name: String) virtual required 🔗
Удалить ветку из локальной VCS.
void _remove_remote(remote_name: String) virtual required 🔗
Удалить удаленный объект из локальной VCS.
void _set_credentials(username: String, password: String, ssh_public_key_path: String, ssh_private_key_path: String, ssh_passphrase: String) virtual required 🔗
Установите учетные данные пользователя в базовой системе контроля версий. username и password используются только во время аутентификации HTTPS, если иное не указано в удаленном URL. ssh_public_key_path, ssh_private_key_path и ssh_passphrase используются только во время аутентификации SSH.
bool _shut_down() virtual required 🔗
Выключает экземпляр плагина VCS. Вызывается, когда пользователь либо закрывает редактор, либо выключает плагин VCS через пользовательский интерфейс редактора.
void _stage_file(file_path: String) virtual required 🔗
Помещает файл, находящийся по адресу file_path, в подготовленную область.
void _unstage_file(file_path: String) virtual required 🔗
Перемещает файл, находящийся по адресу file_path, из подготовленной области в неподготовленную область.
Dictionary add_diff_hunks_into_diff_file(diff_file: Dictionary, diff_hunks: Array[Dictionary]) 🔗
Вспомогательная функция для добавления массива diff_hunks в diff_file.
Dictionary add_line_diffs_into_diff_hunk(diff_hunk: Dictionary, line_diffs: Array[Dictionary]) 🔗
Вспомогательная функция для добавления массива line_diffs в diff_hunk.
Dictionary create_commit(msg: String, author: String, id: String, unix_timestamp: int, offset_minutes: int) 🔗
Вспомогательная функция для создания элемента коммита Dictionary. msg — сообщение коммита. author — отдельная удобочитаемая строка, содержащая все данные автора, например, адрес электронной почты и имя, настроенные в VCS. id — идентификатор коммита в любом формате, который ваша VCS может предоставить идентификатору коммитов. unix_timestamp — временная метка UTC Unix, указывающая на время создания коммита. offset_minutes — смещение часового пояса в минутах, записанное относительно системного часового пояса, в котором был создан коммит.
Dictionary create_diff_file(new_file: String, old_file: String) 🔗
Вспомогательная функция для создания Dictionary для хранения старых и новых путей к файлам различий.
Dictionary create_diff_hunk(old_start: int, new_start: int, old_lines: int, new_lines: int) 🔗
Вспомогательная функция для создания Dictionary для хранения данных diff hunk. old_start — начальный номер строки в старом файле. new_start — начальный номер строки в новом файле. old_lines — количество строк в старом файле. new_lines — количество строк в новом файле.
Dictionary create_diff_line(new_line_no: int, old_line_no: int, content: String, status: String) 🔗
Вспомогательная функция для создания Dictionary для хранения разницы строк. new_line_no — номер строки в новом файле (может быть -1, если строка удалена). old_line_no — номер строки в старом файле (может быть -1, если строка добавлена). content — текст разницы. status — строка из одного символа, в которой хранится начало строки.
Dictionary create_status_file(file_path: String, change_type: ChangeType, area: TreeArea) 🔗
Вспомогательная функция для создания Dictionary, используемого редактором для чтения статуса файла.
void popup_error(msg: String) 🔗
Выводит сообщение об ошибке в редакторе, которое отображается как исходящее от базовой VCS. Используйте это, чтобы показать сообщения об ошибках, специфичные для VCS.