SublimeText3 + EventListener - Как связать метод класса с методом on_query_completions - PullRequest
0 голосов
/ 04 мая 2019

Я создаю плагин SublimeText3 с классом sublime_plugin.EventListener. Я хочу заменить key1 на replace1 методом on_query_completions. Но я не мог этого. Как узнать, привязать метод класса к методу on_query_completions? Или как альтернативным способом?

class MyPlugin(sublime_plugin.EventListener):
    def on_query_completions(self, view, prefix, locations):
        """ success, but this is not to hoped """
        return [
            ['key1', 'replace1'],
            ['key2', 'replace2'],
        ]

    def on_query_completions(self, view, prefix, locations):
        """ not working, but this is I hoped """
        return [
            ['key1', self.replace1],
            ['key2', self.replace2],
        ]

    def replace1(self):
        return 'replace2'

    def replace2(self):
        return 'replace2'

1 Ответ

1 голос
/ 04 мая 2019

Ваш код не работает так, как написано, потому что self.replace1 и self.replace2 не являются строками, они являются функциями (методами), а возвращаемое значение из on_query_completions нуждается в строках.

Если ваше намерениечтобы получить результат методов и использовать их в качестве текста замены, вы должны вызывать их, а не просто ссылаться на них:

import sublime
import sublime_plugin


class MyPlugin(sublime_plugin.EventListener):
    def on_query_completions(self, view, prefix, locations):
        """ not working, but this is I hoped """
        return [
            ['key1', self.replace1()],
            ['key2', self.replace2()],
        ]

    def replace1(self):
        return 'replace1'

    def replace2(self):
        return 'replace2'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...