@typespec/compiler 0.57.0-dev.0 → 0.57.0-dev.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/dist/generated-defs/TypeSpec.d.ts +9 -9
  2. package/dist/generated-defs/TypeSpec.d.ts.map +1 -1
  3. package/dist/manifest.js +2 -2
  4. package/dist/src/core/binder.d.ts.map +1 -1
  5. package/dist/src/core/binder.js +15 -2
  6. package/dist/src/core/binder.js.map +1 -1
  7. package/dist/src/core/checker.d.ts +10 -8
  8. package/dist/src/core/checker.d.ts.map +1 -1
  9. package/dist/src/core/checker.js +1576 -241
  10. package/dist/src/core/checker.js.map +1 -1
  11. package/dist/src/core/compiler-code-fixes/model-to-object-literal.codefix.d.ts +6 -0
  12. package/dist/src/core/compiler-code-fixes/model-to-object-literal.codefix.d.ts.map +1 -0
  13. package/dist/src/core/compiler-code-fixes/model-to-object-literal.codefix.js +15 -0
  14. package/dist/src/core/compiler-code-fixes/model-to-object-literal.codefix.js.map +1 -0
  15. package/dist/src/core/compiler-code-fixes/tuple-to-array-value.codefix.d.ts +6 -0
  16. package/dist/src/core/compiler-code-fixes/tuple-to-array-value.codefix.d.ts.map +1 -0
  17. package/dist/src/core/compiler-code-fixes/tuple-to-array-value.codefix.js +15 -0
  18. package/dist/src/core/compiler-code-fixes/tuple-to-array-value.codefix.js.map +1 -0
  19. package/dist/src/core/diagnostic-creator.d.ts.map +1 -1
  20. package/dist/src/core/diagnostic-creator.js +1 -2
  21. package/dist/src/core/diagnostic-creator.js.map +1 -1
  22. package/dist/src/core/diagnostics.js +2 -2
  23. package/dist/src/core/diagnostics.js.map +1 -1
  24. package/dist/src/core/helpers/index.d.ts +1 -1
  25. package/dist/src/core/helpers/index.d.ts.map +1 -1
  26. package/dist/src/core/helpers/index.js +3 -1
  27. package/dist/src/core/helpers/index.js.map +1 -1
  28. package/dist/src/core/helpers/string-template-utils.d.ts +6 -6
  29. package/dist/src/core/helpers/string-template-utils.d.ts.map +1 -1
  30. package/dist/src/core/helpers/string-template-utils.js +20 -33
  31. package/dist/src/core/helpers/string-template-utils.js.map +1 -1
  32. package/dist/src/core/helpers/type-name-utils.d.ts +3 -2
  33. package/dist/src/core/helpers/type-name-utils.d.ts.map +1 -1
  34. package/dist/src/core/helpers/type-name-utils.js +57 -8
  35. package/dist/src/core/helpers/type-name-utils.js.map +1 -1
  36. package/dist/src/core/index.d.ts +3 -1
  37. package/dist/src/core/index.d.ts.map +1 -1
  38. package/dist/src/core/index.js +3 -1
  39. package/dist/src/core/index.js.map +1 -1
  40. package/dist/src/core/intrinsic-type-state.d.ts +57 -0
  41. package/dist/src/core/intrinsic-type-state.d.ts.map +1 -0
  42. package/dist/src/core/intrinsic-type-state.js +150 -0
  43. package/dist/src/core/intrinsic-type-state.js.map +1 -0
  44. package/dist/src/core/js-marshaller.d.ts +13 -0
  45. package/dist/src/core/js-marshaller.d.ts.map +1 -0
  46. package/dist/src/core/js-marshaller.js +79 -0
  47. package/dist/src/core/js-marshaller.js.map +1 -0
  48. package/dist/src/core/library.d.ts +2 -1
  49. package/dist/src/core/library.d.ts.map +1 -1
  50. package/dist/src/core/library.js +3 -0
  51. package/dist/src/core/library.js.map +1 -1
  52. package/dist/src/core/messages.d.ts +235 -2
  53. package/dist/src/core/messages.d.ts.map +1 -1
  54. package/dist/src/core/messages.js +74 -1
  55. package/dist/src/core/messages.js.map +1 -1
  56. package/dist/src/core/numeric-ranges.d.ts +51 -0
  57. package/dist/src/core/numeric-ranges.d.ts.map +1 -0
  58. package/dist/src/core/numeric-ranges.js +30 -0
  59. package/dist/src/core/numeric-ranges.js.map +1 -0
  60. package/dist/src/core/parser.d.ts.map +1 -1
  61. package/dist/src/core/parser.js +232 -5
  62. package/dist/src/core/parser.js.map +1 -1
  63. package/dist/src/core/program.d.ts.map +1 -1
  64. package/dist/src/core/program.js +2 -2
  65. package/dist/src/core/program.js.map +1 -1
  66. package/dist/src/core/projector.d.ts.map +1 -1
  67. package/dist/src/core/projector.js +10 -2
  68. package/dist/src/core/projector.js.map +1 -1
  69. package/dist/src/core/scanner.d.ts +42 -37
  70. package/dist/src/core/scanner.d.ts.map +1 -1
  71. package/dist/src/core/scanner.js +67 -46
  72. package/dist/src/core/scanner.js.map +1 -1
  73. package/dist/src/core/semantic-walker.d.ts.map +1 -1
  74. package/dist/src/core/semantic-walker.js +12 -0
  75. package/dist/src/core/semantic-walker.js.map +1 -1
  76. package/dist/src/core/type-utils.d.ts +18 -7
  77. package/dist/src/core/type-utils.d.ts.map +1 -1
  78. package/dist/src/core/type-utils.js +24 -5
  79. package/dist/src/core/type-utils.js.map +1 -1
  80. package/dist/src/core/types.d.ts +224 -45
  81. package/dist/src/core/types.d.ts.map +1 -1
  82. package/dist/src/core/types.js +8 -0
  83. package/dist/src/core/types.js.map +1 -1
  84. package/dist/src/emitter-framework/type-emitter.d.ts.map +1 -1
  85. package/dist/src/emitter-framework/type-emitter.js +6 -0
  86. package/dist/src/emitter-framework/type-emitter.js.map +1 -1
  87. package/dist/src/formatter/print/comment-handler.d.ts.map +1 -1
  88. package/dist/src/formatter/print/comment-handler.js +22 -0
  89. package/dist/src/formatter/print/comment-handler.js.map +1 -1
  90. package/dist/src/formatter/print/printer.d.ts +11 -5
  91. package/dist/src/formatter/print/printer.d.ts.map +1 -1
  92. package/dist/src/formatter/print/printer.js +95 -4
  93. package/dist/src/formatter/print/printer.js.map +1 -1
  94. package/dist/src/lib/decorators.d.ts +3 -46
  95. package/dist/src/lib/decorators.d.ts.map +1 -1
  96. package/dist/src/lib/decorators.js +28 -104
  97. package/dist/src/lib/decorators.js.map +1 -1
  98. package/dist/src/lib/intrinsic-decorators.d.ts +2 -2
  99. package/dist/src/lib/intrinsic-decorators.d.ts.map +1 -1
  100. package/dist/src/lib/intrinsic-decorators.js +7 -0
  101. package/dist/src/lib/intrinsic-decorators.js.map +1 -1
  102. package/dist/src/server/classify.d.ts.map +1 -1
  103. package/dist/src/server/classify.js +10 -0
  104. package/dist/src/server/classify.js.map +1 -1
  105. package/dist/src/server/completion.d.ts.map +1 -1
  106. package/dist/src/server/completion.js +6 -0
  107. package/dist/src/server/completion.js.map +1 -1
  108. package/dist/src/server/serverlib.js +2 -2
  109. package/dist/src/server/serverlib.js.map +1 -1
  110. package/dist/src/server/tmlanguage.d.ts +1 -1
  111. package/dist/src/server/tmlanguage.d.ts.map +1 -1
  112. package/dist/src/server/tmlanguage.js +147 -20
  113. package/dist/src/server/tmlanguage.js.map +1 -1
  114. package/dist/src/server/type-details.js +1 -2
  115. package/dist/src/server/type-details.js.map +1 -1
  116. package/dist/src/server/type-signature.js +15 -6
  117. package/dist/src/server/type-signature.js.map +1 -1
  118. package/dist/typespec.tmLanguage +408 -17
  119. package/lib/intrinsics.tsp +55 -5
  120. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"type-signature.js","sourceRoot":"","sources":["../../../src/server/type-signature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEjF,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAUL,UAAU,GAIX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAExD,gBAAgB;AAChB,MAAM,UAAU,kBAAkB,CAAC,OAAgB,EAAE,GAAQ;IAC3D,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACjC,QAAQ,IAAI,EAAE,IAAI,EAAE,CAAC;QACnB,KAAK,UAAU,CAAC,cAAc;YAC5B,OAAO,KAAK,CAAC,SAAS,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9D,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAsB;IAC9C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO,CAAC;QACb,KAAK,WAAW,CAAC;QACjB,KAAK,OAAO,CAAC;QACb,KAAK,WAAW;YACd,OAAO,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3E,KAAK,WAAW;YACd,OAAO,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;QAE5C,KAAK,UAAU;YACb,OAAO,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3C,KAAK,WAAW;YACd,OAAO,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,KAAK,OAAO;YACV,OAAO,WAAW,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,KAAK,QAAQ;YACX,+FAA+F;YAC/F,OAAO,aAAa,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QACjD,KAAK,SAAS;YACZ,OAAO,cAAc,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9D,KAAK,QAAQ;YACX,OAAO,aAAa,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;QACrD,KAAK,gBAAgB;YACnB,OAAO,sBAAsB,KAAK,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACzE,KAAK,oBAAoB;YACvB,OAAO,2BAA2B,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACpE,KAAK,WAAW;YACd,OAAO,EAAE,CAAC;QACZ,KAAK,mBAAmB;YACtB,OAAO,yBAAyB,KAAK,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC/E,KAAK,eAAe;YAClB,OAAO,qBAAqB,KAAK,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACvE,KAAK,YAAY;YACf,OAAO,kBAAkB,KAAK,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACjE,KAAK,mBAAmB;YACtB,OAAO,yBAAyB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3D,KAAK,cAAc;YACjB,OAAO,oBAAoB,KAAK,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACrE,KAAK,OAAO;YACV,OAAO,aAAa,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;QAC7E,KAAK,YAAY;YACf,OAAO,cAAc,CAAC;QACxB,KAAK,QAAQ;YACX,OAAO,UAAU,CAAC;QACpB;YACE,MAAM,YAAY,GAAU,IAAI,CAAC;YACjC,cAAc,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAe;IAC5C,MAAM,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC;IAClG,OAAO,OAAO,EAAE,GAAG,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACtD,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAkB;IAC9C,MAAM,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,OAAO,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,oBAAoB,CACrF,IAAI,CAAC,UAAU,CAChB,EAAE,CAAC;AACN,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAe;IAC5C,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAC3F,OAAO,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;AACvG,CAAC;AAED,SAAS,6BAA6B,CAAC,SAA4B;IACjE,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/C,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,KAAK,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;AACxF,CAAC;AAED,SAAS,0BAA0B,CAAC,cAA8B;IAChE,OAAO,CACL,GAAG;QACH;YACE,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBAChC,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACrF,CAAC,CAAC;SACH,CAAC,IAAI,CAAC,EAAE,CAAC;QACV,GAAG,CACJ,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,QAAuB;IACxD,MAAM,EAAE,GAAG,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO,GAAG,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;AAClF,CAAC;AAED,SAAS,wBAAwB,CAAC,OAAqB;IACrD,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IACD,MAAM,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACvC,OAAO,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;AAChF,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAkB;IAChD,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;IACpF,OAAO,KAAK,KAAK,SAAS;QACxB,CAAC,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QAChC,CAAC,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;AAC/C,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAyB;IAClD,MAAM,QAAQ,GAAG,2BAA2B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC1D,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1E,CAAC;AAED,SAAS,YAAY,CAAC,MAAuD;IAC3E,IACE,CAAC,MAAM,EAAE,IAAI;QACb,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;QAC/B,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,EACvD,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,UAAU,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAChD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,UAAU,GAAG,GAAG,CAAC;AAC1B,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAU;IACtC,OAAO,WAAW,CAAC,IAAI,EAAE;QACvB,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,KAAK,CAAC,IAAY;IACzB,OAAO,mBAAmB,IAAI,UAAU,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"type-signature.js","sourceRoot":"","sources":["../../../src/server/type-signature.ts"],"names":[],"mappings":"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"}
@@ -21,18 +21,18 @@
21
21
  </array>
22
22
  <key>repository</key>
23
23
  <dict>
24
- <key>alias-statement</key>
24
+ <key>alias-id</key>
25
25
  <dict>
26
26
  <key>name</key>
27
- <string>meta.alias-statement.typespec</string>
27
+ <string>meta.alias-id.typespec</string>
28
28
  <key>begin</key>
29
- <string>\b(alias)\b</string>
29
+ <string>(=)\s*</string>
30
30
  <key>beginCaptures</key>
31
31
  <dict>
32
32
  <key>1</key>
33
33
  <dict>
34
34
  <key>name</key>
35
- <string>keyword.other.tsp</string>
35
+ <string>keyword.operator.assignment.tsp</string>
36
36
  </dict>
37
37
  </dict>
38
38
  <key>end</key>
@@ -41,15 +41,40 @@
41
41
  <array>
42
42
  <dict>
43
43
  <key>include</key>
44
- <string>#type-parameters</string>
44
+ <string>#expression</string>
45
+ </dict>
46
+ </array>
47
+ </dict>
48
+ <key>alias-statement</key>
49
+ <dict>
50
+ <key>name</key>
51
+ <string>meta.alias-statement.typespec</string>
52
+ <key>begin</key>
53
+ <string>\b(alias)\b\s+(\b[_$[:alpha:]][_$[:alnum:]]*\b|`(?:[^`\\]|\\.)*`)\s*</string>
54
+ <key>beginCaptures</key>
55
+ <dict>
56
+ <key>1</key>
57
+ <dict>
58
+ <key>name</key>
59
+ <string>keyword.other.tsp</string>
60
+ </dict>
61
+ <key>2</key>
62
+ <dict>
63
+ <key>name</key>
64
+ <string>entity.name.type.tsp</string>
45
65
  </dict>
66
+ </dict>
67
+ <key>end</key>
68
+ <string>(?=,|;|@|\)|\}|\b(?:extern)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)</string>
69
+ <key>patterns</key>
70
+ <array>
46
71
  <dict>
47
72
  <key>include</key>
48
- <string>#operator-assignment</string>
73
+ <string>#alias-id</string>
49
74
  </dict>
50
75
  <dict>
51
76
  <key>include</key>
52
- <string>#expression</string>
77
+ <string>#type-parameters</string>
53
78
  </dict>
54
79
  </array>
55
80
  </dict>
@@ -58,7 +83,7 @@
58
83
  <key>name</key>
59
84
  <string>meta.augment-decorator-statement.typespec</string>
60
85
  <key>begin</key>
61
- <string>((@@)\b[_$[:alpha:]]([_$[:alnum:]]|\.[_$[:alpha:]])*\b)</string>
86
+ <string>((@@)\b[_$[:alpha:]](?:[_$[:alnum:]]|\.[_$[:alpha:]])*\b)</string>
62
87
  <key>beginCaptures</key>
63
88
  <dict>
64
89
  <key>1</key>
@@ -102,12 +127,94 @@
102
127
  <key>match</key>
103
128
  <string>\b(true|false)\b</string>
104
129
  </dict>
130
+ <key>callExpression</key>
131
+ <dict>
132
+ <key>name</key>
133
+ <string>meta.callExpression.typespec</string>
134
+ <key>begin</key>
135
+ <string>(\b[_$[:alpha:]](?:[_$[:alnum:]]|\.[_$[:alpha:]])*\b)\s*(\()</string>
136
+ <key>beginCaptures</key>
137
+ <dict>
138
+ <key>1</key>
139
+ <dict>
140
+ <key>name</key>
141
+ <string>entity.name.function.tsp</string>
142
+ </dict>
143
+ <key>2</key>
144
+ <dict>
145
+ <key>name</key>
146
+ <string>punctuation.parenthesis.open.tsp</string>
147
+ </dict>
148
+ </dict>
149
+ <key>end</key>
150
+ <string>\)</string>
151
+ <key>endCaptures</key>
152
+ <dict>
153
+ <key>0</key>
154
+ <dict>
155
+ <key>name</key>
156
+ <string>punctuation.parenthesis.close.tsp</string>
157
+ </dict>
158
+ </dict>
159
+ <key>patterns</key>
160
+ <array>
161
+ <dict>
162
+ <key>include</key>
163
+ <string>#token</string>
164
+ </dict>
165
+ <dict>
166
+ <key>include</key>
167
+ <string>#expression</string>
168
+ </dict>
169
+ <dict>
170
+ <key>include</key>
171
+ <string>#punctuation-comma</string>
172
+ </dict>
173
+ </array>
174
+ </dict>
175
+ <key>const-statement</key>
176
+ <dict>
177
+ <key>name</key>
178
+ <string>meta.const-statement.typespec</string>
179
+ <key>begin</key>
180
+ <string>\b(const)\b\s+(\b[_$[:alpha:]][_$[:alnum:]]*\b|`(?:[^`\\]|\\.)*`)</string>
181
+ <key>beginCaptures</key>
182
+ <dict>
183
+ <key>1</key>
184
+ <dict>
185
+ <key>name</key>
186
+ <string>keyword.other.tsp</string>
187
+ </dict>
188
+ <key>2</key>
189
+ <dict>
190
+ <key>name</key>
191
+ <string>variable.name.tsp</string>
192
+ </dict>
193
+ </dict>
194
+ <key>end</key>
195
+ <string>(?=,|;|@|\)|\}|\b(?:extern)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)</string>
196
+ <key>patterns</key>
197
+ <array>
198
+ <dict>
199
+ <key>include</key>
200
+ <string>#type-annotation</string>
201
+ </dict>
202
+ <dict>
203
+ <key>include</key>
204
+ <string>#operator-assignment</string>
205
+ </dict>
206
+ <dict>
207
+ <key>include</key>
208
+ <string>#expression</string>
209
+ </dict>
210
+ </array>
211
+ </dict>
105
212
  <key>decorator</key>
