1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>highlight.jsonnet</title>
<meta name="generator" content="KF5::SyntaxHighlighting - Definition (Jsonnet) - Theme (Breeze Dark)"/>
</head><body style="background-color:#232629;color:#cfcfc2"><pre>
<span style="font-weight:bold">local</span> utils <span style="color:#3f8058">=</span> <span style="font-weight:bold">import</span> <span style="color:#f44f4f">'utils.libsonnet'</span><span style="color:#3f8058">;</span>
<span style="color:#7a7c7d">/* A C-style</span>
<span style="color:#7a7c7d"> comment.</span>
<span style="color:#7a7c7d">*/</span>
<span style="color:#7a7c7d"># A Python-style comment.</span>
<span style="color:#7a7c7d">// Define a "local" function.</span>
<span style="color:#7a7c7d">// Default arguments are like Python:</span>
<span style="font-weight:bold">local</span> <span style="color:#8e44ad">my_function</span><span style="color:#3f8058">(</span>x<span style="color:#3f8058">,</span> y<span style="color:#3f8058">=</span><span style="color:#f67400">10</span><span style="color:#3f8058">)</span> <span style="color:#3f8058">=</span> x <span style="color:#3f8058">+</span> y<span style="color:#3f8058">;</span>
<span style="font-weight:bold">local</span> object <span style="color:#3f8058">=</span> <span style="color:#3f8058">{</span>
<span style="color:#7a7c7d">// A method</span>
<span style="color:#8e44ad">my_method</span><span style="color:#3f8058">(</span>x<span style="color:#3f8058">):</span> x <span style="color:#3f8058">*</span> x<span style="color:#3f8058">,</span>
<span style="color:#3f8058">};</span>
<span style="font-weight:bold">local</span> string1 <span style="color:#3f8058">=</span> <span style="color:#f44f4f">'Farmer</span><span style="color:#3daee9">\'</span><span style="color:#f44f4f">s Gin'</span><span style="color:#3f8058">;</span>
<span style="font-weight:bold">local</span> string_newline1 <span style="color:#3f8058">=</span> <span style="color:#f44f4f">'this is</span>
<span style="color:#f44f4f">a valid string</span>
<span style="color:#f44f4f">with newlines'</span><span style="color:#3f8058">;</span>
<span style="font-weight:bold">local</span> string_newline2 <span style="color:#3f8058">=</span> <span style="color:#f44f4f">"this is</span>
<span style="color:#f44f4f">also</span>
<span style="color:#f44f4f">a valid string"</span><span style="color:#3f8058">;</span>
<span style="font-weight:bold">local</span> timcollins <span style="color:#3f8058">=</span> <span style="color:#f44f4f">|||</span>
<span style="color:#f44f4f"> The Tom Collins is essentially gin and</span>
<span style="color:#f44f4f"> lemonade. The bitters add complexity.</span>
<span style="color:#f44f4f">|||</span><span style="color:#3f8058">;</span>
<span style="font-weight:bold">local</span> obj <span style="color:#3f8058">=</span> <span style="color:#3f8058">{</span>
<span style="color:#f44f4f">"foo"</span><span style="color:#3f8058">:</span> <span style="color:#f67400">1</span><span style="color:#3f8058">,</span>
<span style="color:#f44f4f">"bar"</span><span style="color:#3f8058">:</span> <span style="color:#3f8058">{</span>
<span style="color:#f44f4f">"arr"</span><span style="color:#3f8058">:</span> <span style="color:#3f8058">[</span><span style="color:#f67400">1</span><span style="color:#3f8058">,</span> <span style="color:#f67400">2</span><span style="color:#3f8058">,</span> <span style="color:#f67400">3</span><span style="color:#3f8058">],</span>
<span style="color:#f44f4f">"number"</span><span style="color:#3f8058">:</span> <span style="color:#f67400">10</span> <span style="color:#3f8058">+</span> <span style="color:#f67400">7</span><span style="color:#3f8058">,</span>
<span style="color:#3f8058">},</span>
<span style="color:#3f8058">};</span>
<span style="color:#7a7c7d">// Define a local function.</span>
<span style="color:#7a7c7d">// Default arguments are like Python:</span>
<span style="font-weight:bold">local</span> <span style="color:#8e44ad">my_function</span><span style="color:#3f8058">(</span>x<span style="color:#3f8058">,</span> y<span style="color:#3f8058">=</span><span style="color:#f67400">10</span><span style="color:#3f8058">)</span> <span style="color:#3f8058">=</span> x <span style="color:#3f8058">+</span> y<span style="color:#3f8058">;</span>
<span style="color:#7a7c7d">// Define a local multiline function.</span>
<span style="font-weight:bold">local</span> <span style="color:#8e44ad">multiline_function</span><span style="color:#3f8058">(</span>x<span style="color:#3f8058">)</span> <span style="color:#3f8058">=</span>
<span style="color:#7a7c7d">// One can nest locals.</span>
<span style="font-weight:bold">local</span> temp <span style="color:#3f8058">=</span> x <span style="color:#3f8058">*</span> <span style="color:#f67400">2</span><span style="color:#3f8058">;</span>
<span style="color:#7a7c7d">// Every local ends with a semi-colon.</span>
<span style="color:#3f8058">[</span>temp<span style="color:#3f8058">,</span> temp <span style="color:#3f8058">+</span> <span style="color:#f67400">1</span><span style="color:#3f8058">];</span>
<span style="font-weight:bold">local</span> object <span style="color:#3f8058">=</span> <span style="color:#3f8058">{</span>
<span style="color:#7a7c7d">// A method</span>
<span style="color:#8e44ad">my_method</span><span style="color:#3f8058">(</span>x<span style="color:#3f8058">):</span> x <span style="color:#3f8058">*</span> x<span style="color:#3f8058">,</span>
<span style="color:#3f8058">};</span>
<span style="font-weight:bold">local</span> large <span style="color:#3f8058">=</span> true<span style="color:#3f8058">;</span>
<span style="color:#3f8058">{</span>
<span style="color:#7a7c7d">// Functions are first class citizens.</span>
call_inline_function<span style="color:#3f8058">:</span>
<span style="color:#3f8058">(</span><span style="color:#8e44ad">function</span><span style="color:#3f8058">(</span>x<span style="color:#3f8058">)</span> x <span style="color:#3f8058">*</span> x<span style="color:#3f8058">)(</span><span style="color:#f67400">5</span><span style="color:#3f8058">),</span>
call_multiline_function<span style="color:#3f8058">:</span> <span style="color:#8e44ad">multiline_function</span><span style="color:#3f8058">(</span><span style="color:#f67400">4</span><span style="color:#3f8058">),</span>
<span style="color:#7a7c7d">// Using the variable fetches the function,</span>
<span style="color:#7a7c7d">// the parens call the function.</span>
call<span style="color:#3f8058">:</span> <span style="color:#8e44ad">my_function</span><span style="color:#3f8058">(</span><span style="color:#f67400">2</span><span style="color:#3f8058">),</span>
<span style="color:#7a7c7d">// Like python, parameters can be named at</span>
<span style="color:#7a7c7d">// call time.</span>
named_params<span style="color:#3f8058">:</span> <span style="color:#8e44ad">my_function</span><span style="color:#3f8058">(</span>x<span style="color:#3f8058">=</span><span style="color:#f67400">2</span><span style="color:#3f8058">),</span>
<span style="color:#7a7c7d">// This allows changing their order</span>
named_params2<span style="color:#3f8058">:</span> <span style="color:#8e44ad">my_function</span><span style="color:#3f8058">(</span>y<span style="color:#3f8058">=</span><span style="color:#f67400">3</span><span style="color:#3f8058">,</span> x<span style="color:#3f8058">=</span><span style="color:#f67400">2</span><span style="color:#3f8058">),</span>
<span style="color:#7a7c7d">// object.my_method returns the function,</span>
<span style="color:#7a7c7d">// which is then called like any other.</span>
call_method1<span style="color:#3f8058">:</span> object<span style="color:#3f8058">.</span><span style="color:#8e44ad">my_method</span><span style="color:#3f8058">(</span><span style="color:#f67400">3</span><span style="color:#3f8058">),</span>
standard_lib<span style="color:#3f8058">:</span>
<span style="font-weight:bold">std</span><span style="color:#3f8058">.</span><span style="color:#8e44ad">join</span><span style="color:#3f8058">(</span><span style="color:#f44f4f">' '</span><span style="color:#3f8058">,</span> <span style="font-weight:bold">std</span><span style="color:#3f8058">.</span><span style="color:#8e44ad">split</span><span style="color:#3f8058">(</span><span style="color:#f44f4f">"foo/bar"</span><span style="color:#3f8058">,</span> <span style="color:#f44f4f">'/'</span><span style="color:#3f8058">)),</span>
len<span style="color:#3f8058">:</span> <span style="color:#3f8058">[</span>
<span style="font-weight:bold">std</span><span style="color:#3f8058">.</span><span style="color:#8e44ad">length</span><span style="color:#3f8058">(</span><span style="color:#f44f4f">'hello'</span><span style="color:#3f8058">),</span>
<span style="font-weight:bold">std</span><span style="color:#3f8058">.</span><span style="color:#8e44ad">length</span><span style="color:#3f8058">([</span><span style="color:#f67400">1</span><span style="color:#3f8058">,</span> <span style="color:#f67400">2</span><span style="color:#3f8058">,</span> <span style="color:#f67400">3</span><span style="color:#3f8058">]),</span>
<span style="color:#3f8058">],</span>
cocktails<span style="color:#3f8058">:</span> <span style="color:#3f8058">{</span>
<span style="font-weight:bold">local</span> factor <span style="color:#3f8058">=</span> <span style="color:#fdbc4b;font-weight:bold">if</span> large <span style="color:#fdbc4b;font-weight:bold">then</span> <span style="color:#f67400">2</span> <span style="color:#fdbc4b;font-weight:bold">else</span> <span style="color:#f67400">1</span><span style="color:#3f8058">,</span>
<span style="color:#7a7c7d">// Ingredient quantities are in fl oz.</span>
<span style="color:#f44f4f">'Tom Collins'</span><span style="color:#3f8058">:</span> <span style="color:#3f8058">{</span>
ingredients<span style="color:#3f8058">:</span> <span style="color:#3f8058">[</span>
<span style="color:#3f8058">{</span> kind<span style="color:#3f8058">:</span> string1<span style="color:#3f8058">,</span> qty<span style="color:#3f8058">:</span> <span style="color:#f67400">1.5</span><span style="color:#3f8058">*</span>factor <span style="color:#3f8058">},</span>
<span style="color:#3f8058">{</span> kind<span style="color:#3f8058">:</span> <span style="color:#f44f4f">'Lemon'</span><span style="color:#3f8058">,</span> qty<span style="color:#3f8058">:</span> <span style="color:#f67400">1</span> <span style="color:#3f8058">},</span>
<span style="color:#3f8058">{</span> kind<span style="color:#3f8058">:</span> <span style="color:#f44f4f">'Simple Syrup'</span><span style="color:#3f8058">,</span> qty<span style="color:#3f8058">:</span> <span style="color:#f67400">0.5E+1</span> <span style="color:#3f8058">},</span>
<span style="color:#3f8058">{</span> kind<span style="color:#3f8058">:</span> <span style="color:#f44f4f">'Soda'</span><span style="color:#3f8058">,</span> qty<span style="color:#3f8058">:</span> <span style="color:#f67400">2</span> <span style="color:#3f8058">},</span>
<span style="color:#3f8058">{</span> kind<span style="color:#3f8058">:</span> <span style="color:#f44f4f">'Angostura'</span><span style="color:#3f8058">,</span> qty<span style="color:#3f8058">:</span> <span style="color:#f44f4f">'dash'</span> <span style="color:#3f8058">},</span>
<span style="color:#3f8058">],</span>
garnish<span style="color:#3f8058">:</span> <span style="color:#f44f4f">'Maraschino Cherry'</span><span style="color:#3f8058">,</span>
served<span style="color:#3f8058">:</span> <span style="color:#f44f4f">'Tall'</span><span style="color:#3f8058">,</span>
description<span style="color:#3f8058">:</span> timcollins<span style="color:#3f8058">,</span>
<span style="color:#3f8058">},</span>
<span style="color:#3f8058">},</span>
<span style="color:#3f8058">}</span>
</pre></body></html>
|