generated configuration for Prettify Symbols Mode;
authorwenzelm
Wed, 11 Jan 2017 16:01:19 +0100
changeset 64872 9c194386db8d
parent 64871 2d594dabcca6
child 64873 ee5aaf7bce0d
generated configuration for Prettify Symbols Mode;
src/Pure/System/isabelle_tool.scala
src/Pure/build-jars
src/Tools/VSCode/README.md
src/Tools/VSCode/extension/isabelle-symbols.json
src/Tools/VSCode/src/symbols.scala
--- a/src/Pure/System/isabelle_tool.scala	Wed Jan 11 14:48:07 2017 +0100
+++ b/src/Pure/System/isabelle_tool.scala	Wed Jan 11 16:01:19 2017 +0100
@@ -115,7 +115,8 @@
       Update_Then.isabelle_tool,
       Update_Theorems.isabelle_tool,
       isabelle.vscode.Grammar.isabelle_tool,
-      isabelle.vscode.Server.isabelle_tool)
+      isabelle.vscode.Server.isabelle_tool,
+      isabelle.vscode.Symbols.isabelle_tool)
 
   private def list_internal(): List[(String, String)] =
     for (tool <- internal_tools.toList if tool.accessible)
--- a/src/Pure/build-jars	Wed Jan 11 14:48:07 2017 +0100
+++ b/src/Pure/build-jars	Wed Jan 11 16:01:19 2017 +0100
@@ -163,6 +163,7 @@
   ../Tools/VSCode/src/grammar.scala
   ../Tools/VSCode/src/protocol.scala
   ../Tools/VSCode/src/server.scala
+  ../Tools/VSCode/src/symbols.scala
   ../Tools/VSCode/src/vscode_rendering.scala
   ../Tools/VSCode/src/vscode_resources.scala
 )
--- a/src/Tools/VSCode/README.md	Wed Jan 11 14:48:07 2017 +0100
+++ b/src/Tools/VSCode/README.md	Wed Jan 11 16:01:19 2017 +0100
@@ -29,6 +29,8 @@
 
 * shell> `isabelle vscode_grammar`
 