106
213
  <dict>
107
214
  <key>name</key>
108
215
  <string>meta.decorator.typespec</string>
109
216
  <key>begin</key>
110
- <string>((@)\b[_$[:alpha:]]([_$[:alnum:]]|\.[_$[:alpha:]])*\b)</string>
217
+ <string>((@)\b[_$[:alpha:]](?:[_$[:alnum:]]|\.[_$[:alpha:]])*\b)</string>
111
218
  <key>beginCaptures</key>
112
219
  <dict>
113
220
  <key>1</key>
@@ -518,10 +625,22 @@
518
625
  <key>include</key>
519
626
  <string>#valueof</string>
520
627
  </dict>
628
+ <dict>
629
+ <key>include</key>
630
+ <string>#typeof</string>
631
+ </dict>
521
632
  <dict>
522
633
  <key>include</key>
523
634
  <string>#type-arguments</string>
524
635
  </dict>
636
+ <dict>
637
+ <key>include</key>
638
+ <string>#object-literal</string>
639
+ </dict>
640
+ <dict>
641
+ <key>include</key>
642
+ <string>#tuple-literal</string>
643
+ </dict>
525
644
  <dict>
526
645
  <key>include</key>
527
646
  <string>#tuple-expression</string>
@@ -530,6 +649,10 @@
530
649
  <key>include</key>
