1 /* Title: lib/jedit/plugin/isabelle_parser.scala
5 Isabelle parser setup for Sidekick plugin.
10 import javax.swing.text.Position
11 import javax.swing.tree.DefaultMutableTreeNode
12 import javax.swing.tree.DefaultTreeModel
14 import org.gjt.sp.jedit.Buffer
15 import org.gjt.sp.util.Log
18 import sidekick.SideKickParsedData
19 import sidekick.SideKickParser
20 import errorlist.DefaultErrorSource
23 private class IsabelleAsset(name: String, content: String) extends Asset(name)
25 override def getShortString() = { name }
26 override def getLongString() = { content }
27 override def getIcon() = { null }
31 class IsabelleParser extends SideKickParser("isabelle") {
32 private var stopped = false
34 override def stop () { stopped = true }
36 def parse(buffer: Buffer, e: DefaultErrorSource): SideKickParsedData = {
39 var text: String = null
40 var data: SideKickParsedData = null
44 text = buffer.getText(0, buffer.getLength())
45 data = new SideKickParsedData(buffer.getName())
47 val asset = new IsabelleAsset("theory", null)
48 asset.setStart(buffer.createPosition(0))
49 asset.setEnd(buffer.createPosition(buffer.getLength()))
51 val node = new DefaultMutableTreeNode(asset)
52 data.root.insert(node, node.getChildCount())