[vscode] Add type constructor syntax highlighting
This change makes 3 related improvements:
* The `layout-member-*`-like repository definitions are all simplified
by extracting out a new repository definition group,
`type-constructor-*`, which handles highlighting for type constructors
separately. All locations that make use of type constructors save
type aliases are modified to use this new definition instead of trying
to match type constructor shapes manually.
* Type parameter matchers are simplified. This is possible because we
will always have 1 or 2 elements in a type parameter list: a type
constructor (or protocol, which for highlighting purposes can be
considered equivalent), and optionally a numerical constant (if the
parameterized type is an array, like `array<Foo, 5>`).
* Named payloads are highlighted as types. This is also made possible by
the type constructor refactor described above, as all
`method-argument` patterns are now just `type-constructor`.
Change-Id: Ia1c18427c349fa15252fb6d08cbef726fb8be098
Reviewed-on: https://fuchsia-review.googlesource.com/c/fidl-misc/+/661809
Reviewed-by: Mitchell Kember <mkember@google.com>
3 files changed