EditorVCSInterface

    Version Control System (VCS) interface, which reads and writes to the local VCS in use.

    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 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.

    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_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.

    • bool _checkout_branch ( branch_name ) virtual

    Checks out a branch_name in the VCS.


    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.


    • void _create_remote ( remote_name, String remote_url ) virtual

    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 ( 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.


    • _get_branch_list ( ) virtual

    Gets an instance of an Array of s containing available branch names in the VCS.


    • String _get_current_branch_name ( ) virtual

    Gets the current branch name defined in the VCS.


    • _get_diff ( String identifier, area ) virtual

    Returns an Array of items (see create_diff_file, , create_diff_line, 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.


    • _get_line_diff ( String file_path, text ) virtual

    Returns an Array of items (see create_diff_hunk), each containing a line diff between a file at file_path and the text which is passed in.


    • _get_modified_files_data ( ) virtual

    Returns an Array of items (see create_status_file), each containing the status data of every modified file in the project folder.


    • _get_previous_commits ( int max_commits ) virtual

    Returns an of Dictionary items (see ), each containing the data for a past commit.


    • Array _get_remotes ( ) virtual

    Returns an of Strings, each containing the name of a remote configured in the VCS.


    • _get_vcs_name ( ) virtual

    Returns the name of the underlying VCS provider.


    • bool _initialize ( project_path ) virtual

    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 is set to true, a force push will override the change history already present on the remote.


    • void _remove_branch ( 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 ( username, String password, ssh_public_key_path, String ssh_private_key_path, 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 ( 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.


    • add_diff_hunks_into_diff_file ( Dictionary diff_file, diff_hunks )

    Helper function to add an array of diff_hunks into a diff_file.


    Helper function to add an array of line_diffs into a diff_hunk.


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

    Helper function to create a commit 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. 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.


    Helper function to create a Dictionary for storing old and new diff file paths.


    • create_diff_hunk ( int old_start, new_start, int old_lines, 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.


    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.



    • void popup_error ( msg )

    Pops up an error message in the edior.