【问题标题】:How do I color the stippled underline in Sublime Text 3?如何在 Sublime Text 3 中为点画下划线着色?
【发布时间】:2017-01-20 07:19:03
【问题描述】:

我有一个插件使用add_regions 命令为某些区域绘制下划线。

我还有一个自定义的tmLanguagetmTheme,所以我可以控制我设置的范围的字体样式/前景色等。

现在,我正试图让我的下划线成为一种特定颜色(而不是默认的白色 ST3 颜色)...我知道这是可能的,因为 ST3 中的拼写检查有一个红色波浪下划线。

我已经在我的 tmTheme 和插件的 add_regions 命令中更改了范围/设置/键等,但似乎没有任何问题。

任何方向都会非常有帮助!

【问题讨论】:

  • 使用不同的范围对我来说可以改变下划线的颜色 - 选择一些文本并在控制台中输入它以查看效果 view.add_regions('test', [view.sel()[0]], 'entity.name.tag', '', sublime.DRAW_STIPPLED_UNDERLINE | sublime.DRAW_NO_FILL | sublime.DRAW_NO_OUTLINE) 然后将 entity.name.tag 更改为 commentstring
  • @KeithHall 有趣...我对其进行了测试,它似乎有效。所以我必须使用一个完全不同的范围来获取颜色......我会再测试一下并报告:)
  • @KeithHall - 像魅力一样工作!!!谢谢!随意写一个答案,我会接受(或者我可以写答案,如果你不关心业力)。
  • 随意自己写答案 - 我认为你会比我更受益于代表 :)
  • @KeithHall - 完成!

标签: sublimetext3 sublime-text-plugin tmlanguage


【解决方案1】:

您可以简单地在您的tmTheme 文件中设置一个虚拟范围,并将foreground 设置值设置为您希望下划线的颜色。然后将该作用域名称传递给add_regions 函数调用。

黄色下划线示例...

tmTheme 文件中:

...
<dict>
  <key>name</key>
  <string>Yellow Underline</string>
  <key>scope</key>
  <string>underline.yellow.text</string>
  <key>settings</key>
  <dict>
    <key>foreground</key>
    <string>#FFFF00</string>
  </dict>
</dict>
...

在您的插件中:

# ...
# set regions variable above
view.add_regions('key', regions, 'underline.yellow.text', '', sublime.DRAW_STIPPLED_UNDERLINE | sublime.DRAW_NO_FILL | sublime.DRAW_NO_OUTLINE)
# ...

哒哒!你现在应该有黄色下划线:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-30
    • 1970-01-01
    • 2015-11-20
    • 2022-01-19
    • 2016-12-08
    • 2020-10-24
    • 1970-01-01
    • 2019-02-12
    相关资源
    最近更新 更多