This applies to both namespaces and operations. The tags for a
operation is the union of the oeration and namespace tags.
Empty tags sections are added to an operation if no tags are specified.
Sample usage:
```
@tag("foo")
@tag("bar")
namespace test {
@tag("my_ops")
op create(@path id:int32): null;
}
```
* Setup prettier with config borrowed from azure-sdk-for-js
* Run prettier to format existing code
* Turn format on save on so VS Code with prettier will auto-format
* Add rush check-format / rush format to check formatting / run prettier on whole repo
* Add check-format to PR validation
1. Make throwDiagnostic take the target directly and figure out the
location rather than having the programmer call getSourceLocation.
2. If getting location or formatting message fails, include as much of
the diagnostic as possible in the internal compiler error.
Everywhere we throw an error now reports a location. Use
throwDiagnostic plus getSourceLocationOfXxx helpers going forward
for new errors. (We still need to do error recovery and not just
throw at the first sign of trouble, but that isn't part of this
initial pass.)
Fix duplicate name reporting in binder to report duplicates in
the same file as an error and to report locations of all
duplicates up to the first bound source file that introduced at
least one.
Fix issue where failed compilation was saying "Compilation
completed successfully" and ensure process exits with non-zero
code on failure.
The scanner was doing a lot of work per character. While this may have
been a performance problem, the motivation here is maintainability. This
change makes it so that advancing by one character is simply Scanner.position++.
It also does more work lazily: allocating substrings on demand.
Highlights:
* Remove unused tokens
* Rename Kind to Token
* Remove token position map
* Remove character size bookkeeping
* Remove (ch, chNext, chNext) state
* Convert class to closure
Note: Line and column tracking was temporarily removed to facilitate
refactoring and will be re-added in the following change.