src/Tools/jEdit/patches/extended_styles_brackets
author wenzelm
Wed, 06 Dec 2023 21:28:40 +0100
changeset 79159 05cdedece5a9
parent 79012 b6bca0666c38
child 80156 70d69b081561
permissions -rw-r--r--
merged
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
73653
d9823224fcfe build auxiliary jEdit component in Isabelle/Scala;
wenzelm
parents: 72247
diff changeset
     1
diff -ru jedit5.6.0/jEdit/org/gjt/sp/jedit/syntax/Chunk.java jedit5.6.0-patched/jEdit/org/gjt/sp/jedit/syntax/Chunk.java
d9823224fcfe build auxiliary jEdit component in Isabelle/Scala;
wenzelm
parents: 72247
diff changeset
     2
--- jedit5.6.0/jEdit/org/gjt/sp/jedit/syntax/Chunk.java	2020-09-03 05:31:01.000000000 +0200
d9823224fcfe build auxiliary jEdit component in Isabelle/Scala;
wenzelm
parents: 72247
diff changeset
     3
+++ jedit5.6.0-patched/jEdit/org/gjt/sp/jedit/syntax/Chunk.java	2021-05-10 11:02:05.816257745 +0200
71932
65fd0f032a75 updated to jedit-5.6pre1 (repository version 25349);
wenzelm
parents: 69838
diff changeset
     4
@@ -332,9 +332,9 @@
50306
b655d2d0406d updated to jedit-5.0.0;
wenzelm
parents: 50305
diff changeset
     5
 	//{{{ Package private members
b655d2d0406d updated to jedit-5.0.0;
wenzelm
parents: 50305
diff changeset
     6
 
b655d2d0406d updated to jedit-5.0.0;
wenzelm
parents: 50305
diff changeset
     7
 	//{{{ Instance variables
b655d2d0406d updated to jedit-5.0.0;
wenzelm
parents: 50305
diff changeset
     8
-	SyntaxStyle style;
b655d2d0406d updated to jedit-5.0.0;
wenzelm
parents: 50305
diff changeset
     9
+	public SyntaxStyle style;
b655d2d0406d updated to jedit-5.0.0;
wenzelm
parents: 50305
diff changeset
    10
 	// set up after init()
b655d2d0406d updated to jedit-5.0.0;
wenzelm
parents: 50305
diff changeset
    11
-	float width;
b655d2d0406d updated to jedit-5.0.0;
wenzelm
parents: 50305
diff changeset
    12
+	public float width;
b655d2d0406d updated to jedit-5.0.0;
wenzelm
parents: 50305
diff changeset
    13
 	//}}}
b655d2d0406d updated to jedit-5.0.0;
wenzelm
parents: 50305
diff changeset
    14
 
b655d2d0406d updated to jedit-5.0.0;
wenzelm
parents: 50305
diff changeset
    15
 	//{{{ Chunk constructor
72247
c06260b7152c update to official jedit-5.6.0;
wenzelm
parents: 71932
diff changeset
    16
@@ -584,8 +584,8 @@
c06260b7152c update to official jedit-5.6.0;
wenzelm
parents: 71932
diff changeset
    17
 	// this is either style.getBackgroundColor() or
48786
2b08d10a2f75 updated to jedit-4.5.2 (still unchanged);
wenzelm
parents:
diff changeset
    18
 	// styles[defaultID].getBackgroundColor()
2b08d10a2f75 updated to jedit-4.5.2 (still unchanged);
wenzelm
parents:
diff changeset
    19
 	private Color background;
71932
65fd0f032a75 updated to jedit-5.6pre1 (repository version 25349);
wenzelm
parents: 69838
diff changeset
    20
-	private char[] chars;
48786
2b08d10a2f75 updated to jedit-4.5.2 (still unchanged);
wenzelm
parents:
diff changeset
    21
-	private String str;
71932
65fd0f032a75 updated to jedit-5.6pre1 (repository version 25349);
wenzelm
parents: 69838
diff changeset
    22
+	public char[] chars;
48786
2b08d10a2f75 updated to jedit-4.5.2 (still unchanged);
wenzelm
parents:
diff changeset
    23
+	public String str;
71932
65fd0f032a75 updated to jedit-5.6pre1 (repository version 25349);
wenzelm
parents: 69838
diff changeset
    24
 	private GlyphData glyphData;
50306
b655d2d0406d updated to jedit-5.0.0;
wenzelm
parents: 50305
diff changeset
    25
 	//}}}
b655d2d0406d updated to jedit-5.0.0;
wenzelm
parents: 50305
diff changeset
    26
 
73653
d9823224fcfe build auxiliary jEdit component in Isabelle/Scala;
wenzelm
parents: 72247
diff changeset
    27