531
650
  <string>#model-expression</string>
532
651
  </dict>
652
+ <dict>
653
+ <key>include</key>
654
+ <string>#callExpression</string>
655
+ </dict>
533
656
  <dict>
534
657
  <key>include</key>
535
658
  <string>#identifier-expression</string>
@@ -1078,6 +1201,87 @@
1078
1201
  <key>match</key>
1079
1202
  <string>(?:\b(?&lt;!\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\b(?!\$)|\b(?&lt;!\$)0(?:b|B)[01][01_]*(n)?\b(?!\$)|(?&lt;!\$)(?:(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\b)|(?:\b[0-9][0-9_]*(\.)[eE][+-]?[0-9][0-9_]*(n)?\b)|(?:\B(\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\b)|(?:\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\b)|(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*(n)?\b)|(?:\b[0-9][0-9_]*(\.)(n)?\B)|(?:\B(\.)[0-9][0-9_]*(n)?\b)|(?:\b[0-9][0-9_]*(n)?\b(?!\.)))(?!\$))</string>
1080
1203
  </dict>
1204
+ <key>object-literal</key>
1205
+ <dict>
1206
+ <key>name</key>
1207
+ <string>meta.object-literal.typespec</string>
1208
+ <key>begin</key>
1209
+ <string>#\{</string>
1210
+ <key>beginCaptures</key>
1211
+ <dict>
1212
+ <key>0</key>
1213
+ <dict>
1214
+ <key>name</key>
1215
+ <string>punctuation.hashcurlybrace.open.tsp</string>
1216
+ </dict>
1217
+ </dict>
1218
+ <key>end</key>
1219
+ <string>\}</string>
1220
+ <key>endCaptures</key>
1221
+ <dict>
1222
+ <key>0</key>
1223
+ <dict>
1224
+ <key>name</key>
1225
+ <string>punctuation.curlybrace.close.tsp</string>
1226
+ </dict>
1227
+ </dict>
1228
+ <key>patterns</key>
1229
+ <array>
1230
+ <dict>
1231
+ <key>include</key>
1232
+ <string>#token</string>
1233
+ </dict>
1234
+ <dict>
1235
+ <key>include</key>
1236
+ <string>#object-literal-property</string>
1237
+ </dict>
1238
+ <dict>
1239
+ <key>include</key>
1240
+ <string>#directive</string>
1241
+ </dict>
1242
+ <dict>
1243
+ <key>include</key>
1244
+ <string>#spread-operator</string>
1245
+ </dict>
1246
+ <dict>
1247
+ <key>include</key>
1248
+ <string>#punctuation-comma</string>
1249
+ </dict>
1250
+ </array>
1251
+ </dict>
1252
+ <key>object-literal-property</key>
1253
+ <dict>
1254
+ <key>name</key>
1255
+ <string>meta.object-literal-property.typespec</string>
1256
+ <key>begin</key>
1257
+ <string>(?:(\b[_$[:alpha:]][_$[:alnum:]]*\b|`(?:[^`\\]|\\.)*`)\s*(:))</string>
1258
+ <key>beginCaptures</key>
1259
+ <dict>
1260
+ <key>1</key>
1261
+ <dict>
1262
+ <key>name</key>
1263
+ <string>variable.name.tsp</string>
1264
+ </dict>
1265
+ <key>2</key>
1266
+ <dict>
1267
+ <key>name</key>
1268
+ <string>keyword.operator.type.annotation.tsp</string>
1269
+ </dict>
1270
+ </dict>
1271
+ <key>end</key>
1272
+ <string>(?=,|;|@|\)|\}|\b(?:extern)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)</string>
1273
+ <key>patterns</key>
1274
+ <array>
1275
+ <dict>
1276
+ <key>include</key>
1277
+ <string>#token</string>
1278
+ </dict>
1279
+ <dict>
1280
+ <key>include</key>
1281
+ <string>#expression</string>
1282
+ </dict>
1283
+ </array>
1284
+ </dict>
1081
1285
  <key>operation-heritage</key>
1082
1286
  <dict>
1083
1287
  <key>name</key>
@@ -1481,6 +1685,83 @@
1481
1685
  <key>match</key>
1482
1686
  <string>;</string>
1483
1687
  </dict>
1688
+ <key>scalar-body</key>
1689
+ <dict>
1690
+ <key>name</key>
1691
+ <string>meta.scalar-body.typespec</string>
1692
+ <key>begin</key>
1693
+ <string>\{</string>
1694
+ <key>beginCaptures</key>
1695
+ <dict>
1696
+ <key>0</key>
1697
+ <dict>
1698
+ <key>name</key>
1699
+ <string>punctuation.curlybrace.open.tsp</string>
1700
+ </dict>
1701
+ </dict>
1702
+ <key>end</key>
1703
+ <string>\}</string>
1704
+ <key>endCaptures</key>
1705
+ <dict>
1706
+ <key>0</key>
1707
+ <dict>
1708
+ <key>name</key>
1709
+ <string>punctuation.curlybrace.close.tsp</string>
1710
+ </dict>
1711
+ </dict>
1712
+ <key>patterns</key>
1713
+ <array>
1714
+ <dict>
1715
+ <key>include</key>
1716
+ <string>#token</string>
1717
+ </dict>
1718
+ <dict>
1719
+ <key>include</key>
1720
+ <string>#directive</string>
1721
+ </dict>
1722
+ <dict>
1723
+ <key>include</key>
1724
+ <string>#scalar-constructor</string>
1725
+ </dict>
1726
+ <dict>
1727
+ <key>include</key>
1728
+ <string>#punctuation-semicolon</string>
1729
+ </dict>
1730
+ </array>
1731
+ </dict>
1732
+ <key>scalar-constructor</key>
1733
+ <dict>
1734
+ <key>name</key>
1735
+ <string>meta.scalar-constructor.typespec</string>
1736
+ <key>begin</key>
1737
+ <string>\b(init)\b\s+(\b[_$[:alpha:]][_$[:alnum:]]*\b|`(?:[^`\\]|\\.)*`)</string>
1738
+ <key>beginCaptures</key>
1739
+ <dict>
1740
+ <key>1</key>
1741
+ <dict>
1742
+ <key>name</key>
1743
+ <string>keyword.other.tsp</string>
1744
+ </dict>
1745
+ <key>2</key>
1746
+ <dict>
1747
+ <key>name</key>
1748
+ <string>entity.name.function.tsp</string>
1749
+ </dict>
1750
+ </dict>
1751
+ <key>end</key>
1752
+ <string>(?=,|;|@|\)|\}|\b(?:extern)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)</string>
1753
+ <key>patterns</key>
1754
+ <array>
1755
+ <dict>
1756
+ <key>include</key>
1757
+ <string>#token</string>
1758
+ </dict>
1759
+ <dict>
1760
+ <key>include</key>
1761
+ <string>#operation-parameters</string>
1762
+ </dict>
1763
+ </array>
1764
+ </dict>
1484
1765
  <key>scalar-extends</key>
