src/Pure/PIDE/rendering.scala
changeset 66053 cd8d0ad5ac19
parent 65913 f330f538dae6
child 66054 fb0eea226a4d
equal deleted inserted replaced
66052:39eb61b1fa51 66053:cd8d0ad5ac19
   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 =