diff -ru jedit5.6.0/jEdit/org/gjt/sp/jedit/textarea/TextArea.java jedit5.6.0-patched/jEdit/org/gjt/sp/jedit/textarea/TextArea.java
d9823224fcfe build auxiliary jEdit component in Isabelle/Scala;
wenzelm
parents: 72247
diff changeset
    28
--- jedit5.6.0/jEdit/org/gjt/sp/jedit/textarea/TextArea.java	2020-09-03 05:31:01.000000000 +0200
79012
b6bca0666c38 rebuild jedit with minimal patch for jdk-21, following SVN 25690;
wenzelm
parents: 73658
diff changeset
    29
+++ jedit5.6.0-patched/jEdit/org/gjt/sp/jedit/textarea/TextArea.java	2023-11-20 15:31:55.825519645 +0100
71932
65fd0f032a75 updated to jedit-5.6pre1 (repository version 25349);
wenzelm
parents: 69838
diff changeset
    30
@@ -914,6 +914,11 @@
61511
d40f906bb13f updated to jedit-5.3.0 and SideKick 1.8;
wenzelm
parents: 59571
diff changeset
    31
 		return chunkCache.getLineInfo(screenLine).physicalLine;
d40f906bb13f updated to jedit-5.3.0 and SideKick 1.8;
wenzelm
parents: 59571
diff changeset
    32
 	} //}}}
d40f906bb13f updated to jedit-5.3.0 and SideKick 1.8;
wenzelm
parents: 59571
diff changeset
    33
 
d40f906bb13f updated to jedit-5.3.0 and SideKick 1.8;
wenzelm
parents: 59571
diff changeset
    34
+        public Chunk getChunksOfScreenLine(int screenLine)
d40f906bb13f updated to jedit-5.3.0 and SideKick 1.8;
wenzelm
parents: 59571
diff changeset
    35
+        {
d40f906bb13f updated to jedit-5.3.0 and SideKick 1.8;
wenzelm
parents: 59571
diff changeset
    36
+                return chunkCache.getLineInfo(screenLine).chunks;
d40f906bb13f updated to jedit-5.3.0 and SideKick 1.8;
wenzelm
parents: 59571
diff changeset
    37
+        }
d40f906bb13f updated to jedit-5.3.0 and SideKick 1.8;
wenzelm
parents: 59571
diff changeset
    38
+
d40f906bb13f updated to jedit-5.3.0 and SideKick 1.8;
wenzelm
parents: 59571
diff changeset
    39
 	//{{{ getScreenLineOfOffset() method
