Document划分(ContentAssist)

本文解析了 Eclipse WTP HTML 和 JSP 编辑器的内容划分方式,详细介绍了不同类型的文档区域及其作用,如 XML 声明、文档类型声明、样式表标签等,并通过具体示例展示了每种区域的定位。

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

Eclipse WTP HTML Editor JSP 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值