lib/jedit/plugin/isabelle_parser.scala
author wenzelm
Sun, 24 Aug 2008 19:02:22 +0200
changeset 27987 c3f7fa72af2a
child 27988 efc6d38d16d2
permissions -rw-r--r--
rearranged source files;
     1 /*  Title:      lib/jedit/plugin/isabelle_parser.scala
     2     ID:         $Id$
     3     Author:     Makarius
     4 
     5 Isabelle parser setup for Sidekick plugin.
     6 */
     7 
     8 package isabelle.jedit
     9 
    10 import javax.swing.text.Position
    11 import javax.swing.tree.DefaultMutableTreeNode
    12 import javax.swing.tree.DefaultTreeModel
    13 
    14 import org.gjt.sp.jedit.Buffer
    15 import org.gjt.sp.util.Log
    16 
    17 import sidekick.Asset
    18 import sidekick.SideKickParsedData
    19 import sidekick.SideKickParser
    20 import errorlist.DefaultErrorSource
    21 
    22 
    23 private class IsabelleAsset(name: String, content: String) extends Asset(name)
    24 {
    25   override def getShortString() = { name }
    26   override def getLongString() = { content }
    27   override def getIcon() = { null }
    28 }
    29 
    30 
    31 class IsabelleParser extends SideKickParser("isabelle") {
    32   private var stopped = false
    33 
    34   override def stop () { stopped = true }
    35 
    36   def parse(buffer: Buffer, e: DefaultErrorSource): SideKickParsedData = {
    37     stopped = false
    38 
    39     var text: String = null
    40     var data: SideKickParsedData = null
    41 
    42     try {
    43       buffer.readLock()
    44       text = buffer.getText(0, buffer.getLength())
    45       data = new SideKickParsedData(buffer.getName())
    46 
    47       val asset = new IsabelleAsset("theory", null)
    48       asset.setStart(buffer.createPosition(0))
    49       asset.setEnd(buffer.createPosition(buffer.getLength()))
    50 
    51       val node = new DefaultMutableTreeNode(asset)
    52       data.root.insert(node, node.getChildCount())
    53 
    54     } finally {
    55       buffer.readUnlock()
    56     }
    57 
    58     data
    59   }
    60 }
    61