Eclipse-如何扩展HTML编辑器以添加自定义标记?

Eclipse-如何扩展HTML编辑器以添加自定义标记?,html,eclipse,tags,Html,Eclipse,Tags,我编写了一个应用程序,在HTML代码中我有自定义标记(当然这些标记是在服务器端解析的,最终用户将它们作为有效的HTML代码)。自定义标记用法示例: <html> <body> ... <Gallery type="grid" title="My Gallery" /> ... </body> </html> ... ... 1.)我如何让eclipse识别HTML代码中的自定义标记并向其添加语法突出显示? 2.)如何向自定

我编写了一个应用程序,在HTML代码中我有自定义标记(当然这些标记是在服务器端解析的,最终用户将它们作为有效的HTML代码)。自定义标记用法示例:

<html>
<body>
...
    <Gallery type="grid" title="My Gallery" />
...
</body>
</html>

...
...
1.)我如何让eclipse识别HTML代码中的自定义标记并向其添加语法突出显示?

2.)如何向自定义标签添加自动建议?例如,如果我不幸地键入“,没有简单的方法:您必须为此滚动您自己的解析器,然后向其中添加额外的元素和基本语法(HTML)

如果您有解析器,您可以使用它进行语法高亮显示(严格来说,简单的词法分析就足够了);一个好的解析器可以支持内容辅助(术语中的自动建议)

注意事项:

  • 为HTML创建一个解析器不是一件容易的事情。也许通过瞄准一个更常用的子集是可行的
  • 如果存在解析器,编辑器部分仍然很难做好
另一方面,一些帮助:您可以使用一些文本编辑器生成器来简化您的工作:

  • EclipseIMP在理论上可以处理任何类型的解析器,但目前它针对LPG进行了最优化。文档很少,但开发人员在论坛上很有帮助
  • Xtext在为DSL创建文本编辑器方面大肆宣传。生成的编辑器非常好,但不是大文件的最佳解决方案。它有一个非常有用的开发人员社区
  • EMFText是一个鲜为人知的实体——我不知道它的细节,但我想,它与Xtext类似

不是你真正想要的,但它可能会帮助你:

  • 您可以尝试Eclipse,它允许编写自己的正则表达式进行HTML验证,因此验证程序将忽略自定义标记。 例如:

    .画廊

  • Eclipse允许您通过模板添加简单的自动建议 Eclipse3.7.1(Indigo)+PHP开发工具(PDT)3.0.0:窗口>首选项>Web>HTML文件>编辑器>模板


  • 我觉得模板是一个不错的选择,但让我们看看我们是否可以鼓励一个更强大的解决方案;请花点时间投票支持这一点:

    我知道问这个问题已经很久了, 但我希望这能帮助像我这样的人找到解决办法

    因此,在使用Eclipse(Mars.1发行版(4.5.1)以及可能更早的版本)时,我没有检查

    转到
    窗口
    -
    首选项

    然后在打开的对话框中转到
    Web
    -
    HTML文件
    -
    编辑器
    -
    验证
    在右侧:

  • 下忽略验证中指定的元素名称
    并输入您使用的自定义元素列表。(例如
    库、选项卡、选项卡集、我的元素指令-*
  • 您可能还希望在验证中使用
    忽略指定的属性名称
    对自定义属性执行相同的操作。(例如
    ng-*,my attr directives-*
  • 有两点需要注意:

  • 在让eclipse执行完整验证之后,还必须关闭文件并重新打开,以便从源代码中删除警告
  • 使用此方法将忽略任何元素下的那些属性。我不认为只有当它是某个元素的子元素时,才有简单的方法告诉它忽略某个属性

  • 您需要添加新的HTML模板。要添加新模板,请完成以下步骤:

    1) 从“窗口”菜单中,选择“首选项”

    2) 在首选项页面中,选择Web和XML>HTML文件>HTML模板

    3) 单击新建

    4) 输入新模板名称和模板的简要说明

    5) 使用上下文下拉列表,指定模板可用的上下文

    6) 在模式字段中,输入要由内容辅助插入的相应标记、属性或属性值(模板的内容)

    7) 如果要插入变量,请单击变量按钮并选择要插入的变量。例如,word_选择变量表示在插入模板开始时选择的单词,游标变量确定将模板插入HTML文档后光标的位置

    8) 单击“确定”保存新模板

    您可以使用相同的首选项页面编辑、删除、导入或导出模板


    参考资料:

    Aptana插件终于为eclipse找到了一个更好的html编辑器。非常好用。