src/Tools/jEdit/src/jedit/DynamicTokenMarker.scala
author immler@in.tum.de
Sun, 11 Jan 2009 17:35:56 +0100
changeset 34467 c7d7a92fe3d5
child 34472 d4d404c4a404
permissions -rw-r--r--
created DynamicTokenMarker included it in ProverSetup and registered at prover
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
34467
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
     1
/*
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
     2
 * include isabelle's command- and keyword-declarations
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
     3
 * live in jEdits syntax-highlighting
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
     4
 * 
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
     5
 * one TokenMarker per prover
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
     6
 *
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
     7
 * @author Fabian Immler, TU Munich
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
     8
 */
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
     9
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
    10
package isabelle.jedit
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
    11
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
    12
import org.gjt.sp.jedit.syntax.{ModeProvider, Token, TokenMarker, ParserRuleSet, KeywordMap}
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
    13
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
    14
class DynamicTokenMarker extends TokenMarker {
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
    15
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
    16
  val ruleset = new ParserRuleSet("isabelle", "MAIN")
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
    17
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
    18
  // copy rules and keywords from basic isabelle mode
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
    19
  val original = ModeProvider.instance.getMode("isabelle").getTokenMarker.getMainRuleSet
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
    20
  ruleset.addRuleSet(original)
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
    21
  ruleset.setKeywords(new KeywordMap(false))
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
    22
  ruleset.setDefault(0)
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
    23
  ruleset.setDigitRegexp(null)
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
    24
  ruleset.setEscapeRule(original.getEscapeRule)
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
    25
  ruleset.setHighlightDigits(false)
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
    26
  ruleset.setIgnoreCase(false)
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
    27
  ruleset.setNoWordSep("_")
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
    28
  ruleset.setProperties(null)
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
    29
  ruleset.setTerminateChar(-1)
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
    30
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
    31
  addRuleSet(ruleset)
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
    32
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
    33
  def += (token:String, kind:String) = {
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
    34
    val kind_byte = kind match {
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
    35
      case Markup.COMMAND => Token.KEYWORD4
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
    36
      case Markup.KEYWORD => Token.KEYWORD3
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
    37
    }
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
    38
    getMainRuleSet.getKeywords.add(token, kind_byte)
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
    39
  }
c7d7a92fe3d5 created DynamicTokenMarker
immler@in.tum.de
parents:
diff changeset
    40
}