1485
1766
  <dict>
1486
1767
  <key>name</key>
@@ -1514,7 +1795,7 @@
1514
1795
  <key>name</key>
1515
1796
  <string>meta.scalar-statement.typespec</string>
1516
1797
  <key>begin</key>
1517
- <string>\b(scalar)\b</string>
1798
+ <string>\b(scalar)\b\s+(\b[_$[:alpha:]][_$[:alnum:]]*\b|`(?:[^`\\]|\\.)*`)</string>
1518
1799
  <key>beginCaptures</key>
1519
1800
  <dict>
1520
1801
  <key>1</key>
@@ -1522,9 +1803,14 @@
1522
1803
  <key>name</key>
1523
1804
  <string>keyword.other.tsp</string>
1524
1805
  </dict>
1806
+ <key>2</key>
1807
+ <dict>
1808
+ <key>name</key>
1809
+ <string>entity.name.type.tsp</string>
1810
+ </dict>
1525
1811
  </dict>
1526
1812
  <key>end</key>
1527
- <string>(?=,|;|@|\)|\}|\b(?:extern)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)</string>
1813
+ <string>(?&lt;=\})|(?=,|;|@|\)|\}|\b(?:extern)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)</string>
1528
1814
  <key>patterns</key>
1529
1815
  <array>
1530
1816
  <dict>
@@ -1541,7 +1827,7 @@
1541
1827
  </dict>
1542
1828
  <dict>
1543
1829
  <key>include</key>
1544
- <string>#expression</string>
1830
+ <string>#scalar-body</string>
1545
1831
  </dict>
1546
1832
  </array>
1547
1833
  </dict>
@@ -1613,6 +1899,10 @@
1613
1899
  <key>include</key>
1614
1900
  <string>#alias-statement</string>
1615
1901
  </dict>
1902
+ <dict>
1903
+ <key>include</key>
1904
+ <string>#const-statement</string>
1905
+ </dict>
1616
1906
  <dict>
1617
1907
  <key>include</key>
1618
1908
  <string>#namespace-statement</string>
@@ -1785,6 +2075,42 @@
1785
2075
  </dict>
1786
2076
  </array>
1787
2077
  </dict>
2078
+ <key>tuple-literal</key>
2079
+ <dict>
2080
+ <key>name</key>
2081
+ <string>meta.tuple-literal.typespec</string>
2082
+ <key>begin</key>
2083
+ <string>#\[</string>
2084
+ <key>beginCaptures</key>
2085
+ <dict>
2086
+ <key>0</key>
2087
+ <dict>
2088
+ <key>name</key>
2089
+ <string>punctuation.hashsquarebracket.open.tsp</string>
2090
+ </dict>
2091
+ </dict>
2092
+ <key>end</key>
2093
+ <string>\]</string>
2094
+ <key>endCaptures</key>
2095
+ <dict>
2096
+ <key>0</key>
2097
+ <dict>
2098
+ <key>name</key>
2099
+ <string>punctuation.squarebracket.close.tsp</string>
2100
+ </dict>
2101
+ </dict>
2102
+ <key>patterns</key>
2103
+ <array>
2104
+ <dict>
2105
+ <key>include</key>
2106
+ <string>#expression</string>
2107
+ </dict>
2108
+ <dict>
2109
+ <key>include</key>
2110
+ <string>#punctuation-comma</string>
2111
+ </dict>
2112
+ </array>
2113
+ </dict>
1788
2114
  <key>type-annotation</key>
1789
2115
  <dict>
1790
2116
  <key>name</key>
@@ -1814,6 +2140,51 @@
1814
2140
  </dict>
1815
2141
  </array>
1816
2142
  </dict>
2143
+ <key>type-argument</key>
2144
+ <dict>
2145
+ <key>name</key>
2146
+ <string>meta.type-argument.typespec</string>
2147
+ <key>begin</key>
2148
+ <string>(?:(\b[_$[:alpha:]][_$[:alnum:]]*\b|`(?:[^`\\]|\\.)*`)\s*(=))</string>
2149
+ <key>beginCaptures</key>
2150
+ <dict>
2151
+ <key>1</key>
2152
+ <dict>
2153
+ <key>name</key>
2154
+ <string>entity.name.type.tsp</string>
2155
+ </dict>
2156
+ <key>2</key>
2157
+ <dict>
2158
+ <key>name</key>
2159
+ <string>keyword.operator.assignment.tsp</string>
2160
+ </dict>
2161
+ </dict>
2162
+ <key>end</key>
2163
+ <string>=</string>
2164
+ <key>endCaptures</key>
2165
+ <dict>
2166
+ <key>0</key>
2167
+ <dict>
2168
+ <key>name</key>
2169
+ <string>keyword.operator.assignment.tsp</string>
2170
+ </dict>
2171
+ </dict>
2172
+ <key>patterns</key>
2173
+ <array>
2174
+ <dict>
2175
+ <key>include</key>
2176
+ <string>#token</string>
2177
+ </dict>
2178
+ <dict>
2179
+ <key>include</key>
2180
+ <string>#expression</string>
2181
+ </dict>
2182
+ <dict>
2183
+ <key>include</key>
2184
+ <string>#punctuation-comma</string>
2185
+ </dict>
2186
+ </array>
2187
+ </dict>
1817
2188
  <key>type-arguments</key>
