From 8634d261bef8d990234faa69de9bf375238b9125 Mon Sep 17 00:00:00 2001 From: evandrocoan Date: Sat, 5 Aug 2017 17:18:55 -0300 Subject: [PATCH 1/2] Disable the Anaconda Context Menu, if not on a python view. Issues: Hide Anaconda context menu entry on non-python projects https://github.com/DamnWidget/anaconda/issues/571 Allow to hide .sublime-menu folders https://github.com/SublimeTextIssues/Core/issues/1859 --- .gitignore | 1 + ....sublime-menu => Base Context.sublime-menu | 0 anaconda.py | 39 +++++++++++++++++++ 3 files changed, 40 insertions(+) rename Context.sublime-menu => Base Context.sublime-menu (100%) diff --git a/.gitignore b/.gitignore index d36933db..1f52cd6b 100644 --- a/.gitignore +++ b/.gitignore @@ -46,3 +46,4 @@ Main.sublime-menu # mypy cache .mypy_cache/ +/Context.sublime-menu-hidden diff --git a/Context.sublime-menu b/Base Context.sublime-menu similarity index 100% rename from Context.sublime-menu rename to Base Context.sublime-menu diff --git a/anaconda.py b/anaconda.py index 2d2ec90e..1d10cfbb 100644 --- a/anaconda.py +++ b/anaconda.py @@ -9,6 +9,7 @@ import os import sys +import shutil import logging from string import Template @@ -31,6 +32,8 @@ logger.addHandler(logging.StreamHandler(sys.stdout)) logger.setLevel(logging.DEBUG) +CURRENT_PATH = os.path.dirname( os.path.realpath( __file__ ) ) + def plugin_loaded() -> None: """Called directly from sublime on plugin load @@ -56,6 +59,42 @@ def plugin_loaded() -> None: if not LOOP_RUNNING: ioloop.loop() + install_context_menu() + disable_linter_context_menu() + +def install_context_menu(): + origin = os.path.join( CURRENT_PATH, 'Base Context.sublime-menu' ) + destine = os.path.join( CURRENT_PATH, 'Context.sublime-menu' ) + + shutil.copy( origin, destine ) + +class HideMenuOnActivation(sublime_plugin.EventListener): + + def on_activated_async(self, view): + disable_linter_context_menu() + +def disable_linter_context_menu(): + """ + Disable the linter Context Menu, if not on a linter view. + + Allow to hide .sublime-menu folders + https://github.com/SublimeTextIssues/Core/issues/1859 + """ + origin = os.path.join( CURRENT_PATH, 'Context.sublime-menu' ) + destine = os.path.join( CURRENT_PATH, 'Context.sublime-menu-hidden' ) + + try: + if is_current_view_linted( sublime.active_window().active_view() ): + shutil.move( destine, origin ) + + else: + shutil.move( origin, destine ) + + except IOError: + pass + +def is_current_view_linted(view): + return view.match_selector( view.sel()[0].begin(), 'source.python') def plugin_unloaded() -> None: """Called directly from sublime on plugin unload From fdfbfdf5c4917470aeefdebc8312e6071504cfab Mon Sep 17 00:00:00 2001 From: evandrocoan Date: Sat, 5 Aug 2017 17:21:04 -0300 Subject: [PATCH 2/2] Added missing entry Context.sublime-menu to .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 1f52cd6b..d57723d6 100644 --- a/.gitignore +++ b/.gitignore @@ -46,4 +46,5 @@ Main.sublime-menu # mypy cache .mypy_cache/ +/Context.sublime-menu /Context.sublime-menu-hidden