EditorVCSInterface

Наследует: Object

Интерфейс системы контроля версий (VCS), который считывает и записывает данные в используемую локальную систему VCS.

Описание

Определяет API, который редактор использует для извлечения информации из базовой VCS. Реализация этого API включена в плагины VCS, которые являются плагинами GDExtension, которые наследуют EditorVCSInterface и присоединяются (по требованию) к единичному экземпляру EditorVCSInterface. Вместо того, чтобы выполнять задачу самостоятельно, все виртуальные функции, перечисленные ниже, вызывают внутренне переопределенные функции в плагинах VCS для обеспечения работы по принципу plug-n-play. Пользовательский плагин VCS должен наследовать от EditorVCSInterface и переопределять каждую из этих виртуальных функций.

Обучающие материалы

Методы

bool

_checkout_branch(branch_name: String) virtual required

void

_commit(msg: String) virtual required

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

_fetch(remote: String) virtual required

Array[String]

_get_branch_list() virtual required

String

_get_current_branch_name() virtual required

Array[Dictionary]

_get_diff(identifier: String, area: int) virtual required

Array[Dictionary]

_get_line_diff(file_path: String, text: String) virtual required

Array[Dictionary]

_get_modified_files_data() virtual required

Array[Dictionary]

_get_previous_commits(max_commits: int) virtual required

Array[String]

_get_remotes() virtual required

String

_get_vcs_name() virtual required

bool

_initialize(project_path: String) virtual required

void

_pull(remote: String) virtual required

void

_push(remote: String, force: bool) virtual required

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

bool

_shut_down() virtual required

void

_stage_file(file_path: String) virtual required

void

_unstage_file(file_path: String) virtual required

Dictionary

add_diff_hunks_into_diff_file(diff_file: Dictionary, diff_hunks: Array[Dictionary])

Dictionary

add_line_diffs_into_diff_hunk(diff_hunk: Dictionary, line_diffs: Array[Dictionary])

Dictionary

create_commit(msg: String, author: String, id: String, unix_timestamp: int, offset_minutes: int)

Dictionary

create_diff_file(new_file: String, old_file: String)

Dictionary

create_diff_hunk(old_start: int, new_start: int, old_lines: int, new_lines: int)

Dictionary

create_diff_line(new_line_no: int, old_line_no: int, content: String, status: String)

Dictionary

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.