我正在为eclipse制作自己的PowerShell编辑器插件。目前编辑器有一个很好的代码突出显示。但为了能够制作出好的大纲视图和格式,我需要一个很好的文档分区。所以我创建的分区扫描仪(扩展RuleBasedPartitionScanner)目前只有两个规则:Eclipse插件扫描器和分区扫描器
IToken psComment = new Token(PS_COMMENT);
IToken psFunction = new Token(PS_FUNCTION);
IPredicateRule[] rules = new IPredicateRule[2];
rules[0] = new EndOfLineRule("#", psComment);
rules[1] = new SingleLineRule("function", "{", psFunction);
setPredicateRules(rules);
我已经使用的FastPartitioner与所需要的所有内容类型我的文档创建它(IDocument.DEFAULT_CONTENT_TYPE,PowershellPartitionScanner.PS_FUNCTION,PowershellPartitionScanner.PS_COMMENT)
为了突出显示我创建了一个扫描器(扩展了RuleBasedScanner)。
在配置类我已经覆盖了getPresentrationReconciler:
DefaultDamagerRepairer dr = new DefaultDamagerRepairer(
new PowershellScanner());
reconciler.setDamager(dr, PowershellPartitionScanner.PS_FUNCTION);
reconciler.setRepairer(dr, PowershellPartitionScanner.PS_FUNCTION);
dr = new DefaultDamagerRepairer(new PowershellScanner());
reconciler.setDamager(dr, PowershellPartitionScanner.PS_COMMENT);
reconciler.setRepairer(dr, PowershellPartitionScanner.PS_COMMENT);
dr = new DefaultDamagerRepairer(new PowershellScanner());
reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);
reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);
return reconciler;
我已经覆盖:
@Override
public String[] getConfiguredContentTypes(ISourceViewer sourceViewer) {
return new String[] { IDocument.DEFAULT_CONTENT_TYPE,
PowershellPartitionScanner.PS_COMMENT,
PowershellPartitionScanner.PS_FUNCTION };
}
我现在有我的文件很好地划分。但没有代码突出显示。一切都是黑色的。
如果我没有对文档进行分区,则高亮显示会起作用。
我错过了什么吗?
感谢
你能告诉什么是调试分区器,它的作用是什么? [你为什么需要分区和分区调解](http://blog.darevay.com/2007/11/the-eclipse-reconciler/comment-page-1/#comment-33203)? – Val