1818
2189
  <dict>
1819
2190
  <key>name</key>
@@ -1842,11 +2213,7 @@
1842
2213
  <array>
1843
2214
  <dict>
1844
2215
  <key>include</key>
1845
- <string>#identifier-expression</string>
1846
- </dict>
1847
- <dict>
1848
- <key>include</key>
1849
- <string>#operator-assignment</string>
2216
+ <string>#type-argument</string>
1850
2217
  </dict>
1851
2218
  <dict>
1852
2219
  <key>include</key>
@@ -1974,6 +2341,30 @@
1974
2341
  </dict>
1975
2342
  </array>
1976
2343
  </dict>
2344
+ <key>typeof</key>
2345
+ <dict>
2346
+ <key>name</key>
2347
+ <string>meta.typeof.typespec</string>
2348
+ <key>begin</key>
2349
+ <string>\b(typeof)</string>
2350
+ <key>beginCaptures</key>
2351
+ <dict>
2352
+ <key>1</key>
2353
+ <dict>
2354
+ <key>name</key>
2355
+ <string>keyword.other.tsp</string>
2356
+ </dict>
2357
+ </dict>
2358
+ <key>end</key>
2359
+ <string>(?=&gt;)|(?=,|;|@|\)|\}|\b(?:extern)\b|\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\b)</string>
2360
+ <key>patterns</key>
2361
+ <array>
2362
+ <dict>
2363
+ <key>include</key>
2364
+ <string>#expression</string>
2365
+ </dict>
2366
+ </array>
2367
+ </dict>
1977
2368
  <key>union-body</key>
