Как вызывать свой плагин, написанный на Sublime Text 2?

Доброго дня.
Хочу написать свой плагин для Sublime Text 2, но не понимаю как его запустить.

Прочитал вот эту статью на Хабре habrahabr.ru/post/136529, а также вот эту (первую часть) code.tutsplus.com/tutorials/how-to-create-a-sublim....

По хабру создал новый плагин, выставил горячие клавиши, из кода оставил только "Hello World", сохранил.
Пытаюсь его вызвать и.... ничего не происходит!
Может я что-то не так делаю? Или не туда смотрю?

Подскажите пожалуйста, как, от начала и до конца запустить свой плагин на Sublime Text 2 и увидеть его результаты?
Если есть где почитать - тоже с благодарностью посмотрю.
  • Вопрос задан
  • 248 просмотров
Решения вопроса 1
artem_1403
@artem_1403 Автор вопроса
Александр, спасибо за подсказку, но не совсем помогло :)
Зато я все-таки понял, в чем была моя проблема!

Все дело в том, как назвать класс и как его потом вызывать через горячие клавиши!
Я никак не мог понять, что если я класс называю
class SqlBeautifierCommand(sublime_plugin.TextCommand):

(причем обязательно ключевые слова в названии надо выделять большими буквами)
То вызывать его с помощью горячих клавиш надо будет вот так:
[
	 { "keys": ["ctrl+m","ctrl+b"], "command": "sql_beautifier" }
]

Сделаю акцент на том, что слово Command в названии класса роли не играет (по крайней мере, я не понял пока для чего оно, без него тоже работает).

Итоги:
  • Названия классов с заглавной буквы, ключевые слова слитно тоже с заглавной буквы;
  • Вызывать свой класс надо по названию класса, но переделать в вид, где каждая заглавная буква заменяется на маленькую, но с нижним подчеркиванием перед ней (кроме первой конечно же);
  • И наконец, название самого файла с расширением *.py не имеет значения.


Вот код для Hello World, с произвольным названием класса (заготовка для меня):
import sublime, sublime_plugin

class SqlBeautifierCommand(sublime_plugin.TextCommand):
	def run(self, edit):
		self.view.insert(edit, 0, "Hello, World!")


И сочетание клавиш, для вызова этого плагина (нажимаем ctrl и последовательно клавишу m и b):
[
	 { "keys": ["ctrl+m","ctrl+b"], "command": "sql_beautifier" }
]


Надеюсь кому-нибудь поможет :)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
В папке Packages положите свой *.py файл (в подпапку с именем вашего плагина, хотя можно и просто в User-папку для теста) с ExampleCommand из приведённой вами ссылки.
Затем в консоли (ctrl+`):
import sublime
sublime.active_window().active_view().run_command('example')


Если это работает, значит команда подхватилась, надо теперь прописать её куда-либо:
1. в команды по ctrl-p - файл с расширением .sublime-commands, также в папке плагина, но сработает и в User
2. в меню - .sublime-menu
3. в контекстное меню - Context.sublime-menu
4. на сочетание клавиш - .sublime-keymap

Примеры, думаю, найдёте.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы