原子包:可选地加载片段文件
atom package: optionally load snippet file
在为 atom 创建语言包时,可以定义一个 /snippets
文件夹。当包处于活动状态并且上下文(例如:".source.js"
)在编辑器中打开时,此处的任何文件都会自动加载。
现在我想为 language-arma-atom 包做贡献,其中目前有 3 个片段文件:我想在包设置中添加一个复选框选项以不加载这些文件之一。
即:我知道如何添加选项,但不知道如何排除这些片段文件之一。
我解决这个问题的方法是创建一个 snippetsAvailable
文件夹,将文件放在那里(并删除 snippets
文件夹)*.
在您的主包文件中,添加到您的 config schema:
config:
optionalSnippets:
title: "My optional snippets"
description: "Adds optional snippets to autosuggestions"
type: "boolean"
default: true
然后在您的程序包激活中执行如下操作:
activate: ->
@subscriptions = new CompositeDisposable
# etc..
atom.config.observe 'my-package.optionalSnippets', (checked) ->
# For copyNewer, see note below *
copyNewer "my-snippets", "#{__dirname}/snippets", {
cwd: "#{__dirname}/snippetsAvailable"
}
* 注意: 我使用了 copyNewer 包,因为它允许我删除 /snippets
文件夹,即:它会自动重新创建它.更重要的是,它不会在每次激活包时覆盖片段文件;除非你用新的片段更新了你的包。
显然,您必须在主文件的顶部写上 copyNewer = require 'copy-newer'
。
还有,如果你选择这种方式,别忘了在.gitignore
中加上/settings
在为 atom 创建语言包时,可以定义一个 /snippets
文件夹。当包处于活动状态并且上下文(例如:".source.js"
)在编辑器中打开时,此处的任何文件都会自动加载。
现在我想为 language-arma-atom 包做贡献,其中目前有 3 个片段文件:我想在包设置中添加一个复选框选项以不加载这些文件之一。
即:我知道如何添加选项,但不知道如何排除这些片段文件之一。
我解决这个问题的方法是创建一个 snippetsAvailable
文件夹,将文件放在那里(并删除 snippets
文件夹)*.
在您的主包文件中,添加到您的 config schema:
config:
optionalSnippets:
title: "My optional snippets"
description: "Adds optional snippets to autosuggestions"
type: "boolean"
default: true
然后在您的程序包激活中执行如下操作:
activate: ->
@subscriptions = new CompositeDisposable
# etc..
atom.config.observe 'my-package.optionalSnippets', (checked) ->
# For copyNewer, see note below *
copyNewer "my-snippets", "#{__dirname}/snippets", {
cwd: "#{__dirname}/snippetsAvailable"
}
* 注意: 我使用了 copyNewer 包,因为它允许我删除 /snippets
文件夹,即:它会自动重新创建它.更重要的是,它不会在每次激活包时覆盖片段文件;除非你用新的片段更新了你的包。
显然,您必须在主文件的顶部写上 copyNewer = require 'copy-newer'
。
还有,如果你选择这种方式,别忘了在.gitignore
中加上/settings