org.chromium.debug.ui/src/org/chromium/debug/ui/editors/JsSourceViewerConfiguration.java
author TasneemS@US-TASNEEMS
Wed, 23 Dec 2009 17:13:18 -0800
changeset 2 e4420d2515f1
permissions -rw-r--r--
Initial version of WRT Debugger.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
     1
// Copyright (c) 2009 The Chromium Authors. All rights reserved.
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
     2
// Use of this source code is governed by a BSD-style license that can be
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
     3
// found in the LICENSE file.
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
     4
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
     5
package org.chromium.debug.ui.editors;
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
     6
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
     7
import org.eclipse.jface.text.IDocument;
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
     8
import org.eclipse.jface.text.ITextHover;
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
     9
import org.eclipse.jface.text.TextAttribute;
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    10
import org.eclipse.jface.text.presentation.IPresentationReconciler;
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    11
import org.eclipse.jface.text.presentation.PresentationReconciler;
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    12
import org.eclipse.jface.text.rules.BufferedRuleBasedScanner;
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    13
import org.eclipse.jface.text.rules.DefaultDamagerRepairer;
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    14
import org.eclipse.jface.text.rules.Token;
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    15
import org.eclipse.jface.text.source.ISourceViewer;
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    16
import org.eclipse.ui.editors.text.TextSourceViewerConfiguration;
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    17
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    18
/**
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    19
 * A JavaScript source viewer configuration.
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    20
 */
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    21
public class JsSourceViewerConfiguration extends TextSourceViewerConfiguration {
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    22
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    23
  private static class MultilineCommentScanner extends BufferedRuleBasedScanner {
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    24
    public MultilineCommentScanner(TextAttribute attr) {
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    25
      setDefaultReturnToken(new Token(attr));
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    26
    }
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    27
  }
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    28
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    29
  private static final String[] CONTENT_TYPES = new String[] {
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    30
      IDocument.DEFAULT_CONTENT_TYPE,
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    31
      JsPartitionScanner.JSDOC,
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    32
      JsPartitionScanner.MULTILINE_COMMENT
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    33
  };
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    34
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    35
  private final JsCodeScanner scanner = new JsCodeScanner();
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    36
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    37
  @Override
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    38
  public ITextHover getTextHover(ISourceViewer sourceViewer, String contentType) {
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    39
    return new JsDebugTextHover();
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    40
  }
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    41
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    42
  @Override
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    43
  public IPresentationReconciler getPresentationReconciler(ISourceViewer sourceViewer) {
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    44
    PresentationReconciler pr = new PresentationReconciler();
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    45
    pr.setDocumentPartitioning(getConfiguredDocumentPartitioning(sourceViewer));
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    46
    setDamagerRepairer(pr, new DefaultDamagerRepairer(scanner), IDocument.DEFAULT_CONTENT_TYPE);
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    47
    setDamagerRepairer(
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    48
        pr, new DefaultDamagerRepairer(new MultilineCommentScanner(scanner.getCommentAttribute())),
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    49
        JsPartitionScanner.MULTILINE_COMMENT);
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    50
    setDamagerRepairer(
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    51
        pr, new DefaultDamagerRepairer(new MultilineCommentScanner(scanner.getJsDocAttribute())),
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    52
        JsPartitionScanner.JSDOC);
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    53
    return pr;
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    54
  }
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    55
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    56
  private void setDamagerRepairer(
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    57
      PresentationReconciler pr,
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    58
      DefaultDamagerRepairer damagerRepairer,
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    59
      String tokenType) {
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    60
    pr.setDamager(damagerRepairer, tokenType);
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    61
    pr.setRepairer(damagerRepairer, tokenType);
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    62
  }
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    63
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    64
  @Override
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    65
  public String[] getConfiguredContentTypes(ISourceViewer sourceViewer) {
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    66
    return CONTENT_TYPES;
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    67
  }
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    68
e4420d2515f1 Initial version of WRT Debugger.
TasneemS@US-TASNEEMS
parents:
diff changeset
    69
}