X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scl.ui%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fui%2Feditor%2FSCLSourceViewerConfigurationNew.java;h=4cf521e6543133c984fa0c8912cf82a0c5a36108;hp=981d16b18c66cbee35fce4b9be3c116e6aa6125c;hb=1b4d8b692f40d946deb5db8280eb4ca5b36a75a7;hpb=969bd23cab98a79ca9101af33334000879fb60c5 diff --git a/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/editor/SCLSourceViewerConfigurationNew.java b/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/editor/SCLSourceViewerConfigurationNew.java index 981d16b18..4cf521e65 100644 --- a/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/editor/SCLSourceViewerConfigurationNew.java +++ b/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/editor/SCLSourceViewerConfigurationNew.java @@ -1,43 +1,27 @@ package org.simantics.scl.ui.editor; import org.eclipse.jface.preference.IPreferenceStore; -import org.eclipse.jface.resource.FontDescriptor; import org.eclipse.jface.resource.ResourceManager; import org.eclipse.jface.text.DefaultInformationControl; +import org.eclipse.jface.text.DefaultTextHover; import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.IInformationControl; import org.eclipse.jface.text.IInformationControlCreator; import org.eclipse.jface.text.ITextHover; -import org.eclipse.jface.text.TextAttribute; import org.eclipse.jface.text.contentassist.ContentAssistant; import org.eclipse.jface.text.contentassist.IContentAssistant; import org.eclipse.jface.text.presentation.IPresentationReconciler; -import org.eclipse.jface.text.presentation.PresentationReconciler; -import org.eclipse.jface.text.rules.DefaultDamagerRepairer; -import org.eclipse.jface.text.rules.EndOfLineRule; -import org.eclipse.jface.text.rules.IRule; -import org.eclipse.jface.text.rules.ITokenScanner; -import org.eclipse.jface.text.rules.IWordDetector; -import org.eclipse.jface.text.rules.MultiLineRule; -import org.eclipse.jface.text.rules.PatternRule; -import org.eclipse.jface.text.rules.RuleBasedScanner; -import org.eclipse.jface.text.rules.Token; -import org.eclipse.jface.text.rules.WordRule; import org.eclipse.jface.text.source.DefaultAnnotationHover; import org.eclipse.jface.text.source.IAnnotationHover; import org.eclipse.jface.text.source.ISourceViewer; import org.eclipse.jface.text.source.SourceViewerConfiguration; -import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.Font; -import org.eclipse.swt.graphics.RGB; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.editors.text.EditorsUI; import org.eclipse.ui.texteditor.AbstractDecoratedTextEditorPreferenceConstants; import org.simantics.scl.ui.Activator; import org.simantics.scl.ui.editor.completion.SCLCompletionAssistProcessor; -import org.simantics.scl.ui.editor.completion.SCLEditorTextHover; import org.simantics.scl.ui.editor.completion.SCLTextEditorEnvironment; -import org.simantics.scl.ui.info.SCLInfo; +import org.simantics.scl.ui.editor2.SCLPresentationReconciler; public class SCLSourceViewerConfigurationNew extends SourceViewerConfiguration { @@ -86,83 +70,13 @@ public class SCLSourceViewerConfigurationNew extends SourceViewerConfiguration { } public IPresentationReconciler getPresentationReconciler(ISourceViewer sourceViewer) { - PresentationReconciler reconciler = new PresentationReconciler(); - - DefaultDamagerRepairer dr = new DefaultDamagerRepairer(getSclTokenScanner()); - - reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE); - reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE); - - return reconciler; - } - - private static final FontDescriptor FONT_NORMAL = FontDescriptor.createFrom("Consolas", 10, SWT.NORMAL); - private static final FontDescriptor FONT_BOLD = FontDescriptor.createFrom("Consolas", 10, SWT.BOLD); - - ITokenScanner getSclTokenScanner() { - RuleBasedScanner scanner = new RuleBasedScanner(); - - Font font = resourceManager.createFont(FONT_NORMAL); - Font boldFont = resourceManager.createFont(FONT_BOLD); - - Token defaultToken = new Token( - new TextAttribute( - resourceManager.createColor(new RGB(0, 0, 0)), - null, - 0, - font - )); - Token string = new Token(new TextAttribute( - resourceManager.createColor(new RGB(42, 0, 255)), - null, - 0, - font - )); - Token reserved = new Token( - new TextAttribute( - resourceManager.createColor(new RGB(127, 0, 85)), - null, - SWT.BOLD, - boldFont - )); - Token comment = new Token(new TextAttribute( - resourceManager.createColor(new RGB(63, 127, 95)), - null, - 0, - font - )); - - WordRule reservedWord = new WordRule(new IWordDetector() { - @Override - public boolean isWordStart(char c) { - return Character.isJavaIdentifierStart(c); - } - - @Override - public boolean isWordPart(char c) { - return Character.isJavaIdentifierPart(c) || c=='.'; - } - }); - - for(String word : SCLInfo.RESERVED_WORDS) - reservedWord.addWord(word, reserved); - - IRule[] rules = new IRule[] { - //new MultiLineRule("\"\"\"", "\"\"\"", string), - new PatternRule("\"", "\"", string, '\\', true), - new MultiLineRule("/*", "*/", comment), - new EndOfLineRule("//", comment), - reservedWord - }; - scanner.setRules(rules); - scanner.setDefaultReturnToken(defaultToken); - - return scanner; + return new SCLPresentationReconciler(resourceManager); } @Override public ITextHover getTextHover(ISourceViewer sourceViewer, String contentType) { - return new SCLEditorTextHover(sourceViewer, sclTextEditorEnvironment); + //return new SCLEditorTextHover(sourceViewer, sclTextEditorEnvironment); + return new DefaultTextHover(sourceViewer); } @Override