src/Tools/jEdit/src/jedit_spell_checker.scala
changeset 75393 87ebf5a50283
parent 73367 77ef8bef0593
child 75837 93a704c52061
equal deleted inserted replaced
75388:b3ca4a6ed74b 75393:87ebf5a50283
    15 import org.gjt.sp.jedit.menu.EnhancedMenuItem
    15 import org.gjt.sp.jedit.menu.EnhancedMenuItem
    16 import org.gjt.sp.jedit.jEdit
    16 import org.gjt.sp.jedit.jEdit
    17 import org.gjt.sp.jedit.textarea.{JEditTextArea, TextArea}
    17 import org.gjt.sp.jedit.textarea.{JEditTextArea, TextArea}
    18 
    18 
    19 
    19 
    20 object JEdit_Spell_Checker
    20 object JEdit_Spell_Checker {
    21 {
       
    22   /* completion */
    21   /* completion */
    23 
    22 
    24   def completion(
    23   def completion(
    25     rendering: JEdit_Rendering, explicit: Boolean, caret: Text.Offset): Option[Completion.Result] =
    24     rendering: JEdit_Rendering,
    26   {
    25     explicit: Boolean,
       
    26     caret: Text.Offset
       
    27   ): Option[Completion.Result] = {
    27     PIDE.plugin.spell_checker.get match {
    28     PIDE.plugin.spell_checker.get match {
    28       case Some(spell_checker) if explicit =>
    29       case Some(spell_checker) if explicit =>
    29         spell_checker.completion(rendering, caret)
    30         spell_checker.completion(rendering, caret)
    30       case _ => None
    31       case _ => None
    31     }
    32     }
    32   }
    33   }
    33 
    34 
    34 
    35 
    35   /* context menu */
    36   /* context menu */
    36 
    37 
    37   def context_menu(text_area: JEditTextArea, offset: Text.Offset): List[JMenuItem] =
    38   def context_menu(text_area: JEditTextArea, offset: Text.Offset): List[JMenuItem] = {
    38   {
       
    39     val result =
    39     val result =
    40       for {
    40       for {
    41         spell_checker <- PIDE.plugin.spell_checker.get
    41         spell_checker <- PIDE.plugin.spell_checker.get
    42         doc_view <- Document_View.get(text_area)
    42         doc_view <- Document_View.get(text_area)
    43         rendering = doc_view.get_rendering()
    43         rendering = doc_view.get_rendering()
    78   }
    78   }
    79 
    79 
    80 
    80 
    81   /* dictionaries */
    81   /* dictionaries */
    82 
    82 
    83   def dictionaries_selector(): Option_Component =
    83   def dictionaries_selector(): Option_Component = {
    84   {
       
    85     GUI_Thread.require {}
    84     GUI_Thread.require {}
    86 
    85 
    87     val option_name = "spell_checker_dictionary"
    86     val option_name = "spell_checker_dictionary"
    88     val opt = PIDE.options.value.check_name(option_name)
    87     val opt = PIDE.options.value.check_name(option_name)
    89 
    88 
    90     val entries = Spell_Checker.dictionaries
    89     val entries = Spell_Checker.dictionaries
    91     val component = new ComboBox(entries) with Option_Component {
    90     val component = new ComboBox(entries) with Option_Component {
    92       name = option_name
    91       name = option_name
    93       val title = opt.title()
    92       val title = opt.title()
    94       def load(): Unit =
    93       def load(): Unit = {
    95       {
       
    96         val lang = PIDE.options.string(option_name)
    94         val lang = PIDE.options.string(option_name)
    97         entries.find(_.lang == lang) match {
    95         entries.find(_.lang == lang) match {
    98           case Some(entry) => selection.item = entry
    96           case Some(entry) => selection.item = entry
    99           case None =>
    97           case None =>
   100         }
    98         }