Warning, /frameworks/syntax-highlighting/autotests/input/highlight.jsonnet is written in an unsupported language. File is not indexed.
0001 local utils = import 'utils.libsonnet';
0002
0003 /* A C-style
0004 comment.
0005 */
0006 # A Python-style comment.
0007
0008 // Define a "local" function.
0009 // Default arguments are like Python:
0010 local my_function(x, y=10) = x + y;
0011
0012 local object = {
0013 // A method
0014 my_method(x): x * x,
0015 };
0016
0017 local string1 = 'Farmer\'s Gin';
0018 local string_newline1 = 'this is
0019 a valid string
0020 with newlines';
0021 local string_newline2 = "this is
0022 also
0023 a valid string";
0024
0025 local timcollins = |||
0026 The Tom Collins is essentially gin and
0027 lemonade. The bitters add complexity.
0028 |||;
0029
0030 local obj = {
0031 "foo": 1,
0032 "bar": {
0033 "arr": [1, 2, 3],
0034 "number": 10 + 7,
0035 },
0036 };
0037
0038 // Define a local function.
0039 // Default arguments are like Python:
0040 local my_function(x, y=10) = x + y;
0041
0042 // Define a local multiline function.
0043 local multiline_function(x) =
0044 // One can nest locals.
0045 local temp = x * 2;
0046 // Every local ends with a semi-colon.
0047 [temp, temp + 1];
0048
0049 local object = {
0050 // A method
0051 my_method(x): x * x,
0052 };
0053
0054 local large = true;
0055
0056 {
0057
0058 // Functions are first class citizens.
0059 call_inline_function:
0060 (function(x) x * x)(5),
0061
0062 call_multiline_function: multiline_function(4),
0063
0064 // Using the variable fetches the function,
0065 // the parens call the function.
0066 call: my_function(2),
0067
0068 // Like python, parameters can be named at
0069 // call time.
0070 named_params: my_function(x=2),
0071 // This allows changing their order
0072 named_params2: my_function(y=3, x=2),
0073
0074 // object.my_method returns the function,
0075 // which is then called like any other.
0076 call_method1: object.my_method(3),
0077
0078 standard_lib:
0079 std.join(' ', std.split("foo/bar", '/')),
0080 len: [
0081 std.length('hello'),
0082 std.length([1, 2, 3]),
0083 ],
0084
0085 cocktails: {
0086 local factor = if large then 2 else 1,
0087
0088 // Ingredient quantities are in fl oz.
0089 'Tom Collins': {
0090 ingredients: [
0091 { kind: string1, qty: 1.5*factor },
0092 { kind: 'Lemon', qty: 1 },
0093 { kind: 'Simple Syrup', qty: 0.5E+1 },
0094 { kind: 'Soda', qty: 2 },
0095 { kind: 'Angostura', qty: 'dash' },
0096 ],
0097 garnish: 'Maraschino Cherry',
0098 served: 'Tall',
0099 description: timcollins,
0100 },
0101 },
0102 }