Should probably use self.transformer.im_func
instead of self.transformer[0]
whichs run that risk of syntactic ambiguity.
unbound method shmethod
eg.
class Transformer(sublime_plugin.TextCommand):
def run(self, edit):
self.transform(self.transformer.im_func, self.view, edit)
def transform(self, f, view, edit):
for s in view.sel():
if s.empty():
s = view.word(s)
txt = f(view.substr(s))
view.replace(edit, s, txt)
class SwapCaseCommand(Transformer):
transformer = string.swapcase
class UpperCaseCommand(Transformer):
transformer = string.upper
class LowerCaseCommand(Transformer):
transformer = string.lower