EditorVCSInterface
Inherits: Object
Version Control System (VCS) interface, which reads and writes to the local VCS in use.
Description
Defines the API that the editor uses to extract information from the underlying VCS. The implementation of this API is included in VCS plugins, which are scripts that inherit EditorVCSInterface
and are attached (on demand) to the singleton instance of EditorVCSInterface
. Instead of performing the task themselves, all the virtual functions listed below are calling the internally overridden functions in the VCS plugins to provide a plug-n-play experience. A custom VCS plugin is supposed to inherit from EditorVCSInterface
and override these virtual functions.
Methods
_checkout_branch ( String branch_name ) virtual | |
void | |
void | _create_branch ( String branch_name ) virtual |
void | _create_remote ( String remote_name, String remote_url ) virtual |
void | _discard_file ( String file_path ) virtual |
void | |
_get_branch_list ( ) virtual | |
_get_current_branch_name ( ) virtual | |
_get_line_diff ( String file_path, String text ) virtual | |
_get_modified_files_data ( ) virtual | |
_get_previous_commits ( int max_commits ) virtual | |
_get_remotes ( ) virtual | |
_get_vcs_name ( ) virtual | |
_initialize ( String project_path ) virtual | |
void | |
void | |
void | _remove_branch ( String branch_name ) virtual |
void | _remove_remote ( String remote_name ) virtual |
void | _set_credentials ( String username, String password, String ssh_public_key_path, String ssh_private_key_path, String ssh_passphrase ) virtual |
_shut_down ( ) virtual | |
void | _stage_file ( String file_path ) virtual |
void | _unstage_file ( String file_path ) virtual |
add_diff_hunks_into_diff_file ( Dictionary diff_file, Array diff_hunks ) | |
add_line_diffs_into_diff_hunk ( Dictionary diff_hunk, Array line_diffs ) | |
create_commit ( String msg, String author, String id, int unix_timestamp, int offset_minutes ) | |
create_diff_file ( String new_file, String old_file ) | |
create_diff_hunk ( int old_start, int new_start, int old_lines, int new_lines ) | |
create_diff_line ( int new_line_no, int old_line_no, String content, String status ) | |
create_status_file ( String file_path, ChangeType change_type, TreeArea area ) | |
void | popup_error ( String msg ) |
Enumerations
enum ChangeType:
CHANGE_TYPE_NEW = 0 —- A new file has been added.
CHANGE_TYPE_MODIFIED = 1 —- An earlier added file has been modified.
CHANGE_TYPE_RENAMED = 2 —- An earlier added file has been renamed.
CHANGE_TYPE_DELETED = 3 —- An earlier added file has been deleted.
CHANGE_TYPE_TYPECHANGE = 4 —- An earlier added file has been typechanged.
CHANGE_TYPE_UNMERGED = 5 —- A file is left unmerged.
enum TreeArea:
TREE_AREA_COMMIT = 0 —- A commit is encountered from the commit area.
TREE_AREA_STAGED = 1 —- A file is encountered from the staged area.
TREE_AREA_UNSTAGED = 2 —- A file is encountered from the unstaged area.
Method Descriptions
Checks out a branch_name
in the VCS.
- void _commit ( String msg ) virtual
Commits the currently staged changes and applies the commit msg
to the resulting commit.
- void _create_branch ( String branch_name ) virtual
Creates a new branch named branch_name
in the VCS.
Creates a new remote destination with name remote_name
and points it to remote_url
. This can be both an HTTPS remote or an SSH remote.
- void _discard_file ( String file_path ) virtual
Discards the changes made in file present at file_path
.
- void _fetch ( String remote ) virtual
Fetches new changes from the remote, but doesn’t write changes to the current working directory. Equivalent to git fetch
.
- Array _get_branch_list ( ) virtual
Gets an instance of an Array of Strings containing available branch names in the VCS.
- String _get_current_branch_name ( ) virtual
Gets the current branch name defined in the VCS.
Returns an Array of Dictionary items (see create_diff_file, create_diff_hunk, create_diff_line, add_line_diffs_into_diff_hunk and add_diff_hunks_into_diff_file), each containing information about a diff. If identifier
is a file path, returns a file diff, and if it is a commit identifier, then returns a commit diff.
Returns an Array of Dictionary items (see create_diff_hunk), each containing a line diff between a file at file_path
and the text
which is passed in.
- Array _get_modified_files_data ( ) virtual
Returns an Array of Dictionary items (see create_status_file), each containing the status data of every modified file in the project folder.
Returns an Array of Dictionary items (see create_commit), each containing the data for a past commit.
- Array _get_remotes ( ) virtual
Returns an Array of Strings, each containing the name of a remote configured in the VCS.
- String _get_vcs_name ( ) virtual
Returns the name of the underlying VCS provider.
Initializes the VCS plugin when called from the editor. Returns whether or not the plugin was successfully initialized. A VCS project is initialized at project_path
.
- void _pull ( String remote ) virtual
Pulls changes from the remote. This can give rise to merge conflicts.
Pushes changes to the remote
. Optionally, if force
is set to true, a force push will override the change history already present on the remote.
- void _remove_branch ( String branch_name ) virtual
Remove a branch from the local VCS.
- void _remove_remote ( String remote_name ) virtual
Remove a remote from the local VCS.
- void _set_credentials ( String username, String password, String ssh_public_key_path, String ssh_private_key_path, String ssh_passphrase ) virtual
Set user credentials in the underlying VCS. username
and password
are used only during HTTPS authentication unless not already mentioned in the remote URL. ssh_public_key_path
, ssh_private_key_path
, and ssh_passphrase
are only used during SSH authentication.
- bool _shut_down ( ) virtual
Shuts down VCS plugin instance. Called when the user either closes the editor or shuts down the VCS plugin through the editor UI.
- void _stage_file ( String file_path ) virtual
Stages the file present at file_path
to the staged area.
- void _unstage_file ( String file_path ) virtual
Unstages the file present at file_path
from the staged area to the unstaged area.
- Dictionary add_diff_hunks_into_diff_file ( Dictionary diff_file, Array diff_hunks )
Helper function to add an array of diff_hunks
into a diff_file
.
- Dictionary add_line_diffs_into_diff_hunk ( Dictionary diff_hunk, Array line_diffs )
Helper function to add an array of line_diffs
into a diff_hunk
.
- Dictionary create_commit ( String msg, String author, String id, int unix_timestamp, int offset_minutes )
Helper function to create a commit Dictionary item. msg
is the commit message of the commit. author
is a single human-readable string containing all the author’s details, e.g. the email and name configured in the VCS. id
is the identifier of the commit, in whichever format your VCS may provide an identifier to commits. unix_timestamp
is the UTC Unix timestamp of when the commit was created. offset_minutes
is the timezone offset in minutes, recorded from the system timezone where the commit was created.
- Dictionary create_diff_file ( String new_file, String old_file )
Helper function to create a Dictionary
for storing old and new diff file paths.
- Dictionary create_diff_hunk ( int old_start, int new_start, int old_lines, int new_lines )
Helper function to create a Dictionary
for storing diff hunk data. old_start
is the starting line number in old file. new_start
is the starting line number in new file. old_lines
is the number of lines in the old file. new_lines
is the number of lines in the new file.
- Dictionary create_diff_line ( int new_line_no, int old_line_no, String content, String status )
Helper function to create a Dictionary
for storing a line diff. new_line_no
is the line number in the new file (can be -1
if the line is deleted). old_line_no
is the line number in the old file (can be -1
if the line is added). content
is the diff text. status
is a single character string which stores the line origin.
- Dictionary create_status_file ( String file_path, ChangeType change_type, TreeArea area )
Helper function to create a Dictionary
used by editor to read the status of a file.
- void popup_error ( String msg )
Pops up an error message in the edior.