src/Tools/jEdit/src-base/syntax_style.scala
author wenzelm
Sun, 12 Aug 2018 14:28:28 +0200
changeset 68743 91162dd89571
parent 66602 180b2e72601f
child 73340 0ffcad1f6130
permissions -rw-r--r--
proper session dirs;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
66555
39257f39c7da more robust: fall-back for SyntaxUtilities.StyleExtender when Isabelle plugin is unloaded;
wenzelm
parents:
diff changeset
     1
/*  Title:      Tools/jEdit/src-base/syntax_style.scala
39257f39c7da more robust: fall-back for SyntaxUtilities.StyleExtender when Isabelle plugin is unloaded;
wenzelm
parents:
diff changeset
     2
    Author:     Makarius
39257f39c7da more robust: fall-back for SyntaxUtilities.StyleExtender when Isabelle plugin is unloaded;
wenzelm
parents:
diff changeset
     3
39257f39c7da more robust: fall-back for SyntaxUtilities.StyleExtender when Isabelle plugin is unloaded;
wenzelm
parents:
diff changeset
     4
Extended syntax styles: dummy version.
39257f39c7da more robust: fall-back for SyntaxUtilities.StyleExtender when Isabelle plugin is unloaded;
wenzelm
parents:
diff changeset
     5
*/
39257f39c7da more robust: fall-back for SyntaxUtilities.StyleExtender when Isabelle plugin is unloaded;
wenzelm
parents:
diff changeset
     6
39257f39c7da more robust: fall-back for SyntaxUtilities.StyleExtender when Isabelle plugin is unloaded;
wenzelm
parents:
diff changeset
     7
package isabelle.jedit_base
39257f39c7da more robust: fall-back for SyntaxUtilities.StyleExtender when Isabelle plugin is unloaded;
wenzelm
parents:
diff changeset
     8
39257f39c7da more robust: fall-back for SyntaxUtilities.StyleExtender when Isabelle plugin is unloaded;
wenzelm
parents:
diff changeset
     9
39257f39c7da more robust: fall-back for SyntaxUtilities.StyleExtender when Isabelle plugin is unloaded;
wenzelm
parents:
diff changeset
    10
import isabelle._
39257f39c7da more robust: fall-back for SyntaxUtilities.StyleExtender when Isabelle plugin is unloaded;
wenzelm
parents:
diff changeset
    11
39257f39c7da more robust: fall-back for SyntaxUtilities.StyleExtender when Isabelle plugin is unloaded;
wenzelm
parents:
diff changeset
    12
import org.gjt.sp.util.SyntaxUtilities
39257f39c7da more robust: fall-back for SyntaxUtilities.StyleExtender when Isabelle plugin is unloaded;
wenzelm
parents:
diff changeset
    13
import org.gjt.sp.jedit.syntax.{Token => JEditToken, SyntaxStyle}
66602
180b2e72601f more thorough change of syntax style extender: jEdit.propertiesChanged invalidates buffer chunk cache;
wenzelm
parents: 66555
diff changeset
    14
import org.gjt.sp.jedit.jEdit
66555
39257f39c7da more robust: fall-back for SyntaxUtilities.StyleExtender when Isabelle plugin is unloaded;
wenzelm
parents:
diff changeset
    15
39257f39c7da more robust: fall-back for SyntaxUtilities.StyleExtender when Isabelle plugin is unloaded;
wenzelm
parents:
diff changeset
    16
39257f39c7da more robust: fall-back for SyntaxUtilities.StyleExtender when Isabelle plugin is unloaded;
wenzelm
parents:
diff changeset
    17
