package org.simantics.scl.ui.editor;\r
\r
import org.eclipse.jface.preference.IPreferenceStore;\r
-import org.eclipse.jface.resource.FontDescriptor;\r
import org.eclipse.jface.resource.ResourceManager;\r
import org.eclipse.jface.text.DefaultInformationControl;\r
+import org.eclipse.jface.text.DefaultTextHover;\r
import org.eclipse.jface.text.IDocument;\r
import org.eclipse.jface.text.IInformationControl;\r
import org.eclipse.jface.text.IInformationControlCreator;\r
import org.eclipse.jface.text.ITextHover;\r
-import org.eclipse.jface.text.TextAttribute;\r
import org.eclipse.jface.text.contentassist.ContentAssistant;\r
import org.eclipse.jface.text.contentassist.IContentAssistant;\r
import org.eclipse.jface.text.presentation.IPresentationReconciler;\r
-import org.eclipse.jface.text.presentation.PresentationReconciler;\r
-import org.eclipse.jface.text.rules.DefaultDamagerRepairer;\r
-import org.eclipse.jface.text.rules.EndOfLineRule;\r
-import org.eclipse.jface.text.rules.IRule;\r
-import org.eclipse.jface.text.rules.ITokenScanner;\r
-import org.eclipse.jface.text.rules.IWordDetector;\r
-import org.eclipse.jface.text.rules.MultiLineRule;\r
-import org.eclipse.jface.text.rules.PatternRule;\r
-import org.eclipse.jface.text.rules.RuleBasedScanner;\r
-import org.eclipse.jface.text.rules.Token;\r
-import org.eclipse.jface.text.rules.WordRule;\r
import org.eclipse.jface.text.source.DefaultAnnotationHover;\r
import org.eclipse.jface.text.source.IAnnotationHover;\r
import org.eclipse.jface.text.source.ISourceViewer;\r
import org.eclipse.jface.text.source.SourceViewerConfiguration;\r
-import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.graphics.Font;\r
-import org.eclipse.swt.graphics.RGB;\r
import org.eclipse.swt.widgets.Shell;\r
import org.eclipse.ui.editors.text.EditorsUI;\r
import org.eclipse.ui.texteditor.AbstractDecoratedTextEditorPreferenceConstants;\r
import org.simantics.scl.ui.Activator;\r
import org.simantics.scl.ui.editor.completion.SCLCompletionAssistProcessor;\r
-import org.simantics.scl.ui.editor.completion.SCLEditorTextHover;\r
import org.simantics.scl.ui.editor.completion.SCLTextEditorEnvironment;\r
-import org.simantics.scl.ui.info.SCLInfo;\r
+import org.simantics.scl.ui.editor2.SCLPresentationReconciler;\r
\r
public class SCLSourceViewerConfigurationNew extends SourceViewerConfiguration {\r
\r
}\r
\r
public IPresentationReconciler getPresentationReconciler(ISourceViewer sourceViewer) {\r
- PresentationReconciler reconciler = new PresentationReconciler();\r
- \r
- DefaultDamagerRepairer dr = new DefaultDamagerRepairer(getSclTokenScanner());\r
- \r
- reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);\r
- reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);\r
- \r
- return reconciler;\r
- }\r
- \r
- private static final FontDescriptor FONT_NORMAL = FontDescriptor.createFrom("Consolas", 10, SWT.NORMAL);\r
- private static final FontDescriptor FONT_BOLD = FontDescriptor.createFrom("Consolas", 10, SWT.BOLD);\r
- \r
- ITokenScanner getSclTokenScanner() {\r
- RuleBasedScanner scanner = new RuleBasedScanner();\r
- \r
- Font font = resourceManager.createFont(FONT_NORMAL);\r
- Font boldFont = resourceManager.createFont(FONT_BOLD);\r
- \r
- Token defaultToken = new Token(\r
- new TextAttribute(\r
- resourceManager.createColor(new RGB(0, 0, 0)),\r
- null,\r
- 0,\r
- font\r
- ));\r
- Token string = new Token(new TextAttribute(\r
- resourceManager.createColor(new RGB(42, 0, 255)),\r
- null,\r
- 0,\r
- font\r
- ));\r
- Token reserved = new Token(\r
- new TextAttribute(\r
- resourceManager.createColor(new RGB(127, 0, 85)),\r
- null,\r
- SWT.BOLD,\r
- boldFont\r
- ));\r
- Token comment = new Token(new TextAttribute(\r
- resourceManager.createColor(new RGB(63, 127, 95)),\r
- null,\r
- 0,\r
- font\r
- ));\r
-\r
- WordRule reservedWord = new WordRule(new IWordDetector() { \r
- @Override\r
- public boolean isWordStart(char c) {\r
- return Character.isJavaIdentifierStart(c);\r
- }\r
- \r
- @Override\r
- public boolean isWordPart(char c) {\r
- return Character.isJavaIdentifierPart(c) || c=='.';\r
- }\r
- });\r
-\r
- for(String word : SCLInfo.RESERVED_WORDS)\r
- reservedWord.addWord(word, reserved);\r
- \r
- IRule[] rules = new IRule[] {\r
- //new MultiLineRule("\"\"\"", "\"\"\"", string),\r
- new PatternRule("\"", "\"", string, '\\', true),\r
- new MultiLineRule("/*", "*/", comment),\r
- new EndOfLineRule("//", comment),\r
- reservedWord\r
- };\r
- scanner.setRules(rules);\r
- scanner.setDefaultReturnToken(defaultToken);\r
- \r
- return scanner;\r
+ return new SCLPresentationReconciler(resourceManager);\r
}\r
\r
@Override\r
public ITextHover getTextHover(ISourceViewer sourceViewer, String contentType) {\r
- return new SCLEditorTextHover(sourceViewer, sclTextEditorEnvironment);\r
+ //return new SCLEditorTextHover(sourceViewer, sclTextEditorEnvironment);\r
+ return new DefaultTextHover(sourceViewer);\r
}\r
\r
@Override\r