1978
2369
  <dict>
1979
2370
  <key>name</key>
@@ -98,27 +98,77 @@ scalar string;
98
98
  /**
99
99
  * A date on a calendar without a time zone, e.g. "April 10th"
100
100
  */
101
- scalar plainDate;
101
+ scalar plainDate {
102
+ /**
103
+ * Create a plain date from an ISO 8601 string.
104
+ * @example
105
+ *
106
+ * ```tsp
107
+ * const time = plainTime.fromISO("2024-05-06");
108
+ * ```
109
+ */
110
+ init fromISO(value: string);
111
+ }
102
112
 
103
113
  /**
104
114
  * A time on a clock without a time zone, e.g. "3:00 am"
105
115
  */
106
- scalar plainTime;
116
+ scalar plainTime {
117
+ /**
118
+ * Create a plain time from an ISO 8601 string.
119
+ * @example
120
+ *
121
+ * ```tsp
122
+ * const time = plainTime.fromISO("12:34");
123
+ * ```
124
+ */
125
+ init fromISO(value: string);
126
+ }
107
127
 
108
128
  /**
109
129
  * An instant in coordinated universal time (UTC)"
110
130
  */
111
- scalar utcDateTime;
131
+ scalar utcDateTime {
132
+ /**
133
+ * Create a date from an ISO 8601 string.
134
+ * @example
135
+ *
136
+ * ```tsp
137
+ * const time = utcDateTime.fromISO("2024-05-06T12:20-12Z");
138
+ * ```
139
+ */
140
+ init fromISO(value: string);
141
+ }
112
142
 
