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

时间:2011-05-14 08:31:59

标签: html eclipse tags

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

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

1.。)我如何让eclipse识别HTML代码中的自定义标签并为其添加语法高亮? 2.)如何向自定义标签添加自动建议?例如,如果我输入“&lt; Gallery”,请按“Ctrl + Space” - 在可用属性列表中,它会显示“type”和“title”,如果我输入“&lt; Gallery type =”,请按“Ctrl + Space”我会看到标签“Gallery”及其属性“type”的可用值列表。

提前致谢!

5 个答案:

答案 0 :(得分:5)

不是你想要的,但也许它可以帮助你:

  1. 您可以尝试Eclipse的Aptana Plug-in。它允许为HTML验证编写自己的正则表达式,因此验证器将忽略自定义标记。 E.g:

    gallery。

  2. Eclipse允许您通过模板添加简单的自动建议。上 Eclipse 3.7.1(Indigo)+ PHP Dev Tools(PDT)3.0.0: Window&gt;偏好&gt;网络&gt; HTML文件&gt;编辑&gt;模板

答案 1 :(得分:4)

可悲的是,没有简单的方法:你必须为此推出自己的解析器,然后将额外的元素和基本语法(HTML)添加到它。

如果你有解析器,你可以用它来做语法高亮(严格来说,对于那个简单的lexing就足够了);一个好的解析器可以支持内容辅助(术语中的自动建议)。

注意事项:

  • 为HTML创建解析器并非易事。也许通过针对更常用的子集是可行的。
  • 如果存在解析器,编辑器部分仍然很难搞定。

另一方面有一些帮助:您可以使用一些文本编辑器生成器来简化您的工作:

  • Eclipse IMP http://www.eclipse.org/imp/理论上可以处理任何类型的解析器,但目前它最适合LPG。文档很少,但开发人员在论坛中很有帮助。
  • Xtext http://www.eclipse.org/Xtext/因为为DSL创建文本编辑器而大肆炒作。生成的编辑器开箱即用,但不是大文件的最佳解决方案。有一个真正有用的开发人员社区。
  • EMFText http://www.emftext.org/index.php/EMFText是一个鲜为人知的实体 - 我不详细了解它,但我想,它与Xtext类似。

答案 2 :(得分:1)

我知道问这个Q已经很久了, 但是我希望这可以帮助像我一样的其他人找到解决方案。

所以,当使用Eclipse(Mars.1 Release(4.5.1) - 可能更早 - 我没有检查)。

转到Window - Prefrences
然后在打开的对话框中转到Web - HTML Files - Editor - Validation
在右边:

  1. Ignore specified element names in validation下,输入您使用的自定义元素列表。 (例如Gallery,tab,tabset,my-element-directives-*
  2. 您可能还希望根据Ignore specified attribute names in validation对自定义属性执行相同的操作。(例如ng-*,my-attr-directives-*
  3. 有两点需要注意:

    1. 让eclipse进行完整验证后,您还必须关闭该文件并重新打开该文件,以便从源代码中删除警告。
    2. 使用此方法会忽略任何元素下的属性。我不认为有一种简单的方法可以告诉它忽略some-attribute,只要它是some-element的孩子。

答案 3 :(得分:0)

我发现模板是一个不错的选择,但让我们看看我们是否可以鼓励更强大的解决方案;请花点时间投票:https://bugs.eclipse.org/bugs/show_bug.cgi?id=422584

答案 4 :(得分:0)

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

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

2)在“首选项”页面中,选择“Web和XML”> HTML文件&gt; HTML模板。

3)单击“新建”。

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

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

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

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

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

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

参考:ckruczeks answer