d40f906bb13f updated to jedit-5.3.0 and SideKick 1.8;
wenzelm
parents: 59571
diff changeset
    40
 	/**
d40f906bb13f updated to jedit-5.3.0 and SideKick 1.8;
wenzelm
parents: 59571
diff changeset
    41
 	 * Returns the screen (wrapped) line containing the specified offset.
73658
f6b453449cc6 more brackets;
wenzelm
parents: 73653
diff changeset
    42
@@ -1622,8 +1627,8 @@
f6b453449cc6 more brackets;
wenzelm
parents: 73653
diff changeset
    43
 		}
f6b453449cc6 more brackets;
wenzelm
parents: 73653
diff changeset
    44
 
f6b453449cc6 more brackets;
wenzelm
parents: 73653
diff changeset
    45
 		// Scan backwards, trying to find a bracket
f6b453449cc6 more brackets;
wenzelm
parents: 73653
diff changeset
    46
-		String openBrackets = "([{«‹⟨⌈⌊⦇⟦⦃⟪";
f6b453449cc6 more brackets;
wenzelm
parents: 73653
diff changeset
    47
-		String closeBrackets = ")]}»›⟩⌉⌋⦈⟧⦄⟫";
f6b453449cc6 more brackets;
wenzelm
parents: 73653
diff changeset
    48
+		String openBrackets = "([{«‹⟨⌈⌊⦇⟦⦃⟪⦉";
f6b453449cc6 more brackets;
wenzelm
parents: 73653
diff changeset
    49
+		String closeBrackets = ")]}»›⟩⌉⌋⦈⟧⦄⟫⦊";
f6b453449cc6 more brackets;
wenzelm
parents: 73653
diff changeset
    50
 		int count = 1;
f6b453449cc6 more brackets;
wenzelm
parents: 73653
diff changeset
    51
 		char openBracket = '\0';
f6b453449cc6 more brackets;
wenzelm
parents: 73653
diff changeset
    52
 		char closeBracket = '\0';
79012
b6bca0666c38 rebuild jedit with minimal patch for jdk-21, following SVN 25690;
wenzelm
parents: 73658
diff changeset
    53
@@ -6336,7 +6341,7 @@
b6bca0666c38 rebuild jedit with minimal patch for jdk-21, following SVN 25690;
wenzelm
parents: 73658
diff changeset
    54
 		{
b6bca0666c38 rebuild jedit with minimal patch for jdk-21, following SVN 25690;
wenzelm
parents: 73658
diff changeset
    55
 			int following = charBreaker.following(offset -
b6bca0666c38 rebuild jedit with minimal patch for jdk-21, following SVN 25690;
wenzelm
parents: 73658
diff changeset
    56
 					index0Offset);
b6bca0666c38 rebuild jedit with minimal patch for jdk-21, following SVN 25690;
wenzelm
parents: 73658
diff changeset
    57
-			if (following == BreakIterator.DONE)
b6bca0666c38 rebuild jedit with minimal patch for jdk-21, following SVN 25690;
wenzelm
parents: 73658
diff changeset
    58
+			if (following == BreakIterator.DONE || (Runtime.version().feature() >= 20 && following == offset - index0Offset))
b6bca0666c38 rebuild jedit with minimal patch for jdk-21, following SVN 25690;
wenzelm
parents: 73658
diff changeset
    59
 			{
b6bca0666c38 rebuild jedit with minimal patch for jdk-21, following SVN 25690;
wenzelm
parents: 73658
diff changeset
    60
 				// This means a end of line. Then it is
b6bca0666c38 rebuild jedit with minimal patch for jdk-21, following SVN 25690;
wenzelm
parents: 73658
diff changeset
    61
 				// safe to assume 1 code unit is a character.
73658
f6b453449cc6 more brackets;
wenzelm
parents: 73653
diff changeset
    62
diff -ru jedit5.6.0/jEdit/org/gjt/sp/jedit/TextUtilities.java jedit5.6.0-patched/jEdit/org/gjt/sp/jedit/TextUtilities.java
f6b453449cc6 more brackets;
wenzelm
parents: 73653
diff changeset
    63
--- jedit5.6.0/jEdit/org/gjt/sp/jedit/TextUtilities.java	2020-09-03 05:31:03.000000000 +0200
f6b453449cc6 more brackets;
wenzelm
parents: 73653
diff changeset
    64
+++ jedit5.6.0-patched/jEdit/org/gjt/sp/jedit/TextUtilities.java	2021-05-10 18:20:57.418571547 +0200
f6b453449cc6 more brackets;
wenzelm
parents: 73653
diff changeset
    65
@@ -115,6 +115,8 @@
f6b453449cc6 more brackets;
wenzelm
parents: 73653
diff changeset
    66
 		case '⦄': if (direction != null) direction[0] = false; return '⦃';
f6b453449cc6 more brackets;
wenzelm
parents: 73653
diff changeset
    67
 		case '⟪': if (direction != null) direction[0] = true;  return '⟫';
f6b453449cc6 more brackets;
wenzelm
parents: 73653
diff changeset
    68
 		case '⟫': if (direction != null) direction[0] = false; return '⟪';
f6b453449cc6 more brackets;
wenzelm
parents: 73653
diff changeset
    69
+		case '⦉': if (direction != null) direction[0] = true;  return '⦊';
f6b453449cc6 more brackets;
wenzelm
parents: 73653
diff changeset
    70
+		case '⦊': if (direction != null) direction[0] = false; return '⦉';
f6b453449cc6 more brackets;
wenzelm
parents: 73653
diff changeset
    71
 		default:  return '\0';
f6b453449cc6 more brackets;
wenzelm
parents: 73653
diff changeset
    72
 		}
f6b453449cc6 more brackets;
wenzelm
parents: 73653
diff changeset
    73
 	} //}}}
73653
d9823224fcfe build auxiliary jEdit component in Isabelle/Scala;
wenzelm
parents: 72247
diff changeset
    74
diff -ru jedit5.6.0/jEdit/org/gjt/sp/util/SyntaxUtilities.java jedit5.6.0-patched/jEdit/org/gjt/sp/util/SyntaxUtilities.java
d9823224fcfe build auxiliary jEdit component in Isabelle/Scala;
wenzelm
parents: 72247
diff changeset
    75
--- jedit5.6.0/jEdit/org/gjt/sp/util/SyntaxUtilities.java	2020-09-03 05:31:09.000000000 +0200
d9823224fcfe build auxiliary jEdit component in Isabelle/Scala;
wenzelm
parents: 72247
diff changeset
    76
+++ jedit5.6.0-patched/jEdit/org/gjt/sp/util/SyntaxUtilities.java	2021-05-10 11:02:05.820257742 +0200
71932
65fd0f032a75 updated to jedit-5.6pre1 (repository version 25349);
wenzelm
parents: 69838
diff changeset
    77
@@ -344,8 +344,28 @@
65fd0f032a75 updated to jedit-5.6pre1 (repository version 25349);
wenzelm
parents: 69838
diff changeset
    78
 			}
65fd0f032a75 updated to jedit-5.6pre1 (repository version 25349);
wenzelm
parents: 69838
diff changeset
    79
 		}
65fd0f032a75 updated to jedit-5.6pre1 (repository version 25349);
wenzelm
parents: 69838
diff changeset
    80
 
65fd0f032a75 updated to jedit-5.6pre1 (repository version 25349);
wenzelm
parents: 69838
diff changeset
    81
-		return styles;
65fd0f032a75 updated to jedit-5.6pre1 (repository version 25349);
wenzelm
parents: 69838
diff changeset
    82
+		styles[0] =
65fd0f032a75 updated to jedit-5.6pre1 (repository version 25349);
wenzelm
parents: 69838
diff changeset
    83
+			new SyntaxStyle(org.gjt.sp.jedit.jEdit.getColorProperty("view.fgColor", Color.BLACK),
65fd0f032a75 updated to jedit-5.6pre1 (repository version 25349);
wenzelm
parents: 69838
diff changeset
    84
+				null, new Font(family, 0, size));
65fd0f032a75 updated to jedit-5.6pre1 (repository version 25349);
wenzelm
parents: 69838
diff changeset
    85
+		return _styleExtender.extendStyles(styles);
65fd0f032a75 updated to jedit-5.6pre1 (repository version 25349);
wenzelm
parents: 69838
diff changeset
    86
 	} //}}}
65fd0f032a75 updated to jedit-5.6pre1 (repository version 25349);
wenzelm
parents: 69838
diff changeset
    87
 
48786
2b08d10a2f75 updated to jedit-4.5.2 (still unchanged);
wenzelm
parents:
diff changeset
    88
+	/**
2b08d10a2f75 updated to jedit-4.5.2 (still unchanged);
wenzelm
parents:
diff changeset
    89
+	 * Extended styles derived from the user-specified style array.
2b08d10a2f75 updated to jedit-4.5.2 (still unchanged);
wenzelm
parents:
diff changeset
    90
+	 */
2b08d10a2f75 updated to jedit-4.5.2 (still unchanged);
wenzelm
parents:
diff changeset
    91
