升华文本3插件删除引号

2024-10-03 09:16:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将this plugin从升华文本2转换为升华文本3,但始终遇到此错误

  File "/Users/macintoshhd/Library/Application Support/Sublime Text 3/Packages/magiclessquotesjon.py", line 17, in on_pre_save
    edit = view.begin_edit()
TypeError: begin_edit() missing 2 required positional arguments: 'edit_token' and 'cmd'

我知道API在不同版本之间发生了变化,并且有一个porting guide,但我仍然不确定如何获得正确的TextCommand或如何使用它。在

此处插入代码:

^{pr2}$

Tags: text文本supportapplicationpackages错误librarythis
1条回答
网友
1楼 · 发布于 2024-10-03 09:16:54

通过一个额外的回调可以让它正常工作。。在

class RemoveSmartQuotesCommand(sublime_plugin.TextCommand):
    def run(self, edit, user_input=None):
        self.edit = edit
        replacements = [
            [u'[’‘`]{1}',u'\''],
            [u'[“”]{1}',u'"'],
            [u'[…]{1}',u'...'],
            [u'[—]{1}',u' -'],
            [u'[–]{1}',u' '],
            [u'[•]{1}',u'*'],
            [u' & ',u' & '],
        ]
        for replacement in replacements:
            x = self.view.find_all(replacement[0])
            for position in x:
                self.view.replace(edit, position, replacement[1])

class RemoveSmartQuotesWhenSaving(sublime_plugin.EventListener):
    def on_pre_save(self, view):
        view.run_command('remove_smart_quotes')

相关问题 更多 >