快捷搜索:  test  as

【Eclipse插件开发】基于WTP开发自定义的JSP编辑器

定制StructuredTextEditor自动提示

前面先容的内容集中在两点:StructuredTextEditor框架和WTP数据模型,在本节中就可以定制一个我 们最常用的WTP StructuredTextEditor的功能,那便是自动提示。

【WTP StructuredTextEditor提示功能实现阐发】

有关Eclipse文本编辑器框架、JFace Text Framework和WTP StructuredTextEditor的简要常识,拜见:

【Eclipse插件开拓】基于WTP开拓自定义 的JSP编辑器(二):基于WTP StructuredTextEditor创建自己的JSPEditor

【SourceViewer提示策略 设置设置设备摆设摆设】

在章节二中,我们说过假如要对一个ISourceViewer进行自动提示策略的定制,在 ISourceViewer对应的SourceViewerConfiguration中设置设置设备摆设摆设就可以了。对付WTP JSP StructuredTextEditor 而言,这里的ISourceViewer便是StructuredTextViewer,这里的SourceViewerConfiguration便是 StructuredTextViewerConfigurationJSP。那我们来看一下WTP StructuredTextViewerConfigurationJSP 中对自动提示策略的设置设置设备摆设摆设:

(以下代码摘取子StructuredTextViewerConfigurationJSP类中):

protected IContentAssistProcessor[] getContentAssistProcessors(ISourceViewer sourceViewer, String partitionType) {

IContentAssistProcessor[] processors = null;

//其他代码省略......

else if ((partitionType == IXMLPartitions.XML_DEFAULT) || (partitionType == IHTMLPartitions.HTML_DEFAULT) || (partitionType == IHTMLPartitions.HTML_COMMENT) || (partitionType == IJSPPartitions.JSP_DEFAULT) || (partitionType == IJSPPartitions.JSP_DIRECTIVE) || (partitionType == IJSPPartitions.JSP_CONTENT_DELIMITER) || (partitionType == IJSPPartitions.JSP_CONTENT_JAVASCRIPT) || (partitionType == IJSPPartitions.JSP_COMMENT)) {

// jsp

processors = new IContentAssistProcessor[]{new JSPContentAssistProcessor()};

}

else if ((partitionType == IXMLPartitions.XML_CDATA) || (partitionType == IJSPPartitions.JSP_CONTENT_JAVA)) {

// jsp java

processors = new IContentAssistProcessor[]{new JSPJavaContentAssistProcessor()};

}

//其他代码省略......

return processors;

}

以上代码,我们可以看的出来,IContentAssistProcessor是和详细分区类型(partition type)相关 联的。想搞懂这个问题,就必要看一下这个详细分区类型(partition type)是怎么谋略出来的。

PS:分区类型是JFace Text Framework中的观点,相关的常识大年夜家有兴趣可以进一步去懂得一下JFace Text Framework。

您可能还会对下面的文章感兴趣: