151 Markup.TVAR -> "schematic type variable") |
151 Markup.TVAR -> "schematic type variable") |
152 |
152 |
153 |
153 |
154 /* markup elements */ |
154 /* markup elements */ |
155 |
155 |
|
156 val semantic_completion_elements = |
|
157 Markup.Elements(Markup.COMPLETION, Markup.NO_COMPLETION) |
|
158 |
|
159 val language_context_elements = |
|
160 Markup.Elements(Markup.STRING, Markup.ALT_STRING, Markup.VERBATIM, |
|
161 Markup.CARTOUCHE, Markup.COMMENT, Markup.LANGUAGE, |
|
162 Markup.ML_STRING, Markup.ML_COMMENT) |
|
163 |
|
164 val language_elements = Markup.Elements(Markup.LANGUAGE) |
|
165 |
|
166 val citation_elements = Markup.Elements(Markup.CITATION) |
|
167 |
156 val active_elements = |
168 val active_elements = |
157 Markup.Elements(Markup.DIALOG, Markup.BROWSER, Markup.GRAPHVIEW, |
169 Markup.Elements(Markup.DIALOG, Markup.BROWSER, Markup.GRAPHVIEW, |
158 Markup.SENDBACK, Markup.JEDIT_ACTION, Markup.SIMP_TRACE_PANEL) |
170 Markup.SENDBACK, Markup.JEDIT_ACTION, Markup.SIMP_TRACE_PANEL) |
159 |
171 |
160 val background_elements = |
172 val background_elements = |
166 Markup.Markdown_Item.name ++ active_elements |
178 Markup.Markdown_Item.name ++ active_elements |
167 |
179 |
168 val foreground_elements = |
180 val foreground_elements = |
169 Markup.Elements(Markup.STRING, Markup.ALT_STRING, Markup.VERBATIM, |
181 Markup.Elements(Markup.STRING, Markup.ALT_STRING, Markup.VERBATIM, |
170 Markup.CARTOUCHE, Markup.ANTIQUOTED) |
182 Markup.CARTOUCHE, Markup.ANTIQUOTED) |
171 |
|
172 val semantic_completion_elements = |
|
173 Markup.Elements(Markup.COMPLETION, Markup.NO_COMPLETION) |
|
174 |
183 |
175 val tooltip_elements = |
184 val tooltip_elements = |
176 Markup.Elements(Markup.LANGUAGE, Markup.EXPRESSION, Markup.TIMING, Markup.ENTITY, |
185 Markup.Elements(Markup.LANGUAGE, Markup.EXPRESSION, Markup.TIMING, Markup.ENTITY, |
177 Markup.SORTING, Markup.TYPING, Markup.CLASS_PARAMETER, Markup.ML_TYPING, |
186 Markup.SORTING, Markup.TYPING, Markup.CLASS_PARAMETER, Markup.ML_TYPING, |
178 Markup.ML_BREAKPOINT, Markup.PATH, Markup.DOC, Markup.URL, Markup.MARKDOWN_PARAGRAPH, |
187 Markup.ML_BREAKPOINT, Markup.PATH, Markup.DOC, Markup.URL, Markup.MARKDOWN_PARAGRAPH, |
209 case _ => Some(info) |
218 case _ => Some(info) |
210 } |
219 } |
211 case _ => None |
220 case _ => None |
212 }).headOption.map(_.info) |
221 }).headOption.map(_.info) |
213 } |
222 } |
|
223 |
|
224 def language_context(range: Text.Range): Option[Completion.Language_Context] = |
|
225 snapshot.select(range, Rendering.language_context_elements, _ => |
|
226 { |
|
227 case Text.Info(_, XML.Elem(Markup.Language(language, symbols, antiquotes, delimited), _)) => |
|
228 if (delimited) Some(Completion.Language_Context(language, symbols, antiquotes)) |
|
229 else None |
|
230 case Text.Info(_, elem) |
|
231 if elem.name == Markup.ML_STRING || elem.name == Markup.ML_COMMENT => |
|
232 Some(Completion.Language_Context.ML_inner) |
|
233 case Text.Info(_, _) => |
|
234 Some(Completion.Language_Context.inner) |
|
235 }).headOption.map(_.info) |
|
236 |
|
237 def language_path(range: Text.Range): Option[Text.Range] = |
|
238 snapshot.select(range, Rendering.language_elements, _ => |
|
239 { |
|
240 case Text.Info(info_range, XML.Elem(Markup.Language(Markup.Language.PATH, _, _, _), _)) => |
|
241 Some(snapshot.convert(info_range)) |
|
242 case _ => None |
|
243 }).headOption.map(_.info) |
|
244 |
|
245 def citation(range: Text.Range): Option[Text.Info[String]] = |
|
246 snapshot.select(range, Rendering.citation_elements, _ => |
|
247 { |
|
248 case Text.Info(info_range, XML.Elem(Markup.Citation(name), _)) => |
|
249 Some(Text.Info(snapshot.convert(info_range), name)) |
|
250 case _ => None |
|
251 }).headOption.map(_.info) |
214 |
252 |
215 |
253 |
216 /* spell checker */ |
254 /* spell checker */ |
217 |
255 |
218 private lazy val spell_checker_elements = |
256 private lazy val spell_checker_elements = |