Search in sources :

Example 6 with RuleBasedScanner

use of org.eclipse.jface.text.rules.RuleBasedScanner in project netxms by netxms.

the class NXSLSourceViewerConfiguration method getPresentationReconciler.

/* (non-Javadoc)
	 * @see org.eclipse.jface.text.source.SourceViewerConfiguration#getPresentationReconciler(org.eclipse.jface.text.source.ISourceViewer)
	 */
@Override
public IPresentationReconciler getPresentationReconciler(ISourceViewer sourceViewer) {
    PresentationReconciler reconciler = new PresentationReconciler();
    RuleBasedScanner scanner = new RuleBasedScanner();
    scanner.setRules(codeRules);
    scanner.setDefaultReturnToken(NXSLTextAttributeProvider.getTextAttributeToken(NXSLTextAttributeProvider.DEFAULT));
    DefaultDamagerRepairer dr = new DefaultDamagerRepairer(scanner);
    reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);
    reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);
    dr = new DefaultDamagerRepairer(new SingleTokenScanner(NXSLTextAttributeProvider.getTextAttribute(NXSLTextAttributeProvider.COMMENT)));
    reconciler.setDamager(dr, NXSLDocument.CONTENT_COMMENTS);
    reconciler.setRepairer(dr, NXSLDocument.CONTENT_COMMENTS);
    scanner = new RuleBasedScanner();
    scanner.setRules(new IRule[] { new PatternRule("\"", "\n", NXSLTextAttributeProvider.getTextAttributeToken(NXSLTextAttributeProvider.ERROR), (char) 0, false) });
    scanner.setDefaultReturnToken(NXSLTextAttributeProvider.getTextAttributeToken(NXSLTextAttributeProvider.STRING));
    dr = new DefaultDamagerRepairer(scanner);
    reconciler.setDamager(dr, NXSLDocument.CONTENT_STRING);
    reconciler.setRepairer(dr, NXSLDocument.CONTENT_STRING);
    return reconciler;
}
Also used : PatternRule(org.eclipse.jface.text.rules.PatternRule) DefaultDamagerRepairer(org.eclipse.jface.text.rules.DefaultDamagerRepairer) IPresentationReconciler(org.eclipse.jface.text.presentation.IPresentationReconciler) PresentationReconciler(org.eclipse.jface.text.presentation.PresentationReconciler) RuleBasedScanner(org.eclipse.jface.text.rules.RuleBasedScanner)

Example 7 with RuleBasedScanner

use of org.eclipse.jface.text.rules.RuleBasedScanner in project webtools.sourceediting by eclipse.

the class WordRuleTest method testBug175712_1.

// https://bugs.eclipse.org/bugs/show_bug.cgi?id=175712
public void testBug175712_1() throws Exception {
    IRule[] rules = new IRule[2];
    IToken stepToken = new Token(new TextAttribute(null, null, SWT.BOLD));
    PatternRule stepRule = new PatternRule("(((", ")", stepToken, (char) 0, false);
    stepRule.setColumnConstraint(-1);
    rules[1] = stepRule;
    IToken titleToken = new Token(new TextAttribute(null, null, SWT.BOLD));
    WordRule wordRule = new WordRule(new SimpleWordDetector());
    wordRule.addWord("((", titleToken);
    rules[0] = wordRule;
    IDocument document = new Document("((( \n((\n- Cheese\n- Wine");
    RuleBasedScanner scanner = new RuleBasedScanner();
    scanner.setRules(rules);
    scanner.setRange(document, 0, document.getLength());
    IToken defaultToken = new Token(this);
    scanner.setDefaultReturnToken(defaultToken);
    IToken token = scanner.nextToken();
    assertSame(defaultToken, token);
    token = scanner.nextToken();
    assertSame(defaultToken, token);
    token = scanner.nextToken();
    assertSame(defaultToken, token);
    token = scanner.nextToken();
    assertSame(titleToken, token);
}
Also used : IToken(org.eclipse.jface.text.rules.IToken) PatternRule(org.eclipse.jface.text.rules.PatternRule) TextAttribute(org.eclipse.jface.text.TextAttribute) IToken(org.eclipse.jface.text.rules.IToken) Token(org.eclipse.jface.text.rules.Token) WordRule(org.eclipse.jface.text.rules.WordRule) Document(org.eclipse.jface.text.Document) IDocument(org.eclipse.jface.text.IDocument) RuleBasedScanner(org.eclipse.jface.text.rules.RuleBasedScanner) IRule(org.eclipse.jface.text.rules.IRule) IDocument(org.eclipse.jface.text.IDocument)

