我开发了一个包,允许用户使用 Home 按钮在软包裹线中切换光标位置,就像在 Komodo Edit中一样> em>编辑。
在我的toggle()
函数中,我尝试使用getActiveTextEditor
函数从Atom Workspace获取活动文本编辑器,然后执行逻辑。
atom.workspace.getActiveTextEditor()
我使用选择器atom-text-editor.editor
绑定 Home 键,它主要工作正常,直到在搜索和替换窗格或命令选项板< / em>的
"atom-text-editor.editor": {
"home": "toggle-home:toggle"
}
在这种情况下,getActiveTextEditor
始终返回当前编辑的文件的文本编辑器。当光标在已编辑文件的窗格内移动但不在聚焦字段内时,会导致这种情况。当我在设置窗格的文本字段中使用 Home 时,Atom会抛出异常,因为它无法找到任何活动的文本编辑器。
我通过Atom Docs,Atom API,甚至社区软件包进行了研究,但我发现,只是将&#39; mini&#39; 添加到我的事件选择器中,以缩小事件范围a位。
"atom-text-editor.editor:not([mini])": {
"home": "toggle-home:toggle"
}
然而,如果没有&#39; mini&#39; (即Git / GitHub软件包的textarea),它仍会在文本字段中导致异常或不当行为。
我想要达到的目标是:
1)找到一个正确的键绑定选择器,它只能在当前编辑的文件窗格内触发;
OR
2)找到获取焦点实例的方法(搜索和替换,命令调色板或任何其他字段)以进行进一步处理。
解决方案
正如DamnedScholar提到here:
选择器
atom-workspace-axis.vertical atom-pane-container atom-text-editor:not([mini])
将会这样做。
已经过测试,效果很好。