设置区域图标色调颜色而不定义范围

时间:2014-06-05 02:23:41

标签: sublimetext2 sublimetext sublimetext3 sublime-text-plugin

所以我现在正在制作一个Sublime Text插件[我的第一个],它在阴沟中显示与css行颜色相匹配的点子。与JetBrains的作用类似:

Inline color preview in JetBrains editors

我有点问题。据我所知,在添加区域时,我只能为区域提供模板然后主题的范围。现在我可以写出一个模板文件,它定义每个十六进制代码作为范围和主题来匹配,但这听起来很可怕。有一个更好的方法吗?是否可以将区域与主题分开着色?我对ST插件非常陌生,所以如果我错过了一些重要的文档,请告诉我:)

这是我的插件的一个非常精简的版本,以显示我目前是如何实现这一目标的:

import sublime, sublime_plugin

class FooCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        regions = [s for s in self.view.sel()]
        for region in regions:
            lines = self.view.split_by_newlines(region)
            for index, line in enumerate(lines):
                self.view.add_regions("csspip-{0}".format(index), [line], "csspip", "dot",
                                      sublime.HIDDEN | sublime.PERSISTENT)

进行选择并从控制台运行view.run_command('foo')以查看它当前的功能[不多]。

1 个答案:

答案 0 :(得分:1)

事实证明有人已经做了我想要做的事情,而我正在寻找错误的事情。它被称为Gutter Color。

他们实际上正在调用imagemagick来为每个颜色的sublime创建一个自定义图标文件。这听起来很疯狂,但是[显然]是唯一的方法。我不会引用代码,因为上下文是必需的,但如果你得到以下代码,你可以弄清楚他们做了什么让它工作:

https://github.com/ggordan/GutterColor/blob/master/line.py#L88