+
2b08d10a2f75 updated to jedit-4.5.2 (still unchanged);
wenzelm
parents:
diff changeset
    92
+	public static class StyleExtender
2b08d10a2f75 updated to jedit-4.5.2 (still unchanged);
wenzelm
parents:
diff changeset
    93
+	{
2b08d10a2f75 updated to jedit-4.5.2 (still unchanged);
wenzelm
parents:
diff changeset
    94
+		public SyntaxStyle[] extendStyles(SyntaxStyle[] styles)
2b08d10a2f75 updated to jedit-4.5.2 (still unchanged);
wenzelm
parents:
diff changeset
    95
+		{
2b08d10a2f75 updated to jedit-4.5.2 (still unchanged);
wenzelm
parents:
diff changeset
    96
+			return styles;
2b08d10a2f75 updated to jedit-4.5.2 (still unchanged);
wenzelm
parents:
diff changeset
    97
+		}
2b08d10a2f75 updated to jedit-4.5.2 (still unchanged);
wenzelm
parents:
diff changeset
    98
+	}
2b08d10a2f75 updated to jedit-4.5.2 (still unchanged);
wenzelm
parents:
diff changeset
    99
+	volatile private static StyleExtender _styleExtender = new StyleExtender();
2b08d10a2f75 updated to jedit-4.5.2 (still unchanged);
wenzelm
parents:
diff changeset
   100
+	public static void setStyleExtender(StyleExtender ext)
2b08d10a2f75 updated to jedit-4.5.2 (still unchanged);
wenzelm
parents:
diff changeset
   101
+	{
2b08d10a2f75 updated to jedit-4.5.2 (still unchanged);
wenzelm
parents:
diff changeset
   102
+		_styleExtender = ext;
2b08d10a2f75 updated to jedit-4.5.2 (still unchanged);
wenzelm
parents:
diff changeset
   103
+	}
2b08d10a2f75 updated to jedit-4.5.2 (still unchanged);
wenzelm
parents:
diff changeset
   104
+
2b08d10a2f75 updated to jedit-4.5.2 (still unchanged);
wenzelm
parents:
diff changeset
   105
 	private SyntaxUtilities(){}
2b08d10a2f75 updated to jedit-4.5.2 (still unchanged);
wenzelm
parents:
diff changeset
   106
 }