Build the Isabelle/VSCode extension as component.
*/
package isabelle.vscode
import isabelle._
object Component_VSCode { /* build grammar */
def build_grammar(options: Options, build_dir: Path,
logic: String = Isabelle_System.default_logic(),
dirs: List[Path] = Nil,
progress: Progress = new Progress
): Unit = { val keywords =
Sessions.background(options, logic, dirs = dirs).check_errors.base.overall_syntax.keywords
val output_path = build_dir + Path.explode("isabelle-grammar.json")
progress.echo(File.standard_path(output_path))
val (minor_keywords, operators) =
keywords.minor.iterator.toList.partition(Symbol.is_ascii_identifier)
def major_keywords(pred: String => Boolean): List[String] =
(for {
k <- keywords.major.iterator
kind <- keywords.kinds.get(k) if pred(kind)
} yield k).toList
val keywords1 =
major_keywords(k => k != Keyword.THY_END && k != Keyword.PRF_ASM && k != Keyword.PRF_ASM_GOAL) val keywords2 = minor_keywords ::: major_keywords(Set(Keyword.THY_END)) val keywords3 = major_keywords(Set(Keyword.PRF_ASM, Keyword.PRF_ASM_GOAL))
val isabelle_tool =
Isabelle_Tool("component_vscode_extension", "build Isabelle/VSCode extension module",
Scala_Project.here,
{ args => var target_dir = Path.current var dirs: List[Path] = Nil var logic = Isabelle_System.default_logic()
val getopts = Getopts("""
Usage: isabelle component_vscode_extension
Options are:
-D DIR target directory (default ".")
-d DIR include session directory
-l NAME logic session name (default ISABELLE_LOGIC=""" +
quote(Isabelle_System.default_logic()) + """)
Build the Isabelle/VSCode extension as component, for inclusion into the
local VSCodium configuration. """, "D:" -> (arg => target_dir = Path.explode(arg)), "d:" -> (arg => dirs = dirs ::: List(Path.explode(arg))), "l:" -> (arg => logic = arg))
val more_args = getopts(args) if (more_args.nonEmpty) getopts.usage()
val options = Options.init() val progress = new Console_Progress()
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.