脚本编辑器“Corrupted Dictionary”

时间:2013-12-01 01:38:37

标签: applescript

我正在尝试在OS X Mavericks上创建AppleScript库。我已将文件保存为~/Library/Script Libraries作为脚本包;它有一个正确的(据我所知;见下文)sdef文件,我已经设置了Scripting Definition字段。

但是,当我尝试保存我的脚本包时,AppleScript编辑器给出了以下一般错误消息:“应用程序有一个损坏的字典。”我可以阻止这种情况发生的唯一方法是删除所有< / strong>保存前文档中的文本 - 如果其中有任何(即使只是注释),AppleScript会抛出错误。发生了什么事?

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dictionary SYSTEM "file://localhost/System/Library/DTDs/sdef.dtd">
<dictionary>
  <suite name="Regular Expressions" code="RExp" description="Commands for working with regular expressions">
    <command name="match" code="RExpMtch" description="Gets whether or not the regular expression matches.">
      <direct-parameter type="text" description="The regular expression to match." />
      <parameter name="against" code="targ" type="text" description="The string to match the regular expression against. "/>
      <parameter name="with options" code="opts" type="expression options" optional="yes" />
      <result type="expression match" />
    </command>

    <command name="default expression options" code="DOpt">
        <result type="expression options" />
    </command>

    <class name="expression match" code="Rslt" description="The output of a match command.">
        <contents type="text" name="capture group" code="Mgrp" />
        <property type="boolean" name="success" code="OK? " access="r" />
    </class>

    <class name="expression options" code="opts">
      <property name="case sensitive" code="Case" type="boolean" access="rw" />
      <property name="single line flag" code="S\n " type="boolean" access="rw" />
      <property name="multiple line flag" code="M\n " type="boolean" access="rw" />
    </class>
  </suite>
</dictionary>

上面的sdef代码也是Here

1 个答案:

答案 0 :(得分:2)

您收到错误的主要原因是命令格式错误;

< command name="default expression options" code="DOpt">
            <result type="expression options" />
</command>

删除它允许脚本编译。

此外,您不应使用所有小写代码。它们是为Apple的代码保留的,可能会发生冲突