| // A test file used to try and hit all of the syntax highlighting edge cases. |
| // This file doesn't necessarily compile/represent valid FIDL syntax. |
| library highlighting.test; |
| |
| const foo uint8 = 5; |
| |
| const hi string = "hiӨǽ‡\n"; |
| const ascii string = "this is ascii"; |
| |
| const string single_char_escape = "escaping \t"; |
| const string unicode_32 = "\u{12a4} unicode code point"; |
| const string more_unicode_32 = "\u{1234}\u{12}"; |
| |
| alias Foo = foo.bar.baz; |
| |
| alias OptionalChannel = zx.handle:<CHANNEL, zx.rights.DUPLICATE, optional>; |
| |
| // hi |
| type Foo = struct {}; |
| type Foo2 = resource struct {}; |
| type Bar = resource flexible union {}; |
| type Foo = flexible enum : uint32 {}; // |
| |
| type MyBits = bits : uint8 { |
| FOO = 0x01; |
| }; |
| |
| type MyEnum = enum : int16 { |
| FOO = 1; |
| }; |
| |
| @foobar |
| type Foo = struct { |
| f1 Bar; |
| @barfoo |
| f2 flexible union { |
| // hi |
| /// hello |
| 1: u1 Bar; // hi |
| 2: u2 vector<Foo>:<MY_SIZE, optional>; |
| /// hello |
| 3: u3 struct {}; |
| 4: reserved; |
| }; |
| f3 vector<struct { |
| // hi |
| f33 Bar; |
| }>:<10, optional>; // hi |
| // hi |
| f4 array<enum : uint32 { // hi |
| // hi |
| FOO = 1; |
| @foobar |
| BAR = 2; |
| }, 5>; |
| f5 bits { |
| FOO = 0x01; |
| BAR = 0x02; |
| }; |
| }; |
| |
| @foobar("hi") |
| protocol Foo { |
| compose foo.bar.baz; |
| |
| Foo(struct {}); |
| Foo() -> (); |
| Foo(struct { |
| f1 uint8; |
| }) -> (struct { |
| f2 uint8; |
| }); |
| Foo() -> (union { |
| 1: f1 uint8; |
| 2: f2 struct { |
| foo Bar; |
| }; |
| }) error uint32; |
| |
| // hi |
| @foo |
| @foo_bar("hi") |
| @baz(foo="hi", bar="bye") |
| Foo(struct { |
| f1 uint8; |
| }) -> (struct { |
| f2 uint8; |
| }); |
| |
| Foo(struct { |
| f1 Bar; |
| f2 uint8; |
| f3 vector<Bar>:10; |
| }); |
| |
| -> Foo(); |
| -> Foo(struct { |
| // hi |
| f1 Bar; //hi |
| f2 uint8; |
| // Should not be any highlighting here: |
| properties uint8; |
| }); |
| }; |
| |
| resource_definition SomeResource : uint32 { |
| properties { |
| f1 uint8; |
| }; |
| }; |
| |
| service Qux { |
| foo Foo:client_end; |
| bar Foo:<client_end>; |
| }; |