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.

EditorVCSInterface

Eredita: Object

Interfaccia del sistema di controllo versione (VCS), che legge e scrive sul VCS locale in uso.

Descrizione

Definisce l'API che l'editor utilizza per estrarre informazioni dal VCS sottostante. L'implementazione di questa API è inclusa nei plugin VCS, che sono plugin in GDExtension che ereditano EditorVCSInterface e sono collegati (su richiesta) all'istanza singleton di EditorVCSInterface. Invece di eseguire l'attività da sole, tutte le funzioni virtuali elencate di seguito chiamano le funzioni sovrascritte internamente nelle estensioni VCS per fornire un'esperienza plug-n-play. Un'estensione VCS personalizzata dovrebbe ereditare da EditorVCSInterface e sovrascrivere ciascuna di queste funzioni virtuali.

Tutorial

Metodi

bool

_allow_amends() virtual

bool

_checkout_branch(branch_name: String) virtual required

void

_commit(msg: String, amend: bool) virtual

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)


Enumerazioni

enum ChangeType: 🔗

ChangeType CHANGE_TYPE_NEW = 0

Un nuovo file è stato aggiunto.

ChangeType CHANGE_TYPE_MODIFIED = 1

Un file aggiunto in precedenza è stato modificato.

ChangeType CHANGE_TYPE_RENAMED = 2

Un file aggiunto in precedenza è stato rinominato.

ChangeType CHANGE_TYPE_DELETED = 3

Un file aggiunto in precedenza è stato eliminato.

ChangeType CHANGE_TYPE_TYPECHANGE = 4

Un file aggiunto in precedenza è stato cambiato di tipo.

ChangeType CHANGE_TYPE_UNMERGED = 5

Un file è stato rimasto senza fusione.


enum TreeArea: 🔗

TreeArea TREE_AREA_COMMIT = 0

Un commit è stato rilevato dall'area commit.

TreeArea TREE_AREA_STAGED = 1

Un file è stato rilevato dall'area di staging.

TreeArea TREE_AREA_UNSTAGED = 2

Un file è stato rilevato dall'area di non-staging.


Descrizioni dei metodi

bool _allow_amends() virtual 🔗

Returns whether or not the plugin allows commit amends.


bool _checkout_branch(branch_name: String) virtual required 🔗

Esegue il check-out di un ramo denominato branch_name nel VCS.


void _commit(msg: String, amend: bool) virtual 🔗

Commits the currently staged changes and applies the commit msg to the resulting commit. If amend is true the commit will modify the most recent commit instead.


void _create_branch(branch_name: String) virtual required 🔗

Crea un nuovo ramo denominato branch_name nel VCS.


void _create_remote(remote_name: String, remote_url: String) virtual required 🔗

Crea una nuova destinazione remota con nome remote_name e la indirizza a remote_url. Può essere un remoto HTTPS o SSH.


void _discard_file(file_path: String) virtual required 🔗

Ignora le modifiche apportate a un file presente nel percorso file_path.


void _fetch(remote: String) virtual required 🔗

Recupera le nuove modifiche dal repository remoto denominato remote, ma non scrive le modifiche nella cartella di lavoro attuale. Equivale a git fetch.


Array[String] _get_branch_list() virtual required 🔗

Ottiene un'istanza di un Array di String contenente i nomi dei rami disponibili nel VCS.


String _get_current_branch_name() virtual required 🔗

Ottiene il nome del ramo attuale definito nel VCS.


Array[Dictionary] _get_diff(identifier: String, area: int) virtual required 🔗

Restituisce un array di elementi Dictionary (vedi create_diff_file(), create_diff_hunk(), create_diff_line(), add_line_diffs_into_diff_hunk() e add_diff_hunks_into_diff_file()), ognuno contenente informazioni su un diff. Se identifier è un percorso file, restituisce un diff file, e se è un identificatore commit, restituisce un diff commit.


Array[Dictionary] _get_line_diff(file_path: String, text: String) virtual required 🔗

Restituisce un Array di elementi Dictionary (vedi create_diff_hunk()), ognuno contenente una differenza di riga tra un file nel percorso file_path e il testo text che viene passato.


Array[Dictionary] _get_modified_files_data() virtual required 🔗