Example 8 with RuleBasedScanner

use of org.eclipse.jface.text.rules.RuleBasedScanner in project webtools.sourceediting by eclipse.

the class WordRuleTest method testBug175712_2.

// https://bugs.eclipse.org/bugs/show_bug.cgi?id=175712
public void testBug175712_2() throws Exception {
    IRule[] rules = new IRule[2];
    IToken stepToken = new Token(new TextAttribute(null, null, SWT.BOLD));
    PatternRule stepRule = new PatternRule("(((", ")", stepToken, (char) 0, false);
    stepRule.setColumnConstraint(-1);
    rules[1] = stepRule;
    IToken titleToken = new Token(new TextAttribute(null, null, SWT.BOLD));
    WordRule wordRule = new WordRule(new SimpleWordDetector());
    wordRule.addWord("((", titleToken);
    rules[0] = wordRule;
    IDocument document = new Document("((\n((\n- Cheese\n- Wine");
    RuleBasedScanner scanner = new RuleBasedScanner();
    scanner.setRules(rules);
    scanner.setRange(document, 0, document.getLength());
    IToken defaultToken = new Token(this);
    scanner.setDefaultReturnToken(defaultToken);
    IToken token = scanner.nextToken();
    assertSame(titleToken, token);
}
Also used : IToken(org.eclipse.jface.text.rules.IToken) PatternRule(org.eclipse.jface.text.rules.PatternRule) TextAttribute(org.eclipse.jface.text.TextAttribute) IToken(org.eclipse.jface.text.rules.IToken) Token(org.eclipse.jface.text.rules.Token) WordRule(org.eclipse.jface.text.rules.WordRule) Document(org.eclipse.jface.text.Document) IDocument(org.eclipse.jface.text.IDocument) RuleBasedScanner(org.eclipse.jface.text.rules.RuleBasedScanner) IRule(org.eclipse.jface.text.rules.IRule) IDocument(org.eclipse.jface.text.IDocument)

Example 9 with RuleBasedScanner

use of org.eclipse.jface.text.rules.RuleBasedScanner in project webtools.sourceediting by eclipse.

the class WordRuleTest method testBug163116.

/*
	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=163116
	 */
public void testBug163116() throws Exception {
    IWordDetector detector = new IWordDetector() {

        public boolean isWordPart(char c) {
            return true;
        }

        public boolean isWordStart(char c) {
            return true;
        }
    };
    WordRule rule = new WordRule(detector, new Token(this));
    RuleBasedScanner scanner = new RuleBasedScanner();
    scanner.setRules(new IRule[] { rule });
    scanner.setRange(new Document(), 0, 0);
    IToken token = null;
    int i = 0;
    while (token != Token.EOF && i++ < 1000) token = scanner.nextToken();
    assertTrue(i < 1000);
}
Also used : IWordDetector(org.eclipse.jface.text.rules.IWordDetector) IToken(org.eclipse.jface.text.rules.IToken) IToken(org.eclipse.jface.text.rules.IToken) Token(org.eclipse.jface.text.rules.Token) WordRule(org.eclipse.jface.text.rules.WordRule) Document(org.eclipse.jface.text.Document) IDocument(org.eclipse.jface.text.IDocument) RuleBasedScanner(org.eclipse.jface.text.rules.RuleBasedScanner)

Example 10 with RuleBasedScanner

