# HG changeset patch
# User wenzelm
# Date 1373138378 -7200
# Node ID 7658f8d7b2dc13092ccef90874fb8734c47d568c
# Parent 64206b5b243cb15e70cc6fbbeced62882b58b052
minimal jedit mode for Isabelle NEWS;
diff -r 64206b5b243c -r 7658f8d7b2dc NEWS
--- a/NEWS Fri Jul 05 23:17:39 2013 +0200
+++ b/NEWS Sat Jul 06 21:19:38 2013 +0200
@@ -10536,4 +10536,4 @@
* 'subtype' facility in HOL for introducing new types as subsets of existing
types;
-:mode=text:wrap=hard:maxLineLen=72:
+:mode=isabelle-news:wrap=hard:maxLineLen=72:
diff -r 64206b5b243c -r 7658f8d7b2dc src/Tools/jEdit/lib/Tools/jedit
--- a/src/Tools/jEdit/lib/Tools/jedit Fri Jul 05 23:17:39 2013 +0200
+++ b/src/Tools/jEdit/lib/Tools/jedit Sat Jul 06 21:19:38 2013 +0200
@@ -284,6 +284,7 @@
perl -i -e 'while (<>) {
if (m/NAME="javacc"/) {
print qq,\n\n,;
+ print qq,\n\n,;
print qq,\n\n,;
print qq,\n\n,; }
print; }' dist/modes/catalog
diff -r 64206b5b243c -r 7658f8d7b2dc src/Tools/jEdit/src/Isabelle.props
--- a/src/Tools/jEdit/src/Isabelle.props Fri Jul 05 23:17:39 2013 +0200
+++ b/src/Tools/jEdit/src/Isabelle.props Sat Jul 06 21:19:38 2013 +0200
@@ -66,6 +66,8 @@
isabelle-timing.title=Timing
#SideKick
+mode.isabelle-news.folding=none
+mode.isabelle-news.sidekick.parser=isabelle-news
mode.isabelle-options.folding=sidekick
mode.isabelle-options.sidekick.parser=isabelle-options
mode.isabelle-root.folding=sidekick
diff -r 64206b5b243c -r 7658f8d7b2dc src/Tools/jEdit/src/isabelle_sidekick.scala
--- a/src/Tools/jEdit/src/isabelle_sidekick.scala Fri Jul 05 23:17:39 2013 +0200
+++ b/src/Tools/jEdit/src/isabelle_sidekick.scala Sat Jul 06 21:19:38 2013 +0200
@@ -12,6 +12,7 @@
import scala.collection.Set
import scala.collection.immutable.TreeSet
+import scala.util.matching.Regex
import java.awt.Component
import javax.swing.tree.DefaultMutableTreeNode
@@ -229,3 +230,34 @@
}
}
+
+class Isabelle_Sidekick_News extends Isabelle_Sidekick("isabelle-news", Some(Outer_Syntax.empty))
+{
+ private val Heading1 = new Regex("""^New in (.*)\w*$""")
+ private val Heading2 = new Regex("""^\*\*\*\w*(.*)\w*\*\*\*\w*$""")
+
+ private def make_node(s: String, start: Text.Offset, stop: Text.Offset): DefaultMutableTreeNode =
+ new DefaultMutableTreeNode(new Isabelle_Sidekick.Asset(s, start, stop))
+
+ override def parser(buffer: Buffer, syntax: Outer_Syntax, data: SideKickParsedData): Boolean =
+ {
+ var offset = 0
+
+ for (line <- split_lines(JEdit_Lib.buffer_text(buffer)) if !stopped) {
+ line match {
+ case Heading1(s) =>
+ data.root.add(make_node(Library.capitalize(s), offset, offset + line.length))
+ case Heading2(s) =>
+ data.root.getLastChild.asInstanceOf[DefaultMutableTreeNode]
+ .add(make_node(s, offset, offset + line.length))
+ case _ =>
+ }
+ offset += line.length + 1
+ }
+
+ true
+ }
+
+ override def supportsCompletion = false
+}
+
diff -r 64206b5b243c -r 7658f8d7b2dc src/Tools/jEdit/src/modes/isabelle-news.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Tools/jEdit/src/modes/isabelle-news.xml Sat Jul 06 21:19:38 2013 +0200
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 64206b5b243c -r 7658f8d7b2dc src/Tools/jEdit/src/services.xml
--- a/src/Tools/jEdit/src/services.xml Fri Jul 05 23:17:39 2013 +0200
+++ b/src/Tools/jEdit/src/services.xml Sat Jul 06 21:19:38 2013 +0200
@@ -8,6 +8,9 @@
new isabelle.jedit.Isabelle_Sidekick_Default();
+
+ new isabelle.jedit.Isabelle_Sidekick_News();
+
new isabelle.jedit.Isabelle_Sidekick_Options();