@@ -665,6 +665,18 @@ def on_selection_modified(self, view):
665665 sh_thread .modified = True
666666 sh_thread .time = time ()
667667
668+ def on_activated (self , view ):
669+ """Check color scheme on activated and update if needed."""
670+
671+ scheme = view .settings ().get ("color_scheme" )
672+ if scheme is None :
673+ pref_settings = sublime .load_settings ('Preferences.sublime-settings' )
674+ scheme = pref_settings .get ('color_scheme' )
675+
676+ if sh_theme is not None and scheme is not None :
677+ if scheme != sh_theme .scheme_file :
678+ reinit_plugin ()
679+
668680
669681class ShThread (threading .Thread ):
670682 """Load up defaults."""
@@ -771,8 +783,7 @@ def get_theme_res(self, *args, **kwargs):
771783 def setup (self ):
772784 """Setup the theme object."""
773785
774- pref_settings = sublime .load_settings ('Preferences.sublime-settings' )
775- self .scheme_file = pref_settings .get ('color_scheme' )
786+ self .scheme_file = scheme_matcher .scheme_file
776787 self .tt_theme = sh_settings .get ('tooltip_theme' , 'ScopeHunter/tt_theme' ).rstrip ('/' )
777788 theme_file = 'dark' if scheme_matcher .is_dark_theme else 'light'
778789
@@ -786,8 +797,20 @@ def init_color_scheme():
786797 """Setup color scheme match object with current scheme."""
787798
788799 global scheme_matcher
789- pref_settings = sublime .load_settings ('Preferences.sublime-settings' )
790- scheme_file = pref_settings .get ('color_scheme' )
800+ scheme_file = None
801+
802+ # Attempt syntax specific from view
803+ window = sublime .active_window ()
804+ if window is not None :
805+ view = window .active_view ()
806+ if view is not None :
807+ scheme_file = view .settings ().get ('color_scheme' , None )
808+
809+ # Get global scheme
810+ if scheme_file is None :
811+ pref_settings = sublime .load_settings ('Preferences.sublime-settings' )
812+ scheme_file = pref_settings .get ('color_scheme' )
813+
791814 try :
792815 scheme_matcher = ColorSchemeMatcher (scheme_file )
793816 except Exception :
0 commit comments