Document划分(ContentAssist)

来源:互联网 发布:ccf工资计算java 编辑:程序博客网 时间:2024/06/05 08:59

Eclipse WTPHTML EditorJSP Editor,会根据鼠标所处的上下文环境,显示不同的内容助理(ContentAssist)。若需要开发一个具有类似功能的编辑器,有必要对Document的划分有个了解。

 

以下是开发中记录和整理的一些内容,供参考用。


JSP Document

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html>

<head>

<%@ page contentType="text/html; charset=UTF-8" %>

<script type="text/javascript">

</script>

<style  type="text/css">.r

.r

.r</style>

</head>

<body>

<!--Comment -->

</body>

</html>

 

1

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

  

名称 类型 : regionStartIndex- regionEndIndex/ regionEndIndex(包含空格)

ContextRegion XML_DECLARATION_OPEN : 0-2                     ⇒ [<!]

ContextRegion XML_DOCTYPE_DECLARATION : 2-9/10              ⇒ [DOCTYPE ]

ContextRegion XML_DOCTYPE_NAME : 10-14/15                    ⇒ [html ]

ContextRegion XML_DOCTYPE_EXTERNAL_ID_PUBLIC : 15-21/22   ⇒ [PUBLIC ]

ContextRegion XML_DOCTYPE_EXTERNAL_ID_PUBREF : 22-56/57 ⇒ [“//W3C...” ]

ContextRegion XML_DOCTYPE_EXTERNAL_ID_SYSREF : 57-108     ⇒ [“http...”]

ContextRegion XML_DECLARATION_CLOSE : 108-109                    ⇒ [>]

 

2

<%@ page contentType="text/html; charset=UTF-8" %>

 

  

名称 类型

ContextRegion JSP_DIRECTIVE_OPEN                          ⇒ [<%@ ]

ContextRegion JSP_DIRECTIVE_NAME                          ⇒ [page ]

AttributeNameRegion XML_TAG_ATTRIBUTE_NAME       ⇒ [contentType]

AttributeEqualsRegion XML_TAG_ATTRIBUTE_EQUALS  ⇒ [=]

AttributeValueRegion XML_TAG_ATTRIBUTE_VALUE      ⇒ [“…” ]

ContextRegion JSP_DIRECTIVE_CLOSE                        ⇒ [%>]

 

3

<style  type="text/css">

  

 

 

 

名称 类型 : regionStartIndex- regionEndIndex/ regionEndIndex(包含空格)

TagOpenRegion XML_TAG_OPEN : 0-1                                        ⇒ [<]

TagNameRegion XML_TAG_NAME : 1-6/8  (注:包含两个空格)    ⇒ [style  ]

AttributeNameRegion XML_TAG_ATTRIBUTE_NAME : 8-12           ⇒ [type]

AttributeEqualsRegion XML_TAG_ATTRIBUTE_EQUALS : 12-13    ⇒ [=]

AttributeValueRegion XML_TAG_ATTRIBUTE_VALUE : 13-23        ⇒ [“text/css”]

TagCloseRegion XML_TAG_CLOSE : 23-24                                  ⇒ [>]

 

4

<style  type="text/css">.r

.r

.r</style>

 

  

 

名称 类型

ForeignRegion BLOCK_TEXT   ⇒ [3”.r”]

 

5

</style>

 

  

 

 

 

名称 类型

EndTagOpenRegion XML_END_TAG_OPEN    [</]

TagNameRegion XML_TAG_NAME                ⇒ [style]

TagCloseRegion XML_TAG_CLOSE               ⇒ [>]

 

6

</style>|__此区域__|

<head>

  

 

 

 

 

名称 类型

XMLContentRegion XML_CONTENT  [文字显示的区域]

 

7

<!--Comment -->

 

  

 

 

 

名称 类型

ContextRegion XML_COMMENT_OPEN    ⇒ [<!--]

ContextRegion XML_COMMENT_TEXT     ⇒ [Comment ]

ContextRegion XML_COMMENT_CLOSE    ⇒ [-->]

参考:

org.eclipse.wst.html.ui.internal.contentassist.HTMLContentAssistProcessor#computeCompletionProposals(…)

org.eclipse.wst.xml.core.internal.regions.DOMRegionContext.java