开发环境
如果您开发 Plugins for Sketch 花费了不少重要时间,则可以使用这些首选项配置对工作流程进行一些改进。
由于并非所有 Sketch 用户都是插件开发人员,因此在 “Preferences” 面板中为这些首选项设置 UI 并没有任何意义。您需要使用 Terminal.app 来启用/禁用它们。
为插件定义代码编辑器
有一个喜欢的代码编辑器?你可以告诉 Sketch 使用它来编辑插件。例如,如果你使用 Atom,你可以这样做:
defaults write ~/Library/Preferences/com.bohemiancoding.sketch3.plist "Plugin Editor" "/usr/local/bin/atom"
并重新启动 Sketch,您会看到一些新的菜单项:
- 转到 “Preferences” > “Plugins”,然后右键单击任何列出的插件。您将看到一个 “Edit Code…” 选项,该选项将启动编辑器并打开所选的插件代码。
- 打开插件菜单,你会看到一个 ‘Edit Plugins…’ 选项,它将启动你的编辑器并打开整个 ‘Plugins’ 文件夹。
调整 “Custom Plugin…” 编辑器
要更改 “Run Script…” 面板中使用的字体(例如,使用 SF Mono),可以这样做:
defaults write ~/Library/Preferences/com.bohemiancoding.sketch3.plist scriptEditorFont "SF Mono Light"
要回到默认设置(Andale Mono),只需删除首选项:
defaults delete ~/Library/Preferences/com.bohemiancoding.sketch3.plist scriptEditorFont
要更改编辑器的字体大小(默认值为12),请使用
defaults write ~/Library/Preferences/com.bohemiancoding.sketch3.plist scriptEditorFontSize 14
监听 Action API 中的所有操作
警告: 这是一项非常昂贵的操作,并且会影响 Sketch 的性能。请 仅在您的开发系统上 使用此功能, 而 不要在客户的计算机上启用此功能.
当使用新的 Action API 工作时,你可能想监听多个事件(试图找到监听的多个事件中哪个是您要使用的一个)。
为此,请使用 actionWildcardsAllowed
首选项。如果设置为YES
,则允许脚本为事件注册通配符处理程序。这是默认关闭的,它可能会对性能产生不利影响,因此请小心处理。
defaults write ~/Library/Preferences/com.bohemiancoding.sketch3.plist actionWildcardsAllowed -bool YES
一旦你这样做了,你可以通过在你的 manifest.json
中的 handlers.actions
对象中添加一个 *
键来告诉你的插件为每个动作调用一个方法:
{
...
"handlers": {
+ "actions": {
+ "*": "onActionHandler"
+ }
}
...
}
始终在运行前重新加载脚本
出于性能原因,Sketch 会缓存 Plugins 文件夹的内容。这对用户来说非常方便,因为插件运行速度非常快,但如果你是开发人员,会让你的生活变得艰难。这就是我们添加首选项以禁用此缓存机制并强制 Sketch 始终从磁盘重新加载插件代码的原因:
defaults write ~/Library/Preferences/com.bohemiancoding.sketch3.plist AlwaysReloadScript -bool YES
如果您启用此功能,只要您保存脚本,它就可以在 Sketch 中进行测试(对重启说再见, 如果只是为了测试一个小小的更改!)
请注意,此设置用来确定, 在每当 Sketch 为脚本创建新的 javascript 上下文时, 是否从磁盘盘重新加载脚本源。如果是 NO
,则缓存源,如果是 YES
,则始终从光盘重新加载源。
然而,它没有做的是在创建新的 JavaScript 上下文时进行更改。对于长时间运行的脚本,相同的上下文保存在内存中(必须是 - 正在运行的脚本正在使用它),直到脚本退出。因此,如果您正在测试一个长时间运行的脚本,您仍然必须找到一种方法来停止脚本,以便抛弃上下文(这通常意味着重新启动 Sketch 或设置 coscript.setShouldKeepAround(false)
)。
更改插件 JavaScript 后始终重新启动 sketch
如果您发现自己属于后一类,需要在开发期间定期重新启动长时间运行的 JavaScript 上下文,那么 unix 实用程序 entr
可能会派上用场。给定 stdin 上的文件列表,-r
每次修改其中一个文件时,它将运行一个命令(或重新启动一个长时间运行的进程):
find /your/plugin/build/dest -name '*js' | entr -r /Applications/Sketch.app/Contents/MacOS/Sketch
与 webview JavaScript 结合使用
如果您碰巧也有不需要重新启动 Sketch 的 webview JavaScript(因为右键单击 + 重新加载已经足够了),请确保避免将这些文件传递给 entr
:
find ... | grep -v 'web\.js' | entr ...
检查 WebView
如果您的插件使用的是 webview,那么您可能需要在某个时候进行检查。
为此,您需要添加首选项:
defaults write com.bohemiancoding.sketch3 WebKitDeveloperExtras -bool true
然后,您只需右键单击您的 webview 并单击 Inspect
即可。检查器就将会出现。