首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SublimeText2自定义作用域

SublimeText2自定义作用域
EN

Stack Overflow用户
提问于 2012-11-15 23:43:12
回答 1查看 148关注 0票数 1

我有许多使用类似代码的不同类型的项目,我的目标是在SublimeText2中创建仅在给定项目上激活的代码片段和键绑定。

例如,我通过jsg40.html使用jsg1.html,也通过kwa40.html使用kwa1.html。这两个组中的每个组都有唯一的代码,我想为每个组创建不同的代码片段和键绑定。

这导致我想要创建自定义文件类型,如.kwa.jsg,这样我就可以创建范围设置为这些文件类型的代码段/键绑定。

然而,我不能让它工作。这是我尝试过的:

a.sublime-snippet

代码语言:javascript
复制
<snippet>
<content><![CDATA[
<a href="$1" style="font-family: Segoe UI, Lucida Sans Unicode, Arial;  color:#2f6497; font-size:14px; text-decoration:underline;">$2</a>
]]></content>
<tabTrigger>aj</tabTrigger>
<scope>source.jsg</scope>
</snippet>

jsg.tmLanguage

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"    "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>fileTypes</key>
  <array>
    <string>jsg</string>
  </array>
  <key>name</key>
  <string>jsg</string>
  <key>scopeName</key>
  <string>source.jsg</string>
</dict>
</plist>

这两个文件都在我的Packages/User文件夹中。但是,我有一个名为test.jsg的文件,其中的代码片段不会激活。

所以问题是:

为使用相同键绑定和代码片段的HTML文件组创建自定义作用域的最佳方式是什么?是否通过为新文件类型创建自定义语法来创建自定义作用域?还是有更好的方法?如果这是最好的方法,为什么我的代码片段在我的.jsg文件中不起作用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-22 01:35:39

所以我想通了。要生成您自己的键绑定和代码片段,您需要创建一个自定义的scope。要显示文档的当前范围,可以使用热键:

Ctrl + ⇧ + Alt + P

如果您打开一个html文件并运行此命令,您应该会看到它显示text.html。我们的目标是创建一个像html语法一样突出显示的文件类型,同时显示text.wescope,其中.we是我们的自定义文件类型(也就是说,它可以是我们想要的任何文件类型)。然后,我们可以在键绑定和代码片段文件中使用该scope

首先要做的是:我们需要确保我们的自定义文件类型还没有与html关联。如果您在View - Syntax - Open all with current extension as...下设置了该设置,则会发生这种情况,您最初可能会这样做,以使您的文件类型具有与html相同的高亮显示效果。别担心,我们还是会这么做的,但我们必须换一种方式来做。

如果已执行此操作,请找到JSON文件../Path/to/Sublime Text 2/Packages/Users/HTML.sublime-settings,然后从属性编辑器中删除关联的扩展名。如果你在Windows上找不到Packages文件夹,它通常隐藏在User/AppData/Roaming中。

因此,现在我们已经解除了文件的关联,我们必须首先找到使用我们想要的突出显示的语言的设置文件。在我的例子中,它是html,所以我选择了../Path/to/Sublime Text 2/Packages/HTML。复制文件html.tmLanguageComments.tmPreferences并将它们放入Packages中的任何位置。对于组织,我将它们放在Packages/Users/xxx中,其中xxx是我的自定义文件类型。当我们稍后制作代码片段时,我还会建议您将它们保留在那里,以便与您的文件类型相关的所有内容都放在一个地方。

无论如何,请根据您的文件类型相应地重命名这些文件。在文件中,您需要更改三个属性:fileTypes (在开头)、namescope (最后两个在最后)。相应地替换这些内容。确保scopeName采用text.___形式。

更改Comments.tmPreferences文件的scope,就可以使用您的自定义文件类型了。它现在将显示html文件的高亮显示,并允许您在代码片段和键绑定中将其用作scope

此外,如果您的自定义文件是HTML文件,当您打开它们时,浏览器显示它们将不会有任何问题。

任务完成!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13401012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档