我刚升级到Sublime Text 3.
我使用Sublime Text 2中现有的配色方案。但现在多语言代码突出显示不再有效。
有人可以帮我解决我的tmTheme的自定义范围。
答案 0 :(得分:1)
祝贺升级,这是一个不错的选择。我正在使用ST3 Build 3120这个最新的开发版本,所以如果你使用的是public beta Build 3114,语言定义可能会有所改变,但不是很明显。我还使用Neon Color Scheme(完全披露:我是开发人员),与其他一些颜色方案(如Monokai或Solarized)相比,它具有非常多的特定范围各种不同语言功能的颜色。最后,由于我是一个配色方案设计师,我使用像ScopeHunter
和ScopeAlways
这样的工具来确定哪些范围和主题元素在文本中的任何一点都是活动的。
因此,这里是使用Sublime的HTML语法的代码的屏幕截图以及其他一些测试行:
以后是使用PHP语法捕获的相同代码:
我们可以看到,在左下角,ScopeAlways指示在光标位置,HTML文件的基本范围是text.html.basic
,而PHP文件的基础范围是{{1 }}。到目前为止,这么好 - 这是正常的。但更重要的是,我们可以看到HTML和PHP之间突出显示的明显区别,包括embedding.php text.html.basic
属性与其他属性相比的内容,以及嵌入式PHP代码的着色(或缺少)(是的,我知道我在底部隔离的PHP代码的末尾错过了一个id
- 添加一个并没有改变任何东西。
所以,我的第一个建议是,如果你还没有使用它,那就是将文件的语法设置为PHP。您可以从底栏右侧的菜单中进行选择,也可以选择 ;
并从可用选项中进行选择。
如果您已经在使用PHP语法,那么您应该知道,从今年年初开始(或多或少),Sublime的许多language description syntax files已经被重大或完全重写,其中包括PHP和HTML。在某些情况下,他们需要现代化和加速,并且随着sublime-syntax
格式的出现(比旧的,但仍然支持,View → Syntax →
格式更强大),更好的正则表达式tmLanguage
文件的引擎,以及Will Bond(Package Control成名)的Sublime HQ雇佣Jon Skinner(Sublime的作者)没有做的事情很多有时间或有兴趣,Sublime本身的开发过程以及语法定义(同时是开源的)已经大大增加。这是一个非常冗长的方式,说很多东西在相对较短的时间内发生了变化,并且使用旧版本的HTML和PHP语法编写的配色方案可能不适合新的版本。所以,如果您是那种人,您可能想要查看新的语法并更新您的配色方案,或者您可以尝试其他一些已经通过该过程的其他方案。
回到那个奇怪的.sublime-syntax
突出显示 - 我将很快发布一个新版本的Neon来解决这个问题,并为id
属性的内容添加颜色,就像{{1或任何其他属性。我也会试着找出他们为什么那样做。
我希望这会有所帮助。祝你好运!