Restituisce un Array di Dictionary (vedi create_status_file()), ciascuno contenente i dati di stato di ogni file modificato nella cartella del progetto.


Array[Dictionary] _get_previous_commits(max_commits: int) virtual required 🔗

Restituisce un Array di Dictionary (vedi create_commit()), ciascuno contenente i dati per un commit precedente.


Array[String] _get_remotes() virtual required 🔗

Restituisce un Array di String, ciascuna contenente il nome di un repository remoto configurato nel VCS.


String _get_vcs_name() virtual required 🔗

Restituisce il nome del fornitore VCS utilizzato.


bool _initialize(project_path: String) virtual required 🔗

Inizializza l'estensione VCS quando viene chiamato dall'editor. Restituisce se l'estensione è stata inizializzata correttamente o meno. Un progetto VCS è inizializzato nel percorso project_path.


void _pull(remote: String) virtual required 🔗

Estrae le modifiche dal repository remoto. Ciò può provocare conflitti di fusione.


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

Invia le modifiche al repository remoto denominato remote. Se force è true, un push force sovrascriverà la cronologia delle modifiche già presente sul repository remoto.


void _remove_branch(branch_name: String) virtual required 🔗

Rimuove un ramo dal VCS locale.


void _remove_remote(remote_name: String) virtual required 🔗

Rimuove un repository remoto dal VCS locale.


void _set_credentials(username: String, password: String, ssh_public_key_path: String, ssh_private_key_path: String, ssh_passphrase: String) virtual required 🔗

Imposta le credenziali utente nel VCS sottostante. username e password sono utilizzati solo durante l'autenticazione HTTPS, a meno che non siano già menzionati nell'URL remoto. ssh_public_key_path, ssh_private_key_path e ssh_passphrase sono utilizzati solo durante l'autenticazione SSH.


bool _shut_down() virtual required 🔗

Arresta l'istanza dell'estensione VCS. Chiamato quando l'utente chiude l'editor o arresta l'estensione VCS tramite l'interfaccia utente dell'editor.


void _stage_file(file_path: String) virtual required 🔗

Esegue lo staging del file presente nel percorso file_path nell'area di staging.


void _unstage_file(file_path: String) virtual required 🔗

Sposta il file presente nel percorso file_path dall'area di staging all'area di non staging.


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

Funzione di supporto per aggiungere un array di diff_hunks in un diff_file.


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

Funzione di supporto per aggiungere un array di line_diffs in un diff_hunk.


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

Funzione di supporto per creare un elemento Dictionary di commit. msg è il messaggio del commit. author è una singola stringa leggibile in chiaro contenente tutti i dettagli dell'autore, ad esempio l'email e il nome configurati nel VCS. id è l'identificativo del commit, in qualsiasi formato il tuo VCS possa fornire un identificatore ai commit. unix_timestamp è il timestamp Unix UTC di quando è stato creato il commit. offset_minutes è la compensazione del fuso orario in minuti, registrato dal fuso orario del sistema in cui è stato creato il commit.


Dictionary create_diff_file(new_file: String, old_file: String) 🔗

Funzione di supporto per creare un Dictionary in cui memorizzare i percorsi dei file diff vecchi e nuovi.


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

Funzione di supporto per creare un Dictionary per memorizzare i dati diff hunk. old_start è il numero di riga iniziale nel vecchio file. new_start è il numero di riga iniziale nel nuovo file. old_lines è il numero di righe nel vecchio file. new_lines è il numero di righe nel nuovo file.


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

Funzione di supporto per creare un Dictionary per memorizzare una differenza di riga. new_line_no è il numero di riga nel nuovo file (può essere -1 se la riga è eliminata). old_line_no è il numero di riga nel vecchio file (può essere -1 se la riga è aggiunta). content è il testo della differenza. status è una stringa di caratteri singoli che memorizza l'origine della riga.


Dictionary create_status_file(file_path: String, change_type: ChangeType, area: TreeArea) 🔗

Funzione di supporto per creare un Dictionary utilizzato dall'editor per leggere lo stato di un file.


void popup_error(msg: String) 🔗

Fa apparire un messaggio di errore nell'editor che viene mostrato come proveniente dal VCS sottostante. Usalo per mostrare messaggi di errore specifici del VCS.