def __init__(self, name): self.name = name self.menu_path = join(sublime.packages_path(), "User", MENU_FOLDER) if not exists(self.menu_path): makedirs(self.menu_path) settings = load_settings() self.menu_types = multiget(settings, "menu_types", []) self.svn_disabled = multiget(settings, "svn_disabled", False) or multiget(settings, "svn_hide_menu", False) self.git_disabled = multiget(settings, "git_disabled", False) or multiget(settings, "git_hide_menu", False) self.hg_disabled = multiget(settings, "hg_disabled", False) or multiget(settings, "hg_hide_menu", False) self.show_ext = multiget(settings, "show_external", False) and get_external_diff() is not None self.show_int = multiget(settings, "show_internal", True)
def update_menu(name="..."): menu_path = join(sublime.packages_path(), "User", MENU_FOLDER) if not exists(menu_path): makedirs(menu_path) if exists(menu_path): settings = load_settings() svn_disabled = multiget(settings, "svn_disabled", False) or multiget( settings, "svn_hide_menu", False) git_disabled = multiget(settings, "git_disabled", False) or multiget( settings, "git_hide_menu", False) hg_disabled = multiget(settings, "hg_disabled", False) or multiget( settings, "hg_hide_menu", False) show_ext = multiget(settings, "show_external", False) and get_external_diff() is not None show_int = multiget(settings, "show_internal", True) menu = join(menu_path, CONTEXT_MENU) vc_internal = [] vc_internal_menu = None if show_int: if not svn_disabled: vc_internal.append(SVN_INTERNAL_MENU) if not git_disabled: vc_internal.append(GIT_INTERNAL_MENU) if not hg_disabled: vc_internal.append(HG_INTERNAL_MENU) if len(vc_internal): vc_internal_menu = ",\n".join(vc_internal) vc_external = [] vc_external_menu = None if show_ext: if not svn_disabled: vc_external.append(SVN_EXTERNAL_MENU) if not git_disabled: vc_external.append(GIT_EXTERNAL_MENU) if not hg_disabled: vc_external.append(HG_EXTERNAL_MENU) if len(vc_external): vc_external_menu = ",\n".join(vc_external) with open(menu, "w") as f: f.write( DIFF_MENU % { "internal": ("" if not show_int else INTERNAL_MENU % { "file_name": name }), "external": ("" if not show_ext else EXTERNAL_MENU % { "file_name": name }), "vc_internal": ("" if vc_internal_menu is None or not show_int else VC_INTERNAL_MENU % { "vc": vc_internal_menu }), "vc_external": ("" if vc_external_menu is None or not show_ext else VC_EXTERNAL_MENU % { "vc": vc_external_menu }) })
def get_external_diff(): """Get external diff path.""" settings = load_settings() ext_diff = multiget(settings, "external_diff", None) if ext_diff is None or ext_diff == "" or not exists(abspath(normpath(ext_diff))): diff_path = None else: diff_path = abspath(normpath(ext_diff)) debug("External diff was not found!" if diff_path is None else "External diff \"%s\" found." % diff_path) return diff_path
def get_external_diff(): """Get external diff path.""" settings = load_settings() ext_diff = multiget(settings, "external_diff", None) if ext_diff is None or ext_diff == "" or not exists( abspath(normpath(ext_diff))): diff_path = None else: diff_path = abspath(normpath(ext_diff)) debug("External diff was not found!" if diff_path is None else "External diff \"%s\" found." % diff_path) return diff_path
def vc_is_enabled(self, name): """Check if version control command is enabled.""" enabled = False if name is not None: try: enabled = (self.control_enabled and (multiget(load_settings(), "skip_version_check_on_is_enabled", False) or self.is_versioned(name))) except Exception: pass return enabled
def setup_vc_binaries(): """Setup version control binaries.""" global SVN_ENABLED global GIT_ENABLED global HG_ENABLED settings = load_settings() svn_path = multiget(settings, "svn", None) git_path = multiget(settings, "git", None) hg_path = multiget(settings, "hg", None) if svn_path is not None and svn_path != "": svn.set_svn_path(svn_path) SVN_ENABLED = None if git_path is not None and git_path != "": git.set_git_path(git_path) GIT_ENABLED = None if hg_path is not None and hg_path != "": hg.set_hg_path(hg_path) HG_ENABLED = None settings.clear_on_change('reload_vc') settings.add_on_change('reload_vc', setup_vc_binaries)
def setup_vc_binaries(): global SVN_ENABLED global GIT_ENABLED global HG_ENABLED settings = load_settings() svn_path = multiget(settings, "svn", None) git_path = multiget(settings, "git", None) hg_path = multiget(settings, "hg", None) if svn_path is not None and svn_path != "": svn.set_svn_path(svn_path) if git_path is not None and git_path != "": git.set_git_path(git_path) if hg_path is not None and hg_path != "": hg.set_hg_path(hg_path) try: log("svn %s" % svn.version()) SVN_ENABLED = True except: log("svn not found or is not working!") pass try: log("git %s" % git.version()) GIT_ENABLED = True except: log("git not found or is not working!") pass try: log("hg %s" % hg.version()) HG_ENABLED = True except: log("hg not found or is not working!") pass settings.clear_on_change('reload_vc') settings.add_on_change('reload_vc', setup_vc_binaries)
def is_enabled(self): enabled = False name = self.view.file_name() if self.view is not None else None if name is not None: try: enabled = ( self.control_enabled and ( multiget(load_settings(), "skip_version_check_on_is_enabled", False) or self.is_versioned(name) ) ) except: pass return enabled
def __init__(self, name): """Initialize.""" self.name = name self.menu_path = join(sublime.packages_path(), "User", MENU_FOLDER) if not exists(self.menu_path): makedirs(self.menu_path) settings = load_settings() self.menu_types = multiget(settings, "menu_types", []) self.svn_disabled = multiget(settings, "svn_disabled", False) or multiget( settings, "svn_hide_menu", False) self.git_disabled = multiget(settings, "git_disabled", False) or multiget( settings, "git_hide_menu", False) self.hg_disabled = multiget(settings, "hg_disabled", False) or multiget( settings, "hg_hide_menu", False) self.show_ext = multiget(settings, "show_external", False) and get_external_diff() is not None self.show_int = multiget(settings, "show_internal", True)
def vc_is_enabled(self, name): """Check if version control command is enabled.""" enabled = False if name is not None: try: enabled = ( self.control_enabled and ( multiget(load_settings(), "skip_version_check_on_is_enabled", False) or self.is_versioned(name) ) ) except Exception: pass return enabled
def update_menu(name="..."): menu_path = join(sublime.packages_path(), "User", MENU_FOLDER) if not exists(menu_path): makedirs(menu_path) if exists(menu_path): settings = load_settings() svn_disabled = multiget(settings, "svn_disabled", False) or multiget(settings, "svn_hide_menu", False) git_disabled = multiget(settings, "git_disabled", False) or multiget(settings, "git_hide_menu", False) hg_disabled = multiget(settings, "hg_disabled", False) or multiget(settings, "hg_hide_menu", False) show_ext = multiget(settings, "show_external", False) and get_external_diff() is not None show_int = multiget(settings, "show_internal", True) menu = join(menu_path, CONTEXT_MENU) vc_internal = [] vc_internal_menu = None if show_int: if not svn_disabled: vc_internal.append(SVN_INTERNAL_MENU) if not git_disabled: vc_internal.append(GIT_INTERNAL_MENU) if not hg_disabled: vc_internal.append(HG_INTERNAL_MENU) if len(vc_internal): vc_internal_menu = ",\n".join(vc_internal) vc_external = [] vc_external_menu = None if show_ext: if not svn_disabled: vc_external.append(SVN_EXTERNAL_MENU) if not git_disabled: vc_external.append(GIT_EXTERNAL_MENU) if not hg_disabled: vc_external.append(HG_EXTERNAL_MENU) if len(vc_external): vc_external_menu = ",\n".join(vc_external) with open(menu, "w") as f: f.write( DIFF_MENU % { "internal": ("" if not show_int else INTERNAL_MENU % {"file_name": name}), "external": ("" if not show_ext else EXTERNAL_MENU % {"file_name": name}), "vc_internal": ("" if vc_internal_menu is None or not show_int else VC_INTERNAL_MENU % {"vc": vc_internal_menu}), "vc_external": ("" if vc_external_menu is None or not show_ext else VC_EXTERNAL_MENU % {"vc": vc_external_menu}) } )
def is_versioned(self, name): """Check if file is versioned.""" disabled = multiget(load_settings(), "hg_disabled", False) on_disk = exists(name) return not disabled and on_disk and hg.is_versioned(name)
def get_external_diff(): settings = load_settings() ext_diff = multiget(settings, "external_diff", None) return None if ext_diff is None or ext_diff == "" or not exists(abspath(normpath(ext_diff))) else abspath(normpath(ext_diff))
def is_versioned(self, name): disabled = multiget(load_settings(), "hg_disabled", False) return not disabled and hg.is_versioned(name)