Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
EditorVCSInterface
Наследует: Object
Интерфейс системы контроля версий (VCS), который считывает и записывает данные в используемую локальную систему VCS.
Описание
Определяет API, который редактор использует для извлечения информации из базовой VCS. Реализация этого API включена в плагины VCS, которые являются плагинами GDExtension, которые наследуют EditorVCSInterface и присоединяются (по требованию) к единичному экземпляру EditorVCSInterface. Вместо того, чтобы выполнять задачу самостоятельно, все виртуальные функции, перечисленные ниже, вызывают внутренне переопределенные функции в плагинах VCS для обеспечения работы по принципу plug-n-play. Пользовательский плагин VCS должен наследовать от EditorVCSInterface и переопределять каждую из этих виртуальных функций.
Обучающие материалы
Методы
_allow_amends() virtual |
|
_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 _allow_amends() virtual 🔗
Возвращает значение, указывающее, разрешает ли плагин внесение изменений в коммит.
bool _checkout_branch(branch_name: String) virtual required 🔗
Извлекает branch_name в VCS.
void _commit(msg: String, amend: bool) virtual 🔗
Фиксирует текущие изменения в индексе и применяет коммит msg к результирующему коммиту. Если amend имеет значение true, коммит изменит самый последний коммит.
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.