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