У меня есть класс blahtestCommand(sublime_plugin.ApplicationCommand)
с пробегом, он не работает.
Еще класс, у меня с sublime_plugin.TextCommmand)
работает.
Я немного озадачен тем, как должно выглядеть определение запуска. Я знаю java (занимался ООП-программированием 10 лет назад, что я хорошо помню), но я очень мало знаю python. (поэтому я не совсем понимаю, что класс принимает параметр, поскольку его не было в java, но я бы сделал слабое предположение, что это немного похоже на «расширение» - наследование или «реализует»).
Я также пытаюсь определить, что в документации API ST2 могло бы сказать кому-то, что когда у класса есть параметр sublime_plugin.TextCommand
, строка запуска def должна выглядеть так def run(self, edit)
, тогда как, когда класс имеет параметр sublime_plugin.ApplicationCommand
, запуск def должен выглядеть - я не знаю, как. (так что это еще большая загадка)
Обратите внимание, что здесь view.run_('......')
не работает для класса blahtest
, он не печатает "ааааааааааааааааааааааааааааааааа
У меня в консоли ошибок вообще нет. Плагин - what.py загружается нормально. Следовательно, один метод запуска класса работает, а другой - нет. blahtestCommand загружается. Я могу поместить строку между def run и class blahtestCommand для печати «123456789», и она будет напечатана, как только я сохраню what.py, потому что она перезагружается и никаких ошибок. Просто его метод запуска не вызывается, когда я делаю view.run_command('blahtest')
import sublime, sublime_plugin
class blahtestCommand(sublime_plugin.ApplicationCommand):
def run(self):
print "aaaaaaaaaaa"
class butthiswillworkCommand(sublime_plugin.TextCommand):
def run(self, edit):
print "bbbb"
>>> view.run_command('blahtest') >>> view.run_command('butthiswillwork') bbbb
добавлено по счастливой случайности. Мне удалось заставить его работать для WindowCommand
window.run_command('saef4',{"string":"abcd"})
, {"keys": ["ctrl+s", "ctrl+d"], "command": "saef4", "args": {"string": "abcd"} }
class saef4Command(sublime_plugin.WindowCommand):
def run(self,string):
print "uabcccc"
Я мог бы обновить этот вопрос в будущем относительно запуска «run» в классах возвышенного API.
print function
в интерпретаторе. - person samrap   schedule 23.10.2013blahtestCommand
? - person aIKid   schedule 23.10.2013blahtestCommand
... - person MattDMo   schedule 23.10.2013.run_command('blahtest')
должно быть возвышенным.run_command('blahtest')
.ApplicationCommand
s определены дляsublime
, аTextCommand
s определены дляview
s. - person ArtOfWarfare   schedule 23.09.2014