+* shell> `isabelle vscode_symbols`
+
 * shell> `vsce package`
 
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Tools/VSCode/extension/isabelle-symbols.json	Wed Jan 11 16:01:19 2017 +0100
@@ -0,0 +1,395 @@
+{
+  "prettifySymbolsMode.substitutions": [
+      {
+        "language": "isabelle",
+        "revealOn": "none",
+        "adjustCursorMovement": true,
+        "substitutions": [
+          {"ugly":"\\\\\\<zero\\>","pretty":"๐Ÿฌ"},
+          {"ugly":"\\\\\\<one\\>","pretty":"๐Ÿญ"},
+          {"ugly":"\\\\\\<two\\>","pretty":"๐Ÿฎ"},
+          {"ugly":"\\\\\\<three\\>","pretty":"๐Ÿฏ"},
+          {"ugly":"\\\\\\<four\\>","pretty":"๐Ÿฐ"},
+          {"ugly":"\\\\\\<five\\>","pretty":"๐Ÿฑ"},
+          {"ugly":"\\\\\\<six\\>","pretty":"๐Ÿฒ"},
+          {"ugly":"\\\\\\<seven\\>","pretty":"๐Ÿณ"},
+          {"ugly":"\\\\\\<eight\\>","pretty":"๐Ÿด"},
+          {"ugly":"\\\\\\<nine\\>","pretty":"๐Ÿต"},
+          {"ugly":"\\\\\\<A\\>","pretty":"๐’œ"},
+          {"ugly":"\\\\\\<B\\>","pretty":"โ„ฌ"},
+          {"ugly":"\\\\\\<C\\>","pretty":"๐’ž"},
+          {"ugly":"\\\\\\<D\\>","pretty":"๐’Ÿ"},
+          {"ugly":"\\\\\\<E\\>","pretty":"โ„ฐ"},
+          {"ugly":"\\\\\\<F\\>","pretty":"โ„ฑ"},
+          {"ugly":"\\\\\\<G\\>","pretty":"๐’ข"},
+          {"ugly":"\\\\\\<H\\>","pretty":"โ„‹"},
+          {"ugly":"\\\\\\<I\\>","pretty":"โ„"},
+          {"ugly":"\\\\\\<J\\>","pretty":"๐’ฅ"},
+          {"ugly":"\\\\\\<K\\>","pretty":"๐’ฆ"},
+          {"ugly":"\\\\\\<L\\>","pretty":"โ„’"},
+          {"ugly":"\\\\\\<M\\>","pretty":"โ„ณ"},
+          {"ugly":"\\\\\\<N\\>","pretty":"๐’ฉ"},
+          {"ugly":"\\\\\\<O\\>","pretty":"๐’ช"},
+          {"ugly":"\\\\\\<P\\>","pretty":"๐’ซ"},
+          {"ugly":"\\\\\\<Q\\>","pretty":"๐’ฌ"},
+          {"ugly":"\\\\\\<R\\>","pretty":"โ„›"},
+          {"ugly":"\\\\\\<S\\>","pretty":"๐’ฎ"},
+          {"ugly":"\\\\\\<T\\>","pretty":"๐’ฏ"},
+          {"ugly":"\\\\\\<U\\>","pretty":"๐’ฐ"},
+          {"ugly":"\\\\\\<V\\>","pretty":"๐’ฑ"},
+          {"ugly":"\\\\\\<W\\>","pretty":"๐’ฒ"},
+          {"ugly":"\\\\\\<X\\>","pretty":"๐’ณ"},
+          {"ugly":"\\\\\\<Y\\>","pretty":"๐’ด"},
+          {"ugly":"\\\\\\<Z\\>","pretty":"๐’ต"},
+          {"ugly":"\\\\\\<a\\>","pretty":"๐–บ"},
+          {"ugly":"\\\\\\<b\\>","pretty":"๐–ป"},
+          {"ugly":"\\\\\\<c\\>","pretty":"๐–ผ"},
+          {"ugly":"\\\\\\<d\\>","pretty":"๐–ฝ"},
+          {"ugly":"\\\\\\<e\\>","pretty":"๐–พ"},
+          {"ugly":"\\\\\\<f\\>","pretty":"๐–ฟ"},
+          {"ugly":"\\\\\\<g\\>","pretty":"๐—€"},
+          {"ugly":"\\\\\\<h\\>","pretty":"๐—"},
+          {"ugly":"\\\\\\<i\\>","pretty":"๐—‚"},
+          {"ugly":"\\\\\\<j\\>","pretty":"๐—ƒ"},
+          {"ugly":"\\\\\\<k\\>","pretty":"๐—„"},
+          {"ugly":"\\\\\\<l\\>","pretty":"๐—…"},
+          {"ugly":"\\\\\\<m\\>","pretty":"๐—†"},
+          {"ugly":"\\\\\\<n\\>","pretty":"๐—‡"},
+          {"ugly":"\\\\\\<o\\>","pretty":"๐—ˆ"},
+          {"ugly":"\\\\\\<p\\>","pretty":"๐—‰"},
+          {"ugly":"\\\\\\<q\\>","pretty":"๐—Š"},
+          {"ugly":"\\\\\\<r\\>","pretty":"๐—‹"},
+          {"ugly":"\\\\\\<s\\>","pretty":"๐—Œ"},
+          {"ugly":"\\\\\\<t\\>","pretty":"๐—"},
+          {"ugly":"\\\\\\<u\\>","pretty":"๐—Ž"},
+          {"ugly":"\\\\\\<v\\>","pretty":"๐—"},
+          {"ugly":"\\\\\\<w\\>","pretty":"๐—"},
+          {"ugly":"\\\\\\<x\\>","pretty":"๐—‘"},
+          {"ugly":"\\\\\\<y\\>","pretty":"๐—’"},
+          {"ugly":"\\\\\\<z\\>","pretty":"๐—“"},
+          {"ugly":"\\\\\\<AA\\>","pretty":"๐”„"},
+          {"ugly":"\\\\\\<BB\\>","pretty":"๐”…"},
+          {"ugly":"\\\\\\<CC\\>","pretty":"โ„ญ"},
+          {"ugly":"\\\\\\<DD\\>","pretty":"๐”‡"},
+          {"ugly":"\\\\\\<EE\\>","pretty":"๐”ˆ"},
+          {"ugly":"\\\\\\<FF\\>","pretty":"๐”‰"},
+          {"ugly":"\\\\\\<GG\\>","pretty":"๐”Š"},
+          {"ugly":"\\\\\\<HH\\>","pretty":"โ„Œ"},
+          {"ugly":"\\\\\\<II\\>","pretty":"โ„‘"},
+          {"ugly":"\\\\\\<JJ\\>","pretty":"๐”"},
+          {"ugly":"\\\\\\<KK\\>","pretty":"๐”Ž"},
+          {"ugly":"\\\\\\<LL\\>","pretty":"๐”"},
+          {"ugly":"\\\\\\<MM\\>","pretty":"๐”"},
+          {"ugly":"\\\\\\<NN\\>","pretty":"๐”‘"},
+          {"ugly":"\\\\\\<OO\\>","pretty":"๐”’"},
+          {"ugly":"\\\\\\<PP\\>","pretty":"๐”“"},
+          {"ugly":"\\\\\\<QQ\\>","pretty":"๐””"},
+          {"ugly":"\\\\\\<RR\\>","pretty":"โ„œ"},
+          {"ugly":"\\\\\\<SS\\>","pretty":"๐”–"},
+          {"ugly":"\\\\\\<TT\\>","pretty":"๐”—"},
+          {"ugly":"\\\\\\<UU\\>","pretty":"๐”˜"},
+          {"ugly":"\\\\\\<VV\\>","pretty":"๐”™"},
+          {"ugly":"\\\\\\<WW\\>","pretty":"๐”š"},
+          {"ugly":"\\\\\\<XX\\>","pretty":"๐”›"},
+          {"ugly":"\\\\\\<YY\\>","pretty":"๐”œ"},
+          {"ugly":"\\\\\\<ZZ\\>","pretty":"โ„จ"},
+          {"ugly":"\\\\\\<aa\\>","pretty":"๐”ž"},
+          {"ugly":"\\\\\\<bb\\>","pretty":"๐”Ÿ"},
+          {"ugly":"\\\\\\<cc\\>","pretty":"๐” "},
+          {"ugly":"\\\\\\<dd\\>","pretty":"๐”ก"},
+          {"ugly":"\\\\\\<ee\\>","pretty":"๐”ข"},
+          {"ugly":"\\\\\\<ff\\>","pretty":"๐”ฃ"},
+          {"ugly":"\\\\\\<gg\\>","pretty":"๐”ค"},
+          {"ugly":"\\\\\\<hh\\>","pretty":"๐”ฅ"},
+          {"ugly":"\\\\\\<ii\\>","pretty":"๐”ฆ"},
+          {"ugly":"\\\\\\<jj\\>","pretty":"๐”ง"},
+          {"ugly":"\\\\\\<kk\\>","pretty":"๐”จ"},
+          {"ugly":"\\\\\\<ll\\>","pretty":"๐”ฉ"},
+          {"ugly":"\\\\\\<mm\\>","pretty":"๐”ช"},
+          {"ugly":"\\\\\\<nn\\>","pretty":"๐”ซ"},
+          {"ugly":"\\\\\\<oo\\>","pretty":"๐”ฌ"},
+          {"ugly":"\\\\\\<pp\\>","pretty":"๐”ญ"},
+          {"ugly":"\\\\\\<qq\\>","pretty":"๐”ฎ"},
+          {"ugly":"\\\\\\<rr\\>","pretty":"๐”ฏ"},
+          {"ugly":"\\\\\\<ss\\>","pretty":"๐”ฐ"},
+          {"ugly":"\\\\\\<tt\\>","pretty":"๐”ฑ"},
+          {"ugly":"\\\\\\<uu\\>","pretty":"๐”ฒ"},
+          {"ugly":"\\\\\\<vv\\>","pretty":"๐”ณ"},
+          {"ugly":"\\\\\\<ww\\>","pretty":"๐”ด"},
+          {"ugly":"\\\\\\<xx\\>","pretty":"๐”ต"},
+          {"ugly":"\\\\\\<yy\\>","pretty":"๐”ถ"},
+          {"ugly":"\\\\\\<zz\\>","pretty":"๐”ท"},
+          {"ugly":"\\\\\\<alpha\\>","pretty":"ฮฑ"},
+          {"ugly":"\\\\\\<beta\\>","pretty":"ฮฒ"},
+          {"ugly":"\\\\\\<gamma\\>","pretty":"ฮณ"},
+          {"ugly":"\\\\\\<delta\\>","pretty":"ฮด"},
+          {"ugly":"\\\\\\<epsilon\\>","pretty":"ฮต"},
+          {"ugly":"\\\\\\<zeta\\>","pretty":"ฮถ"},
+          {"ugly":"\\\\\\<eta\\>","pretty":"ฮท"},
+          {"ugly":"\\\\\\<theta\\>","pretty":"ฮธ"},
+          {"ugly":"\\\\\\<iota\\>","pretty":"ฮน"},
+          {"ugly":"\\\\\\<kappa\\>","pretty":"ฮบ"},
+          {"ugly":"\\\\\\<lambda\\>","pretty":"ฮป"},
+          {"ugly":"\\\\\\<mu\\>","pretty":"ฮผ"},
+          {"ugly":"\\\\\\<nu\\>","pretty":"ฮฝ"},
+          {"ugly":"\\\\\\<xi\\>","pretty":"ฮพ"},
+          {"ugly":"\\\\\\<pi\\>","pretty":"ฯ€"},
+          {"ugly":"\\\\\\<rho\\>","pretty":"ฯ"},
+          {"ugly":"\\\\\\<sigma\\>","pretty":"ฯƒ"},
+          {"ugly":"\\\\\\<tau\\>","pretty":"ฯ„"},
+          {"ugly":"\\\\\\<upsilon\\>","pretty":"ฯ…"},
+          {"ugly":"\\\\\\<phi\\>","pretty":"ฯ†"},
+          {"ugly":"\\\\\\<chi\\>","pretty":"ฯ‡"},
+          {"ugly":"\\\\\\<psi\\>","pretty":"ฯˆ"},
+          {"ugly":"\\\\\\<omega\\>","pretty":"ฯ‰"},
+          {"ugly":"\\\\\\<Gamma\\>","pretty":"ฮ“"},
+          {"ugly":"\\\\\\<Delta\\>","pretty":"ฮ”"},
+          {"ugly":"\\\\\\<Theta\\>","pretty":"ฮ˜"},
+          {"ugly":"\\\\\\<Lambda\\>","pretty":"ฮ›"},
+          {"ugly":"\\\\\\<Xi\\>","pretty":"ฮž"},
+          {"ugly":"\\\\\\<Pi\\>","pretty":"ฮ "},
+          {"ugly":"\\\\\\<Sigma\\>","pretty":"ฮฃ"},
+          {"ugly":"\\\\\\<Upsilon\\>","pretty":"ฮฅ"},
+          {"ugly":"\\\\\\<Phi\\>","pretty":"ฮฆ"},
+          {"ugly":"\\\\\\<Psi\\>","pretty":"ฮจ"},
+          {"ugly":"\\\\\\<Omega\\>","pretty":"ฮฉ"},
+          {"ugly":"\\\\\\<bool\\>","pretty":"๐”น"},
+          {"ugly":"\\\\\\<complex\\>","pretty":"โ„‚"},
+          {"ugly":"\\\\\\<nat\\>","pretty":"โ„•"},
+          {"ugly":"\\\\\\<rat\\>","pretty":"โ„š"},
+          {"ugly":"\\\\\\<real\\>","pretty":"โ„"},
+          {"ugly":"\\\\\\<int\\>","pretty":"โ„ค"},
+          {"ugly":"\\\\\\<leftarrow\\>","pretty":"โ†"},
+          {"ugly":"\\\\\\<longleftarrow\\>","pretty":"โŸต"},
+          {"ugly":"\\\\\\<longlongleftarrow\\>","pretty":"โคŽ"},
+          {"ugly":"\\\\\\<longlonglongleftarrow\\>","pretty":"โ‡ "},
+          {"ugly":"\\\\\\<rightarrow\\>","pretty":"โ†’"},
+          {"ugly":"\\\\\\<longrightarrow\\>","pretty":"โŸถ"},
+          {"ugly":"\\\\\\<longlongrightarrow\\>","pretty":"โค"},
+          {"ugly":"\\\\\\<longlonglongrightarrow\\>","pretty":"โ‡ข"},
+          {"ugly":"\\\\\\<Leftarrow\\>","pretty":"โ‡"},
+          {"ugly":"\\\\\\<Longleftarrow\\>","pretty":"โŸธ"},
+          {"ugly":"\\\\\\<Lleftarrow\\>","pretty":"โ‡š"},
+          {"ugly":"\\\\\\<Rightarrow\\>","pretty":"โ‡’"},
+          {"ugly":"\\\\\\<Longrightarrow\\>","pretty":"โŸน"},
+          {"ugly":"\\\\\\<Rrightarrow\\>","pretty":"โ‡›"},
+          {"ugly":"\\\\\\<leftrightarrow\\>","pretty":"โ†”"},
+          {"ugly":"\\\\\\<longleftrightarrow\\>","pretty":"โŸท"},
+          {"ugly":"\\\\\\<Leftrightarrow\\>","pretty":"โ‡”"},
+          {"ugly":"\\\\\\<Longleftrightarrow\\>","pretty":"โŸบ"},
+          {"ugly":"\\\\\\<mapsto\\>","pretty":"โ†ฆ"},
+          {"ugly":"\\\\\\<longmapsto\\>","pretty":"โŸผ"},
+          {"ugly":"\\\\\\<midarrow\\>","pretty":"โ”€"},
+          {"ugly":"\\\\\\<Midarrow\\>","pretty":"โ•"},
+          {"ugly":"\\\\\\<hookleftarrow\\>","pretty":"โ†ฉ"},
+          {"ugly":"\\\\\\<hookrightarrow\\>","pretty":"โ†ช"},
+          {"ugly":"\\\\\\<leftharpoondown\\>","pretty":"โ†ฝ"},
+          {"ugly":"\\\\\\<rightharpoondown\\>","pretty":"โ‡"},
+          {"ugly":"\\\\\\<leftharpoonup\\>","pretty":"โ†ผ"},
+          {"ugly":"\\\\\\<rightharpoonup\\>","pretty":"โ‡€"},
+          {"ugly":"\\\\\\<rightleftharpoons\\>","pretty":"โ‡Œ"},
+          {"ugly":"\\\\\\<leadsto\\>","pretty":"โ†"},
+          {"ugly":"\\\\\\<downharpoonleft\\>","pretty":"โ‡ƒ"},
+          {"ugly":"\\\\\\<downharpoonright\\>","pretty":"โ‡‚"},
+          {"ugly":"\\\\\\<upharpoonleft\\>","pretty":"โ†ฟ"},
+          {"ugly":"\\\\\\<restriction\\>","pretty":"โ†พ"},
+          {"ugly":"\\\\\\<Colon\\>","pretty":"โˆท"},
+          {"ugly":"\\\\\\<up\\>","pretty":"โ†‘"},
+          {"ugly":"\\\\\\<Up\\>","pretty":"โ‡‘"},
+          {"ugly":"\\\\\\<down\\>","pretty":"โ†“"},
+          {"ugly":"\\\\\\<Down\\>","pretty":"โ‡“"},
+          {"ugly":"\\\\\\<updown\\>","pretty":"โ†•"},
+          {"ugly":"\\\\\\<Updown\\>","pretty":"โ‡•"},
+          {"ugly":"\\\\\\<langle\\>","pretty":"โŸจ"},
+          {"ugly":"\\\\\\<rangle\\>","pretty":"โŸฉ"},
+          {"ugly":"\\\\\\<lceil\\>","pretty":"โŒˆ"},
+          {"ugly":"\\\\\\<rceil\\>","pretty":"โŒ‰"},
+          {"ugly":"\\\\\\<lfloor\\>","pretty":"โŒŠ"},
+          {"ugly":"\\\\\\<rfloor\\>","pretty":"โŒ‹"},
+          {"ugly":"\\\\\\<lparr\\>","pretty":"โฆ‡"},
+          {"ugly":"\\\\\\<rparr\\>","pretty":"โฆˆ"},
+          {"ugly":"\\\\\\<lbrakk\\>","pretty":"โŸฆ"},
+          {"ugly":"\\\\\\<rbrakk\\>","pretty":"โŸง"},
+          {"ugly":"\\\\\\<lbrace\\>","pretty":"โฆƒ"},
+          {"ugly":"\\\\\\<rbrace\\>","pretty":"โฆ„"},
+          {"ugly":"\\\\\\<guillemotleft\\>","pretty":"ยซ"},
+          {"ugly":"\\\\\\<guillemotright\\>","pretty":"ยป"},
+          {"ugly":"\\\\\\<bottom\\>","pretty":"โŠฅ"},
+          {"ugly":"\\\\\\<top\\>","pretty":"โŠค"},
+          {"ugly":"\\\\\\<and\\>","pretty":"โˆง"},
+          {"ugly":"\\\\\\<And\\>","pretty":"โ‹€"},
+          {"ugly":"\\\\\\<or\\>","pretty":"โˆจ"},
+          {"ugly":"\\\\\\<Or\\>","pretty":"โ‹"},
+          {"ugly":"\\\\\\<forall\\>","pretty":"โˆ€"},
+          {"ugly":"\\\\\\<exists\\>","pretty":"โˆƒ"},
+          {"ugly":"\\\\\\<nexists\\>","pretty":"โˆ„"},
+          {"ugly":"\\\\\\<not\\>","pretty":"ยฌ"},
+          {"ugly":"\\\\\\<circle\\>","pretty":"โ—‹"},
+          {"ugly":"\\\\\\<box\\>","pretty":"โ–ก"},
+          {"ugly":"\\\\\\<diamond\\>","pretty":"โ—‡"},
+          {"ugly":"\\\\\\<diamondop\\>","pretty":"โ‹„"},
+          {"ugly":"\\\\\\<turnstile\\>","pretty":"โŠข"},
+          {"ugly":"\\\\\\<Turnstile\\>","pretty":"โŠจ"},
+          {"ugly":"\\\\\\<tturnstile\\>","pretty":"โŠฉ"},
+          {"ugly":"\\\\\\<TTurnstile\\>","pretty":"โŠซ"},
+          {"ugly":"\\\\\\<stileturn\\>","pretty":"โŠฃ"},
+          {"ugly":"\\\\\\<surd\\>","pretty":"โˆš"},
+          {"ugly":"\\\\\\<le\\>","pretty":"โ‰ค"},
+          {"ugly":"\\\\\\<ge\\>","pretty":"โ‰ฅ"},
+          {"ugly":"\\\\\\<lless\\>","pretty":"โ‰ช"},
+          {"ugly":"\\\\\\<ggreater\\>","pretty":"โ‰ซ"},
+          {"ugly":"\\\\\\<lesssim\\>","pretty":"โ‰ฒ"},
+          {"ugly":"\\\\\\<greatersim\\>","pretty":"โ‰ณ"},
+          {"ugly":"\\\\\\<lessapprox\\>","pretty":"โช…"},
+          {"ugly":"\\\\\\<greaterapprox\\>","pretty":"โช†"},
+          {"ugly":"\\\\\\<in\\>","pretty":"โˆˆ"},
+          {"ugly":"\\\\\\<notin\\>","pretty":"โˆ‰"},
+          {"ugly":"\\\\\\<subset\\>","pretty":"โŠ‚"},
+          {"ugly":"\\\\\\<supset\\>","pretty":"โŠƒ"},
+          {"ugly":"\\\\\\<subseteq\\>","pretty":"โŠ†"},
+          {"ugly":"\\\\\\<supseteq\\>","pretty":"โŠ‡"},
+          {"ugly":"\\\\\\<sqsubset\\>","pretty":"โŠ"},
+          {"ugly":"\\\\\\<sqsupset\\>","pretty":"โŠ"},
+          {"ugly":"\\\\\\<sqsubseteq\\>","pretty":"โŠ‘"},
+          {"ugly":"\\\\\\<sqsupseteq\\>","pretty":"โŠ’"},
+          {"ugly":"\\\\\\<inter\\>","pretty":"โˆฉ"},
+          {"ugly":"\\\\\\<Inter\\>","pretty":"โ‹‚"},
+          {"ugly":"\\\\\\<union\\>","pretty":"โˆช"},
+          {"ugly":"\\\\\\<Union\\>","pretty":"โ‹ƒ"},
+          {"ugly":"\\\\\\<squnion\\>","pretty":"โŠ”"},
+          {"ugly":"\\\\\\<Squnion\\>","pretty":"โจ†"},
+          {"ugly":"\\\\\\<sqinter\\>","pretty":"โŠ“"},
+          {"ugly":"\\\\\\<Sqinter\\>","pretty":"โจ…"},
+          {"ugly":"\\\\\\<setminus\\>","pretty":"โˆ–"},
+          {"ugly":"\\\\\\<propto\\>","pretty":"โˆ"},
+          {"ugly":"\\\\\\<uplus\\>","pretty":"โŠŽ"},
+          {"ugly":"\\\\\\<Uplus\\>","pretty":"โจ„"},
+          {"ugly":"\\\\\\<noteq\\>","pretty":"โ‰ "},
+          {"ugly":"\\\\\\<sim\\>","pretty":"โˆผ"},
+          {"ugly":"\\\\\\<doteq\\>","pretty":"โ‰"},
+          {"ugly":"\\\\\\<simeq\\>","pretty":"โ‰ƒ"},
+          {"ugly":"\\\\\\<approx\\>","pretty":"โ‰ˆ"},
+          {"ugly":"\\\\\\<asymp\\>","pretty":"โ‰"},
+          {"ugly":"\\\\\\<cong\\>","pretty":"โ‰…"},
+          {"ugly":"\\\\\\<smile\\>","pretty":"โŒฃ"},
+          {"ugly":"\\\\\\<equiv\\>","pretty":"โ‰ก"},
+          {"ugly":"\\\\\\<frown\\>","pretty":"โŒข"},
+          {"ugly":"\\\\\\<Join\\>","pretty":"โ‹ˆ"},
+          {"ugly":"\\\\\\<bowtie\\>","pretty":"โจ"},
+          {"ugly":"\\\\\\<prec\\>","pretty":"โ‰บ"},
+          {"ugly":"\\\\\\<succ\\>","pretty":"โ‰ป"},
+          {"ugly":"\\\\\\<preceq\\>","pretty":"โ‰ผ"},
+          {"ugly":"\\\\\\<succeq\\>","pretty":"โ‰ฝ"},
+          {"ugly":"\\\\\\<parallel\\>","pretty":"โˆฅ"},
+          {"ugly":"\\\\\\<bar\\>","pretty":"ยฆ"},
+          {"ugly":"\\\\\\<plusminus\\>","pretty":"ยฑ"},
+          {"ugly":"\\\\\\<minusplus\\>","pretty":"โˆ“"},
+          {"ugly":"\\\\\\<times\\>","pretty":"ร—"},
+          {"ugly":"\\\\\\<div\\>","pretty":"รท"},
+          {"ugly":"\\\\\\<cdot\\>","pretty":"โ‹…"},
+          {"ugly":"\\\\\\<star\\>","pretty":"โ‹†"},
+          {"ugly":"\\\\\\<bullet\\>","pretty":"โˆ™"},
+          {"ugly":"\\\\\\<circ\\>","pretty":"โˆ˜"},
+          {"ugly":"\\\\\\<dagger\\>","pretty":"โ€ "},
+          {"ugly":"\\\\\\<ddagger\\>","pretty":"โ€ก"},
+          {"ugly":"\\\\\\<lhd\\>","pretty":"โŠฒ"},
+          {"ugly":"\\\\\\<rhd\\>","pretty":"โŠณ"},
+          {"ugly":"\\\\\\<unlhd\\>","pretty":"โŠด"},
+          {"ugly":"\\\\\\<unrhd\\>","pretty":"โŠต"},
+          {"ugly":"\\\\\\<triangleleft\\>","pretty":"โ—ƒ"},
+          {"ugly":"\\\\\\<triangleright\\>","pretty":"โ–น"},
+          {"ugly":"\\\\\\<triangle\\>","pretty":"โ–ณ"},
+          {"ugly":"\\\\\\<triangleq\\>","pretty":"โ‰œ"},
+          {"ugly":"\\\\\\<oplus\\>","pretty":"โŠ•"},
+          {"ugly":"\\\\\\<Oplus\\>","pretty":"โจ"},
+          {"ugly":"\\\\\\<otimes\\>","pretty":"โŠ—"},
+          {"ugly":"\\\\\\<Otimes\\>","pretty":"โจ‚"},
+          {"ugly":"\\\\\\<odot\\>","pretty":"โŠ™"},
+          {"ugly":"\\\\\\<Odot\\>","pretty":"โจ€"},
+          {"ugly":"\\\\\\<ominus\\>","pretty":"โŠ–"},
+          {"ugly":"\\\\\\<oslash\\>","pretty":"โŠ˜"},
+          {"ugly":"\\\\\\<dots\\>","pretty":"โ€ฆ"},
+          {"ugly":"\\\\\\<cdots\\>","pretty":"โ‹ฏ"},
+          {"ugly":"\\\\\\<Sum\\>","pretty":"โˆ‘"},
+          {"ugly":"\\\\\\<Prod\\>","pretty":"โˆ"},
+          {"ugly":"\\\\\\<Coprod\\>","pretty":"โˆ"},
+          {"ugly":"\\\\\\<infinity\\>","pretty":"โˆž"},
+          {"ugly":"\\\\\\<integral\\>","pretty":"โˆซ"},
+          {"ugly":"\\\\\\<ointegral\\>","pretty":"โˆฎ"},
+          {"ugly":"\\\\\\<clubsuit\\>","pretty":"โ™ฃ"},
+          {"ugly":"\\\\\\<diamondsuit\\>","pretty":"โ™ข"},
+          {"ugly":"\\\\\\<heartsuit\\>","pretty":"โ™ก"},
+          {"ugly":"\\\\\\<spadesuit\\>","pretty":"โ™ "},
+          {"ugly":"\\\\\\<aleph\\>","pretty":"โ„ต"},
+          {"ugly":"\\\\\\<emptyset\\>","pretty":"โˆ…"},
+          {"ugly":"\\\\\\<nabla\\>","pretty":"โˆ‡"},
+          {"ugly":"\\\\\\<partial\\>","pretty":"โˆ‚"},
+          {"ugly":"\\\\\\<flat\\>","pretty":"โ™ญ"},
+          {"ugly":"\\\\\\<natural\\>","pretty":"โ™ฎ"},
+          {"ugly":"\\\\\\<sharp\\>","pretty":"โ™ฏ"},
+          {"ugly":"\\\\\\<angle\\>","pretty":"โˆ "},
+          {"ugly":"\\\\\\<copyright\\>","pretty":"ยฉ"},
+          {"ugly":"\\\\\\<registered\\>","pretty":"ยฎ"},
+          {"ugly":"\\\\\\<hyphen\\>","pretty":"ยญ"},
+          {"ugly":"\\\\\\<inverse\\>","pretty":"ยฏ"},
+          {"ugly":"\\\\\\<onequarter\\>","pretty":"ยผ"},
+          {"ugly":"\\\\\\<onehalf\\>","pretty":"ยฝ"},
+          {"ugly":"\\\\\\<threequarters\\>","pretty":"ยพ"},
+          {"ugly":"\\\\\\<ordfeminine\\>","pretty":"ยช"},
+          {"ugly":"\\\\\\<ordmasculine\\>","pretty":"ยบ"},
+          {"ugly":"\\\\\\<section\\>","pretty":"ยง"},
+          {"ugly":"\\\\\\<paragraph\\>","pretty":"ยถ"},
+          {"ugly":"\\\\\\<exclamdown\\>","pretty":"ยก"},
+          {"ugly":"\\\\\\<questiondown\\>","pretty":"ยฟ"},
+          {"ugly":"\\\\\\<euro\\>","pretty":"โ‚ฌ"},
+          {"ugly":"\\\\\\<pounds\\>","pretty":"ยฃ"},
+          {"ugly":"\\\\\\<yen\\>","pretty":"ยฅ"},
+          {"ugly":"\\\\\\<cent\\>","pretty":"ยข"},
+          {"ugly":"\\\\\\<currency\\>","pretty":"ยค"},
+          {"ugly":"\\\\\\<degree\\>","pretty":"ยฐ"},
+          {"ugly":"\\\\\\<amalg\\>","pretty":"โจฟ"},
+          {"ugly":"\\\\\\<mho\\>","pretty":"โ„ง"},
+          {"ugly":"\\\\\\<lozenge\\>","pretty":"โ—Š"},
+          {"ugly":"\\\\\\<wp\\>","pretty":"โ„˜"},
+          {"ugly":"\\\\\\<wrong\\>","pretty":"โ‰€"},
+          {"ugly":"\\\\\\<acute\\>","pretty":"ยด"},
+          {"ugly":"\\\\\\<index\\>","pretty":"ฤฑ"},
+          {"ugly":"\\\\\\<dieresis\\>","pretty":"ยจ"},
+          {"ugly":"\\\\\\<cedilla\\>","pretty":"ยธ"},
+          {"ugly":"\\\\\\<hungarumlaut\\>","pretty":"ห"},
+          {"ugly":"\\\\\\<bind\\>","pretty":"โคœ"},
+          {"ugly":"\\\\\\<then\\>","pretty":"โชข"},
+          {"ugly":"\\\\\\<some\\>","pretty":"ฯต"},
+          {"ugly":"\\\\\\<hole\\>","pretty":"โŒ‘"},
+          {"ugly":"\\\\\\<newline\\>","pretty":"โŽ"},
+          {"ugly":"\\\\\\<comment\\>","pretty":"โ€•"},
+          {"ugly":"\\\\\\<open\\>","pretty":"โ€น"},
+          {"ugly":"\\\\\\<close\\>","pretty":"โ€บ"},
+          {"ugly":"\\\\\\<\\^here\\>","pretty":"โŒ‚"},
+          {"ugly":"\\\\\\<\\^undefined\\>","pretty":"โ–"},
+          {"ugly":"\\\\\\<\\^noindent\\>","pretty":"โ‡ค"},
+          {"ugly":"\\\\\\<\\^smallskip\\>","pretty":"โ”ˆ"},
+          {"ugly":"\\\\\\<\\^medskip\\>","pretty":"โ”‰"},
+          {"ugly":"\\\\\\<\\^bigskip\\>","pretty":"โ”"},
+          {"ugly":"\\\\\\<\\^item\\>","pretty":"โ–ช"},
+          {"ugly":"\\\\\\<\\^enum\\>","pretty":"โ–ธ"},
+          {"ugly":"\\\\\\<\\^descr\\>","pretty":"โžง"},
+          {"ugly":"\\\\\\<\\^footnote\\>","pretty":"โ‹"},
+          {"ugly":"\\\\\\<\\^verbatim\\>","pretty":"โ–ฉ"},
+          {"ugly":"\\\\\\<\\^theory_text\\>","pretty":"โฌš"},
+          {"ugly":"\\\\\\<\\^emph\\>","pretty":"โˆ—"},
+          {"ugly":"\\\\\\<\\^bold\\>","pretty":"โ™"},
+          {"ugly":"\\\\\\<\\^sub\\>","pretty":"โ‡ฉ"},
+          {"ugly":"\\\\\\<\\^sup\\>","pretty":"โ‡ง"},
+          {"ugly":"\\\\\\<\\^bsub\\>","pretty":"โ‡˜"},
+          {"ugly":"\\\\\\<\\^esub\\>","pretty":"โ‡™"},
+          {"ugly":"\\\\\\<\\^bsup\\>","pretty":"โ‡—"},
+          {"ugly":"\\\\\\<\\^esup\\>","pretty":"โ‡–"},
+          {"ugly":"\\\\\\<\\^file\\>","pretty":"๐Ÿ—"},
+          {"ugly":"\\\\\\<\\^dir\\>","pretty":"๐Ÿ—€"},
+          {"ugly":"\\\\\\<\\^url\\>","pretty":"๐ŸŒ"},
+          {"ugly":"\\\\\\<\\^doc\\>","pretty":"๐Ÿ““"},
+          {"ugly":"\\\\\\<\\^action\\>","pretty":"โ˜›"}]
+      }
+    ]
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Tools/VSCode/src/symbols.scala	Wed Jan 11 16:01:19 2017 +0100
@@ -0,0 +1,55 @@
+/*  Title:      Tools/VSCode/src/symbols.scala
+    Author:     Makarius
+
+Generate configuration for VSCode editor extension Prettify Symbols Mode.
+*/
+
+package isabelle.vscode
+
+
+import isabelle._
+
+
+object Symbols
+{
+  /* generate configuration */
+
+  def prettify_config: String =
+    """{
+  "prettifySymbolsMode.substitutions": [
+      {
+        "language": "isabelle",
+        "revealOn": "none",
+        "adjustCursorMovement": true,
+        "substitutions": [""" +
+          (for ((s, c) <- Symbol.codes)
+           yield
+            JSON.Format(
+              Map("ugly" -> Library.escape_regex(s),
+                "pretty" -> Library.escape_regex(Codepoint.string(c)))))
+            .mkString("\n          ", ",\n          ", "") +
+        """]
+      }
+    ]
+}"""
+
+
+  /* Isabelle tool wrapper */
+
+  val isabelle_tool = Isabelle_Tool("vscode_symbols",
+    "generate configuration for VSCode editor extension Prettify Symbols Mode", args =>
+  {
+    val getopts = Getopts("""
+Usage: isabelle vscode_symbols
+
+  Generate configuration for VSCode editor extension Prettify Symbols Mode.
+""")
+
+    val more_args = getopts(args)
+    if (more_args.nonEmpty) getopts.usage()
+
+    val output_path = Path.explode("isabelle-symbols.json")
+    Output.writeln(output_path.implode)
+    File.write_backup(output_path, prettify_config)
+  })
+}