html的标签提示

本文详细解析了Eclipse WST中自动补全功能的实现原理,特别是HTMLContentAssistProcessor的作用及其如何根据不同分区类型提供相应的内容辅助处理器。此外还介绍了如何通过扩展点形式自定义自动补全信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当我们在eclipse用编辑器编写源代码时,点击ctrl+space快捷键时,总会有一些提示信息,以便我们快速编辑。比如我们 用wst 的html编辑器时,效果如下:提示信息

首先研究这个功能怎么实现的,跟踪代码wst的有关类,及之间的关系。只有搞清这个关系,才能扩展加上自己的东西。

类图

其中黄色的部分为wst的类,提示消息主要由这个类HTMLContentAssistProcessor实现,HTMLContentAssistProcessor实现了IContentAssistProcessor和IPropertyChangeListener接口。看这两个接口的名字就知道,一个是处理提示信息的,一个是处理监听事件的。而把这些类于editor关联起来,主要是由StructuredTextViewerConfiguration的getContentAssistProcessors方法实现。下面看看这个方法:

这个方法主要是根据不同的类型返回不同的提示类,所以我们要扩展这个功能,必须要重写这个方法,返回自己的提示类。

如上面的类图中,建立了ProducerHTMLStructuredTextViewerConfiguration类,重写了getContentAssistProcessors方法,返回CustomizedHTMLContentAssistantProcessor,CustomizedHTMLContentAssistantProcessor中要重写computeCompletionProposals方法,因此可以订制自动提示的功能了。

 

考虑到每个标签的提示信息都不一样,并且标签还会自定义的,所以我们要做成扩展点的形式。做成扩展点,首先要定义好接口,让别人去实现这个接口。也就是说一个标签(自定义的)对应一个类(这个类实现我们的接口),这种关系最好做一个manager类,从plugin.xml的扩展点读取信息,从而进行对应。然后从computeCompletionProposals中调用这些类,从而实现动态的扩展。

做成效果如下:结果

   其中标签的名字test:form,是要在实现自定义的扩展点里配置,三个提示消息时要实现这个扩展点的接口的类里处理的。

 

 

上面主要讲了wst提示消息的实现方式,以及扩展自己的思路,略懂插件开发的人调查调查wst基本上都可以做出来。最近受项目委托做一些调研,贴出代码可能会露出公司的名称,又懒得去改包名,还是不公布源代码了。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值