113
143
  /**
114
144
  * A date and time in a particular time zone, e.g. "April 10th at 3:00am in PST"
115
145
  */
116
- scalar offsetDateTime;
146
+ scalar offsetDateTime {
147
+ /**
148
+ * Create a date from an ISO 8601 string.
149
+ * @example
150
+ *
151
+ * ```tsp
152
+ * const time = offsetDateTime.fromISO("2024-05-06T12:20-12-0700");
153
+ * ```
154
+ */
155
+ init fromISO(value: string);
156
+ }
117
157
 
118
158
  /**
119
159
  * A duration/time period. e.g 5s, 10h
120
160
  */
121
- scalar duration;
161
+ scalar duration {
162
+ /**
163
+ * Create a duration from an ISO 8601 string.
164
+ * @example
165
+ *
166
+ * ```tsp
167
+ * const time = duration.fromISO("P1Y1D");
168
+ * ```
169
+ */
170
+ init fromISO(value: string);
171
+ }
122
172
 
123
173
  /**
124
174
  * Boolean with `true` and `false` values.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typespec/compiler",
3
- "version": "0.57.0-dev.0",
3
+ "version": "0.57.0-dev.4",
4
4
  "description": "TypeSpec Compiler Preview",
5
5
  "author": "Microsoft Corporation",
6
6
  "license": "MIT",