From 9df1949413f5e6d7998e0665de67a185eb083dd8 Mon Sep 17 00:00:00 2001 From: dxinef <7739224@qq.com> Date: Fri, 6 May 2016 13:15:09 +0800 Subject: [PATCH 1/2] Add 'filename_ignore' option --- SublimeOnSaveBuild.py | 11 ++++++++++- SublimeOnSaveBuild.sublime-settings | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/SublimeOnSaveBuild.py b/SublimeOnSaveBuild.py index 2f3c444..ecc13e2 100644 --- a/SublimeOnSaveBuild.py +++ b/SublimeOnSaveBuild.py @@ -1,12 +1,12 @@ import sublime import sublime_plugin import re +import os class SublimeOnSaveBuild(sublime_plugin.EventListener): def on_post_save(self, view): global_settings = sublime.load_settings(self.__class__.__name__+'.sublime-settings') - # See if we should build. A project level build_on_save setting # takes precedence. To be backward compatible, we assume the global # build_on_save to be true if not defined. @@ -15,10 +15,19 @@ def on_post_save(self, view): # Load filename filter. Again, a project level setting takes precedence. filename_filter = view.settings().get('filename_filter', global_settings.get('filename_filter', '.*')) + # filename_ignore + filename_ignore = view.settings().get('filename_ignore', global_settings.get('filename_ignore')) + if not should_build: return if not re.search(filename_filter, view.file_name()): return + if filename_ignore and re.search(filename_ignore, os.path.basename(view.file_name())): + return + view.window().run_command('build') + + + \ No newline at end of file diff --git a/SublimeOnSaveBuild.sublime-settings b/SublimeOnSaveBuild.sublime-settings index 0370322..595d341 100644 --- a/SublimeOnSaveBuild.sublime-settings +++ b/SublimeOnSaveBuild.sublime-settings @@ -1,4 +1,5 @@ { "filename_filter": "\\.(css|js|sass|less|scss)$", + "filename_ignore" : "^_+", "build_on_save": 1 } \ No newline at end of file From 6f600240974950128dbf34d7f184b8e94797ef07 Mon Sep 17 00:00:00 2001 From: dxinef <7739224@qq.com> Date: Thu, 6 Sep 2018 12:47:53 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=91=BD=E4=BB=A4=E9=9D=A2=E6=9D=BF?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=AE=BE=E7=BD=AE=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SublimeOnSaveBuild.py | 10 ++++++++-- SublimeOnSaveBuild.sublime-commands | 21 +++++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 SublimeOnSaveBuild.sublime-commands diff --git a/SublimeOnSaveBuild.py b/SublimeOnSaveBuild.py index ecc13e2..5c5b0af 100644 --- a/SublimeOnSaveBuild.py +++ b/SublimeOnSaveBuild.py @@ -29,5 +29,11 @@ def on_post_save(self, view): view.window().run_command('build') - - \ No newline at end of file + + +class SublimeOnSaveBuildToggleCommand(sublime_plugin.TextCommand): + def run(self, view, enable=True): + setting_filename = "SublimeOnSaveBuild.sublime-settings" + settings = sublime.load_settings(setting_filename) + settings.set('build_on_save', enable) + sublime.save_settings(setting_filename) \ No newline at end of file diff --git a/SublimeOnSaveBuild.sublime-commands b/SublimeOnSaveBuild.sublime-commands new file mode 100644 index 0000000..692f793 --- /dev/null +++ b/SublimeOnSaveBuild.sublime-commands @@ -0,0 +1,21 @@ +[ + { + "caption": "SublimeOnSaveBuild: Setting", + "command": "open_file", + "args": {"file": "${packages}/User/SublimeOnSaveBuild.sublime-settings"} + }, + { + "caption": "SublimeOnSaveBuild: Enable", + "command": "sublime_on_save_build_toggle", + "args": { + "enable": true + } + }, + { + "caption": "SublimeOnSaveBuild: Disable", + "command": "sublime_on_save_build_toggle", + "args": { + "enable": false + } + } +]