Eclipse plugin开发 —实现语法高亮
2013-03-01 08:57
316 查看
1. 在public class XMLConfiguration中添加扫描函数:
protected ValueScanner getValueScanner() {
if (valuescanner == null) {
valuescanner = new ValueScanner(colorManager);
valuescanner.setDefaultReturnToken(
new Token(
new TextAttribute(
colorManager.getColor(IXMLColorConstants.DEFAULT))));
}
return valuescanner;
}
2. 在getPresentationReconciler函数中添加:
dr = new DefaultDamagerRepairer(getValueScanner());
reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);
reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);
3. 最后添加两个类:ValueScanner和WordDetector:
public class ValueScanner extends RuleBasedScanner{
String[]keywords = {"continent","country","hi","int"};
String[] funwords = {"short","long","double","long long",
"char","float","boolean","octet","string",
"unsigned short","unsigned long","unsigned long long"};
public ValueScanner(ColorManager manager)
{
IToken keywordToken =
new Token(
new TextAttribute(manager.getColor(IXMLColorConstants.STRING)));//IXMLColorConstants.STRING指定颜色
IToken funwordToken =
new Token(
new TextAttribute(manager.getColor(IXMLColorConstants.TAG)));
WordRule keywordRule = new WordRule(new WordDetector());
for(int i=0;i<keywords.length;i++)
{
keywordRule.addWord(keywords[i], keywordToken);
}
for(int i=0;i<funwords.length;i++)
{
keywordRule.addWord(funwords[i], funwordToken);
}
setRules(new IRule[]{keywordRule});
}
}
//******************************************************************
public class WordDetector implements IWordDetector{
public boolean isWordStart(char c){
return Character.isLetter(c);
}
public boolean isWordPart(char c){
return Character.isLetterOrDigit(c);
}
}
4. 打完手工。
protected ValueScanner getValueScanner() {
if (valuescanner == null) {
valuescanner = new ValueScanner(colorManager);
valuescanner.setDefaultReturnToken(
new Token(
new TextAttribute(
colorManager.getColor(IXMLColorConstants.DEFAULT))));
}
return valuescanner;
}
2. 在getPresentationReconciler函数中添加:
dr = new DefaultDamagerRepairer(getValueScanner());
reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);
reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);
3. 最后添加两个类:ValueScanner和WordDetector:
public class ValueScanner extends RuleBasedScanner{
String[]keywords = {"continent","country","hi","int"};
String[] funwords = {"short","long","double","long long",
"char","float","boolean","octet","string",
"unsigned short","unsigned long","unsigned long long"};
public ValueScanner(ColorManager manager)
{
IToken keywordToken =
new Token(
new TextAttribute(manager.getColor(IXMLColorConstants.STRING)));//IXMLColorConstants.STRING指定颜色
IToken funwordToken =
new Token(
new TextAttribute(manager.getColor(IXMLColorConstants.TAG)));
WordRule keywordRule = new WordRule(new WordDetector());
for(int i=0;i<keywords.length;i++)
{
keywordRule.addWord(keywords[i], keywordToken);
}
for(int i=0;i<funwords.length;i++)
{
keywordRule.addWord(funwords[i], funwordToken);
}
setRules(new IRule[]{keywordRule});
}
}
//******************************************************************
public class WordDetector implements IWordDetector{
public boolean isWordStart(char c){
return Character.isLetter(c);
}
public boolean isWordPart(char c){
return Character.isLetterOrDigit(c);
}
}
4. 打完手工。
相关文章推荐
- Eclipse plugin开发 —实现语法高亮
- Eclipse plugin开发 —实现单行与多行注释
- Eclipse plugin开发 —实现文本内容帮助
- Eclipse plugin开发 —实现文本内容帮助
- eclipse + JBoss 5 + EJB3开发指南(7):实现Entity Bean的一对一(one-to-one)映射
- Eclipse插件开发:实现控制台输出信息
- Eclipse中集成Ant实现快速开发
- Eclipse + ADT(包括NDK Plugin) + CDT 搭建Android NDK开发环境
- 【大话QT之四】ctkPlugin插件系统实现项目插件式开发
- Eclipse plugin插件开发 NoClassDefFoundError
- ctkPlugin插件系统实现项目插件式开发
- 怎样实现在Eclipse中开发NDK?
- equinox的plugin fragment开发(实现runtime加载tools.jar)
- dorado与eclipse整合开发共享文件夹的实现
- 在用Eclipse IDE for Java EE Developers进行maven项目的开发时,报错Could not calculate build plan: Plugin org.apach
- 关于Eclipse Plugin开发 (2)
- 使用ant实现svn管理得eclipse插件开发项目的日构建功能(ant1.7.1+svn1.6.3+eclipse3.4.2)
- Ubuntu 12.04 下使用Eclipse实现C/C++开发
- eclipse + JBoss 5 + EJB3开发指南(9):实现Entity Bean的多对多映射
- Eclipse插件开发 实现 复制 粘贴 剪切功能