3

我正在尝试在 Sublime Text 3 中创建一个完成文件。我创建了一个名为的文件my_css_completions.py并将其放在Sublime Text 3/Packages/User. 它包含这个。

import sublime
import sublime_plugin


properties = {
    'foo',
    'bar',
}

class CSSCompletions(sublime_plugin.EventListener):
    def on_query_completions(self, view, prefix, locations):
        if not view.match_selector(locations[0], 'source.css'):
            print('not css')
            return []

        completions = []
        for prop in properties:
                completions.append((prop, prop+': $1;'))

        return (completions, sublime.INHIBIT_WORD_COMPLETIONS | sublime.INHIBIT_EXPLICIT_COMPLETIONS)

我一直在尝试my_css_completions.py覆盖或禁止默认完成,但发生的情况是我的完成与默认完成一起添加。有没有办法只让我的完成显示在 CSS 文件中?

4

1 回答 1

0

Sublime 包只是包含该包的所有文件的档案。Sublime Text 允许您覆盖单个文件,替换它们的默认行为。(虽然不是单独的完成,为此,我建议复制完成文件并仅更改您想要更改的那些

为此,您只需要一个与您要替换的文件具有相同名称和相对路径的文件,只是它相对于您的设置目录,而不是安装目录。因此,如果我想在 Windows 上替换 python "for"-snippet,我创建一个新文件

%appdata%\Sublime Text 3\Packages\Python\Snippets\for.sublime-snippet

包“PackageResourceViewer”是一个很好的帮手。使用“PackageResourceViewer:打开资源”命令,您可以浏览包,打开您需要的任何文件,保存它们后它们将自动保存到正确的位置以覆盖默认文件。

于 2016-05-29T17:16:55.667 回答