object Syntax_Style
39257f39c7da more robust: fall-back for SyntaxUtilities.StyleExtender when Isabelle plugin is unloaded;
wenzelm
parents:
diff changeset
    18
{
39257f39c7da more robust: fall-back for SyntaxUtilities.StyleExtender when Isabelle plugin is unloaded;
wenzelm
parents:
diff changeset
    19
  private val plain_range: Int = JEditToken.ID_COUNT
39257f39c7da more robust: fall-back for SyntaxUtilities.StyleExtender when Isabelle plugin is unloaded;
wenzelm
parents:
diff changeset
    20
  private val full_range = 6 * plain_range + 1
39257f39c7da more robust: fall-back for SyntaxUtilities.StyleExtender when Isabelle plugin is unloaded;
wenzelm
parents:
diff changeset
    21
39257f39c7da more robust: fall-back for SyntaxUtilities.StyleExtender when Isabelle plugin is unloaded;
wenzelm
parents:
diff changeset
    22
  object Dummy_Extender extends SyntaxUtilities.StyleExtender
39257f39c7da more robust: fall-back for SyntaxUtilities.StyleExtender when Isabelle plugin is unloaded;
wenzelm
parents:
diff changeset
    23
  {
39257f39c7da more robust: fall-back for SyntaxUtilities.StyleExtender when Isabelle plugin is unloaded;
wenzelm
parents:
diff changeset
    24
    override def extendStyles(styles: Array[SyntaxStyle]): Array[SyntaxStyle] =
39257f39c7da more robust: fall-back for SyntaxUtilities.StyleExtender when Isabelle plugin is unloaded;
wenzelm
parents:
diff changeset
    25
    {
39257f39c7da more robust: fall-back for SyntaxUtilities.StyleExtender when Isabelle plugin is unloaded;
wenzelm
parents:
diff changeset
    26
      val new_styles = new Array[SyntaxStyle](full_range)
39257f39c7da more robust: fall-back for SyntaxUtilities.StyleExtender when Isabelle plugin is unloaded;
wenzelm
parents:
diff changeset
    27
      for (i <- 0 until full_range) {
39257f39c7da more robust: fall-back for SyntaxUtilities.StyleExtender when Isabelle plugin is unloaded;
wenzelm
parents:
diff changeset
    28
        new_styles(i) = styles(i % plain_range)
39257f39c7da more robust: fall-back for SyntaxUtilities.StyleExtender when Isabelle plugin is unloaded;
wenzelm
parents:
diff changeset
    29
      }
39257f39c7da more robust: fall-back for SyntaxUtilities.StyleExtender when Isabelle plugin is unloaded;
wenzelm
parents:
diff changeset
    30
      new_styles
39257f39c7da more robust: fall-back for SyntaxUtilities.StyleExtender when Isabelle plugin is unloaded;
wenzelm
parents:
diff changeset
    31
    }
39257f39c7da more robust: fall-back for SyntaxUtilities.StyleExtender when Isabelle plugin is unloaded;
wenzelm
parents:
diff changeset
    32
  }
66602
180b2e72601f more thorough change of syntax style extender: jEdit.propertiesChanged invalidates buffer chunk cache;
wenzelm
parents: 66555
diff changeset
    33
180b2e72601f more thorough change of syntax style extender: jEdit.propertiesChanged invalidates buffer chunk cache;
wenzelm
parents: 66555
diff changeset
    34
  def set_style_extender(extender: SyntaxUtilities.StyleExtender)
180b2e72601f more thorough change of syntax style extender: jEdit.propertiesChanged invalidates buffer chunk cache;
wenzelm
parents: 66555
diff changeset
    35
  {
180b2e72601f more thorough change of syntax style extender: jEdit.propertiesChanged invalidates buffer chunk cache;
wenzelm
parents: 66555
diff changeset
    36
    SyntaxUtilities.setStyleExtender(extender)
180b2e72601f more thorough change of syntax style extender: jEdit.propertiesChanged invalidates buffer chunk cache;
wenzelm
parents: 66555
diff changeset
    37
    GUI_Thread.later { jEdit.propertiesChanged }
180b2e72601f more thorough change of syntax style extender: jEdit.propertiesChanged invalidates buffer chunk cache;
wenzelm
parents: 66555
diff changeset
    38
  }
180b2e72601f more thorough change of syntax style extender: jEdit.propertiesChanged invalidates buffer chunk cache;
wenzelm
parents: 66555
diff changeset
    39
180b2e72601f more thorough change of syntax style extender: jEdit.propertiesChanged invalidates buffer chunk cache;
wenzelm
parents: 66555
diff changeset
    40
  def dummy_style_extender() { set_style_extender(Dummy_Extender) }
66555
39257f39c7da more robust: fall-back for SyntaxUtilities.StyleExtender when Isabelle plugin is unloaded;
wenzelm
parents:
diff changeset
    41
}