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 } |