blog211215. Eclipse text之文档IDocument和投影文档projectionDocument
Eclipse text用将文本抽象为IDocument接口. 而TextViewer中引入了visibleDocument的实现, 需要投影文档的支持
文档IDocument
IDocument接口将文档抽象为以下功能,
- 一个连续文本text, 可以使用offset和length读写其中片段.
- 可以接入documentListener, 当文本变动时会通知docListener
- position管理. 允许分类(category)管理多个positions.
- 允许对文档进行分片(partition). 分片间不重叠.
- 对行的支持. 包括行号的查询, 行内容的访问等.
- 支持对不同行分隔符(line delimiter)的处理. 尤其是多字符分行符.
interface IDocument {
/* --------------- text access and manipulation --------------------------- */
char getChar(int offset) throws BadLocationException;
int getLength();
String get();
String get(int offset, int length) throws BadLocationException;
void set(String text);
void replace(int offset, int length, String text) throws BadLocationException;
void addDocumentListener(IDocumentListener listener);
void removeDocumentListener(IDocumentListener listener);
void addPrenotifiedDocumentListener