使用JXA设置BBEdit插入点

时间:2017-10-23 00:35:59

标签: javascript applescript jxa bbedit

我正在尝试将一些Applescript(AS)翻译成BBedit的Javascript(JXA)。

敲掉一些生锈是一件很有趣的小事,但我很难过。 使用AS,我可以将插入点设置为BBEdit文档;

tell application "BBEdit"
    activate
    tell text 1 of window 1
        select insertion point before line 40
    end tell
end tell

对于JXA,我完全被难过了。我一直在寻找线对象,但我找不到insertionPoint属性。

您可以像这样访问选择属性;

currentLine = bbedit.selection().startline().

但它是只读的。因此,如果要设置选择或插入点,我认为您需要访问该选择方法。我不知道如何,或者你是否可以使用JXA。

任何人都知道如何使用JXA设置BBEdit插入点和/或选择? 感谢。

1 个答案:

答案 0 :(得分:1)

JXA没有实现插入引用表单(before / after / beginning / end)。相对(previous… / next…)和范围(from…to…)说明符也是borked,filter(whose…)子句也很可怕。在JXA中,许多非常重要的东西在AS中断时运行良好:就像Apple早期的Scripting Bridge API一样,JXA在出厂时已经半生不熟,并立即被废弃。

像这样的垃圾是我推荐坚持使用AppleScript的原因。语言可能很糟糕,但它是唯一一个实际上正确实现Apple事件的[边缘]支持选项。通常情况下,我建议通过AppleScript-ObjC桥接器从其他语言调用AppleScript作为最不可靠的解决方案,但Apple也在10.13中设法打破了这一点。

(如果您喜欢危险地生活,NodeAutomation为Node.js提供了不受破坏的Apple事件支持,但是Apple放弃了AppleScript自动化,我不想浪费任何人的时间来推广或支持它,所以请注意。)