为atom创建语言包时,可以定义/snippets
文件夹。当包处于活动状态并且在编辑器中打开上下文(例如:".source.js"
)时,此处的所有文件都会自动加载。
现在我想参与language-arma-atom包,目前有3个片段文件:我想在包设置中添加一个复选框选项,以便不加载其中一个文件。
ie:我知道如何添加该选项,但不知道如何排除其中一个代码段文件。
答案 0 :(得分:0)
我解决这个问题的方法是创建一个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'
。
此外,如果您选择此方法,请不要忘记将/settings
放入 .gitignore