Skip to content

Commit

Permalink
#14 add enable_file_variables_on_save, support ${saved_filename}, $…
Browse files Browse the repository at this point in the history
…{saved_filepath}
  • Loading branch information
kairyou committed Jul 19, 2016
1 parent 4fdc7bc commit 5a880c5
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 0 deletions.
1 change: 1 addition & 0 deletions SublimeTmpl.sublime-settings
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@
"extension": "yaml"
},
"disable_keymap_actions": false, // "all"; "html,css"
"enable_file_variables_on_save": false, // ${saved_filename}, ${saved_filepath} on save file
"date_format" : "%Y-%m-%d %H:%M:%S",
"attr": {
"author": "Your Name",
Expand Down
31 changes: 31 additions & 0 deletions sublime-tmpl.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@

IS_GTE_ST3 = int(sublime.version()[0]) >= 3
DISABLE_KEYMAP = None
UNSAVED_IDS = {}

class SublimeTmplCommand(sublime_plugin.TextCommand):

Expand Down Expand Up @@ -114,9 +115,12 @@ def format_tag(self, code):
code = code.decode('utf8') # for st2 && Chinese characters
code = code.replace('${date}', date)


attr = settings.get('attr', {})
for key in attr:
code = code.replace('${%s}' % key, attr.get(key, ''))
# keep ${var..}
code = re.sub(r"(?<!\\)\${(?!\d)", '\${', code)
return code

def creat_tab(self, view):
Expand All @@ -141,6 +145,16 @@ def set_syntax(self, opts):
if KEY_FILE_EXT in opts:
v.settings().set('default_extension', opts[KEY_FILE_EXT])

class SublimeTmplReplaceCommand(sublime_plugin.TextCommand):
def run(self, edit, old, new):
# print('tmpl_replace', old, new)
region = sublime.Region(0, self.view.size())
if region.empty() or not old or not new:
return
s = self.view.substr(region)
s = s.replace(old, new)
self.view.replace(edit, region, s)

class SublimeTmplEventListener(sublime_plugin.EventListener):
def on_query_context(self, view, key, operator, operand, match_all):
settings = sublime.load_settings(PACKAGE_NAME + '.sublime-settings')
Expand All @@ -160,6 +174,23 @@ def on_query_context(self, view, key, operator, operand, match_all):
# print(name, ret)
DISABLE_KEYMAP = True if not ret else False;
return ret
def on_activated(self, view):
if view.file_name():
return
settings = sublime.load_settings(PACKAGE_NAME + '.sublime-settings')
if settings.get('enable_file_variables_on_save', False):
UNSAVED_IDS[view.id()] = True
# print('on_activated', UNSAVED_IDS, view.id(), view.file_name())
def on_pre_save(self, view):
if not view.id() in UNSAVED_IDS:
return
settings = sublime.load_settings(PACKAGE_NAME + '.sublime-settings')
if settings.get('enable_file_variables_on_save', False):
filepath = view.file_name()
filename = os.path.basename(filepath)
view.run_command('sublime_tmpl_replace', {'old': '${saved_filepath}', 'new': filepath})
view.run_command('sublime_tmpl_replace', {'old': '${saved_filename}', 'new': filename})
del UNSAVED_IDS[view.id()]

def plugin_loaded(): # for ST3 >= 3016
# global PACKAGES_PATH
Expand Down

0 comments on commit 5a880c5

Please sign in to comment.