use of org.eclipse.jface.text.rules.RuleBasedScanner in project netxms by netxms.

the class AgentConfigSourceViewerConfiguration method getPresentationReconciler.

/* (non-Javadoc)
	 * @see org.eclipse.jface.text.source.SourceViewerConfiguration#getPresentationReconciler(org.eclipse.jface.text.source.ISourceViewer)
	 */
@Override
public IPresentationReconciler getPresentationReconciler(ISourceViewer sourceViewer) {
    PresentationReconciler reconciler = new PresentationReconciler();
    RuleBasedScanner scanner = new RuleBasedScanner();
    scanner.setRules(codeRules);
    scanner.setDefaultReturnToken(AgentConfigTextAttributeProvider.getTextAttributeToken(AgentConfigTextAttributeProvider.DEFAULT));
    DefaultDamagerRepairer dr = new DefaultDamagerRepairer(scanner);
    reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);
    reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);
    dr = new DefaultDamagerRepairer(new SingleTokenScanner(AgentConfigTextAttributeProvider.getTextAttribute(AgentConfigTextAttributeProvider.COMMENT)));
    reconciler.setDamager(dr, AgentConfigDocument.CONTENT_COMMENTS);
    reconciler.setRepairer(dr, AgentConfigDocument.CONTENT_COMMENTS);
    dr = new DefaultDamagerRepairer(new SingleTokenScanner(AgentConfigTextAttributeProvider.getTextAttribute(AgentConfigTextAttributeProvider.SECTION)));
    reconciler.setDamager(dr, AgentConfigDocument.CONTENT_SECTION);
    reconciler.setRepairer(dr, AgentConfigDocument.CONTENT_SECTION);
    scanner = new RuleBasedScanner();
    // $NON-NLS-1$ //$NON-NLS-2$
    scanner.setRules(new IRule[] { new PatternRule("\"", "\n", AgentConfigTextAttributeProvider.getTextAttributeToken(AgentConfigTextAttributeProvider.ERROR), (char) 0, false) });
    scanner.setDefaultReturnToken(AgentConfigTextAttributeProvider.getTextAttributeToken(AgentConfigTextAttributeProvider.STRING));
    dr = new DefaultDamagerRepairer(scanner);
    reconciler.setDamager(dr, AgentConfigDocument.CONTENT_STRING);
    reconciler.setRepairer(dr, AgentConfigDocument.CONTENT_STRING);
    return reconciler;
}
Also used : PatternRule(org.eclipse.jface.text.rules.PatternRule) DefaultDamagerRepairer(org.eclipse.jface.text.rules.DefaultDamagerRepairer) PresentationReconciler(org.eclipse.jface.text.presentation.PresentationReconciler) IPresentationReconciler(org.eclipse.jface.text.presentation.IPresentationReconciler) RuleBasedScanner(org.eclipse.jface.text.rules.RuleBasedScanner)

Aggregations

RuleBasedScanner (org.eclipse.jface.text.rules.RuleBasedScanner)17 Token (org.eclipse.jface.text.rules.Token)13 TextAttribute (org.eclipse.jface.text.TextAttribute)9 Document (org.eclipse.jface.text.Document)8 IDocument (org.eclipse.jface.text.IDocument)8 IToken (org.eclipse.jface.text.rules.IToken)8 WordRule (org.eclipse.jface.text.rules.WordRule)8 PatternRule (org.eclipse.jface.text.rules.PatternRule)6 IRule (org.eclipse.jface.text.rules.IRule)4 IWordDetector (org.eclipse.jface.text.rules.IWordDetector)4 Color (org.eclipse.swt.graphics.Color)4 RGB (org.eclipse.swt.graphics.RGB)4 Test (org.junit.Test)4 IPresentationReconciler (org.eclipse.jface.text.presentation.IPresentationReconciler)3 PresentationReconciler (org.eclipse.jface.text.presentation.PresentationReconciler)3 DefaultDamagerRepairer (org.eclipse.jface.text.rules.DefaultDamagerRepairer)3