为 Java 配置 Eclipse SourceViewer

问题描述 投票:0回答:1

我正在尝试创建一个嵌入 Java 编辑器/查看器的查看器。但是,我无法让源查看器执行正确的 Java 扫描和着色。这是我到目前为止的代码。

ScopedPreferenceStore store = new ScopedPreferenceStore(InstanceScope.INSTANCE,
        ID);
JavaTextTools tools = new JavaTextTools(store);

Composite composite = new Composite(parent, SWT.NONE);
composite.setLayout(new GridLayout(1, false));

viewer = new SourceViewer(composite, null, null, false, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
viewer.getTextWidget().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
viewer.setEditable(true);
viewer.getControl().setFont(JFaceResources.getFont(PreferenceConstants.EDITOR_TEXT_FONT));
Document document = new Document();
tools.setupJavaDocumentPartitioner(document);
viewer.setDocument(document);
viewer.configure(new JavaSourceViewerConfiguration(tools.getColorManager(), store, null,
        IJavaPartitions.JAVA_PARTITIONING));

只是嵌入一个简单的 Java 编辑器似乎是多么困难......无论我做什么,查看器都可以工作,但仍然没有任何着色。

java eclipse swt jface
1个回答
0
投票

SourceViewer
不是一个 Java 编辑器,而是一个用于为自定义语言创建源编辑器的类,如 Eclipse 文档中所述

如果您只需要语法着色,那么使用

SourceViewer
并按照此处的描述自行实现语法着色可能会更容易。

另一个选项是使用 eclipse 中的实际 java 编辑器作为 greg-449 提到
但预计会有大量代码。

© www.soinside.com 2019 - 2024. All rights reserved.