naider 1.7.0

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 (359) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +884 -0
  3. package/SPEC-X.nx +276 -0
  4. package/SPEC.naide +431 -0
  5. package/bin/naide.js +519 -0
  6. package/examples/ai-app.naide +21 -0
  7. package/examples/ai-app.nx +21 -0
  8. package/examples/async.naide +50 -0
  9. package/examples/async.nx +40 -0
  10. package/examples/crud.naide +79 -0
  11. package/examples/crud.nx +64 -0
  12. package/examples/fullapp.naide +74 -0
  13. package/examples/fullapp.nx +74 -0
  14. package/examples/hello.naide +33 -0
  15. package/examples/hello.nx +29 -0
  16. package/examples/model.naide +44 -0
  17. package/examples/server.naide +28 -0
  18. package/examples/server.nx +27 -0
  19. package/examples/sql-app.naide +23 -0
  20. package/examples/sql-app.nx +23 -0
  21. package/examples/todo-api.naide +34 -0
  22. package/examples/todo-api.nx +31 -0
  23. package/lsp/server.js +172 -0
  24. package/package.json +56 -0
  25. package/src/generator.js +1313 -0
  26. package/src/index.js +41 -0
  27. package/src/lexer.js +402 -0
  28. package/src/parser.js +1671 -0
  29. package/src/preprocess.js +308 -0
  30. package/src/runtime.js +969 -0
  31. package/src/tokens.js +218 -0
  32. package/vscode-naide/README.md +38 -0
  33. package/vscode-naide/extension.js +41 -0
  34. package/vscode-naide/language-configuration-naide.json +32 -0
  35. package/vscode-naide/language-configuration-nx.json +32 -0
  36. package/vscode-naide/naide-lang-1.1.0.vsix +0 -0
  37. package/vscode-naide/node_modules/.bin/semver +16 -0
  38. package/vscode-naide/node_modules/.bin/semver.cmd +17 -0
  39. package/vscode-naide/node_modules/.bin/semver.ps1 +28 -0
  40. package/vscode-naide/node_modules/.package-lock.json +86 -0
  41. package/vscode-naide/node_modules/balanced-match/.github/FUNDING.yml +2 -0
  42. package/vscode-naide/node_modules/balanced-match/LICENSE.md +21 -0
  43. package/vscode-naide/node_modules/balanced-match/README.md +97 -0
  44. package/vscode-naide/node_modules/balanced-match/index.js +62 -0
  45. package/vscode-naide/node_modules/balanced-match/package.json +48 -0
  46. package/vscode-naide/node_modules/brace-expansion/.github/FUNDING.yml +2 -0
  47. package/vscode-naide/node_modules/brace-expansion/LICENSE +21 -0
  48. package/vscode-naide/node_modules/brace-expansion/README.md +157 -0
  49. package/vscode-naide/node_modules/brace-expansion/index.js +394 -0
  50. package/vscode-naide/node_modules/brace-expansion/package.json +49 -0
  51. package/vscode-naide/node_modules/minimatch/LICENSE +15 -0
  52. package/vscode-naide/node_modules/minimatch/README.md +296 -0
  53. package/vscode-naide/node_modules/minimatch/changelog.md +35 -0
  54. package/vscode-naide/node_modules/minimatch/lib/path.js +4 -0
  55. package/vscode-naide/node_modules/minimatch/minimatch.js +996 -0
  56. package/vscode-naide/node_modules/minimatch/package.json +35 -0
  57. package/vscode-naide/node_modules/semver/LICENSE +15 -0
  58. package/vscode-naide/node_modules/semver/README.md +680 -0
  59. package/vscode-naide/node_modules/semver/bin/semver.js +195 -0
  60. package/vscode-naide/node_modules/semver/classes/comparator.js +143 -0
  61. package/vscode-naide/node_modules/semver/classes/index.js +7 -0
  62. package/vscode-naide/node_modules/semver/classes/range.js +577 -0
  63. package/vscode-naide/node_modules/semver/classes/semver.js +350 -0
  64. package/vscode-naide/node_modules/semver/functions/clean.js +8 -0
  65. package/vscode-naide/node_modules/semver/functions/cmp.js +54 -0
  66. package/vscode-naide/node_modules/semver/functions/coerce.js +62 -0
  67. package/vscode-naide/node_modules/semver/functions/compare-build.js +9 -0
  68. package/vscode-naide/node_modules/semver/functions/compare-loose.js +5 -0
  69. package/vscode-naide/node_modules/semver/functions/compare.js +7 -0
  70. package/vscode-naide/node_modules/semver/functions/diff.js +60 -0
  71. package/vscode-naide/node_modules/semver/functions/eq.js +5 -0
  72. package/vscode-naide/node_modules/semver/functions/gt.js +5 -0
  73. package/vscode-naide/node_modules/semver/functions/gte.js +5 -0
  74. package/vscode-naide/node_modules/semver/functions/inc.js +21 -0
  75. package/vscode-naide/node_modules/semver/functions/lt.js +5 -0
  76. package/vscode-naide/node_modules/semver/functions/lte.js +5 -0
  77. package/vscode-naide/node_modules/semver/functions/major.js +5 -0
  78. package/vscode-naide/node_modules/semver/functions/minor.js +5 -0
  79. package/vscode-naide/node_modules/semver/functions/neq.js +5 -0
  80. package/vscode-naide/node_modules/semver/functions/parse.js +18 -0
  81. package/vscode-naide/node_modules/semver/functions/patch.js +5 -0
  82. package/vscode-naide/node_modules/semver/functions/prerelease.js +8 -0
  83. package/vscode-naide/node_modules/semver/functions/rcompare.js +5 -0
  84. package/vscode-naide/node_modules/semver/functions/rsort.js +5 -0
  85. package/vscode-naide/node_modules/semver/functions/satisfies.js +12 -0
  86. package/vscode-naide/node_modules/semver/functions/sort.js +5 -0
  87. package/vscode-naide/node_modules/semver/functions/truncate.js +48 -0
  88. package/vscode-naide/node_modules/semver/functions/valid.js +8 -0
  89. package/vscode-naide/node_modules/semver/index.js +93 -0
  90. package/vscode-naide/node_modules/semver/internal/constants.js +37 -0
  91. package/vscode-naide/node_modules/semver/internal/debug.js +11 -0
  92. package/vscode-naide/node_modules/semver/internal/identifiers.js +29 -0
  93. package/vscode-naide/node_modules/semver/internal/lrucache.js +42 -0
  94. package/vscode-naide/node_modules/semver/internal/parse-options.js +17 -0
  95. package/vscode-naide/node_modules/semver/internal/re.js +223 -0
  96. package/vscode-naide/node_modules/semver/package.json +78 -0
  97. package/vscode-naide/node_modules/semver/preload.js +4 -0
  98. package/vscode-naide/node_modules/semver/range.bnf +17 -0
  99. package/vscode-naide/node_modules/semver/ranges/gtr.js +6 -0
  100. package/vscode-naide/node_modules/semver/ranges/intersects.js +9 -0
  101. package/vscode-naide/node_modules/semver/ranges/ltr.js +6 -0
  102. package/vscode-naide/node_modules/semver/ranges/max-satisfying.js +27 -0
  103. package/vscode-naide/node_modules/semver/ranges/min-satisfying.js +26 -0
  104. package/vscode-naide/node_modules/semver/ranges/min-version.js +63 -0
  105. package/vscode-naide/node_modules/semver/ranges/outside.js +82 -0
  106. package/vscode-naide/node_modules/semver/ranges/simplify.js +49 -0
  107. package/vscode-naide/node_modules/semver/ranges/subset.js +249 -0
  108. package/vscode-naide/node_modules/semver/ranges/to-comparators.js +10 -0
  109. package/vscode-naide/node_modules/semver/ranges/valid.js +13 -0
  110. package/vscode-naide/node_modules/vscode-jsonrpc/License.txt +11 -0
  111. package/vscode-naide/node_modules/vscode-jsonrpc/README.md +69 -0
  112. package/vscode-naide/node_modules/vscode-jsonrpc/browser.d.ts +6 -0
  113. package/vscode-naide/node_modules/vscode-jsonrpc/browser.js +7 -0
  114. package/vscode-naide/node_modules/vscode-jsonrpc/lib/browser/main.d.ts +17 -0
  115. package/vscode-naide/node_modules/vscode-jsonrpc/lib/browser/main.js +76 -0
  116. package/vscode-naide/node_modules/vscode-jsonrpc/lib/browser/ril.d.ts +12 -0
  117. package/vscode-naide/node_modules/vscode-jsonrpc/lib/browser/ril.js +156 -0
  118. package/vscode-naide/node_modules/vscode-jsonrpc/lib/common/api.d.ts +14 -0
  119. package/vscode-naide/node_modules/vscode-jsonrpc/lib/common/api.js +81 -0
  120. package/vscode-naide/node_modules/vscode-jsonrpc/lib/common/cancellation.d.ts +32 -0
  121. package/vscode-naide/node_modules/vscode-jsonrpc/lib/common/cancellation.js +96 -0
  122. package/vscode-naide/node_modules/vscode-jsonrpc/lib/common/connection.d.ts +358 -0
  123. package/vscode-naide/node_modules/vscode-jsonrpc/lib/common/connection.js +1212 -0
  124. package/vscode-naide/node_modules/vscode-jsonrpc/lib/common/disposable.d.ts +9 -0
  125. package/vscode-naide/node_modules/vscode-jsonrpc/lib/common/disposable.js +16 -0
  126. package/vscode-naide/node_modules/vscode-jsonrpc/lib/common/encoding.d.ts +52 -0
  127. package/vscode-naide/node_modules/vscode-jsonrpc/lib/common/encoding.js +70 -0
  128. package/vscode-naide/node_modules/vscode-jsonrpc/lib/common/events.d.ts +39 -0
  129. package/vscode-naide/node_modules/vscode-jsonrpc/lib/common/events.js +128 -0
  130. package/vscode-naide/node_modules/vscode-jsonrpc/lib/common/is.d.ts +7 -0
  131. package/vscode-naide/node_modules/vscode-jsonrpc/lib/common/is.js +35 -0
  132. package/vscode-naide/node_modules/vscode-jsonrpc/lib/common/linkedMap.d.ts +53 -0
  133. package/vscode-naide/node_modules/vscode-jsonrpc/lib/common/linkedMap.js +398 -0
  134. package/vscode-naide/node_modules/vscode-jsonrpc/lib/common/messageBuffer.d.ts +18 -0
  135. package/vscode-naide/node_modules/vscode-jsonrpc/lib/common/messageBuffer.js +152 -0
  136. package/vscode-naide/node_modules/vscode-jsonrpc/lib/common/messageReader.d.ts +77 -0
  137. package/vscode-naide/node_modules/vscode-jsonrpc/lib/common/messageReader.js +197 -0
  138. package/vscode-naide/node_modules/vscode-jsonrpc/lib/common/messageWriter.d.ts +60 -0
  139. package/vscode-naide/node_modules/vscode-jsonrpc/lib/common/messageWriter.js +115 -0
  140. package/vscode-naide/node_modules/vscode-jsonrpc/lib/common/messages.d.ts +369 -0
  141. package/vscode-naide/node_modules/vscode-jsonrpc/lib/common/messages.js +306 -0
  142. package/vscode-naide/node_modules/vscode-jsonrpc/lib/common/ral.d.ts +74 -0
  143. package/vscode-naide/node_modules/vscode-jsonrpc/lib/common/ral.js +23 -0
  144. package/vscode-naide/node_modules/vscode-jsonrpc/lib/common/semaphore.d.ts +10 -0
  145. package/vscode-naide/node_modules/vscode-jsonrpc/lib/common/semaphore.js +68 -0
  146. package/vscode-naide/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.d.ts +15 -0
  147. package/vscode-naide/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.js +76 -0
  148. package/vscode-naide/node_modules/vscode-jsonrpc/lib/node/main.d.ts +63 -0
  149. package/vscode-naide/node_modules/vscode-jsonrpc/lib/node/main.js +257 -0
  150. package/vscode-naide/node_modules/vscode-jsonrpc/lib/node/ril.d.ts +13 -0
  151. package/vscode-naide/node_modules/vscode-jsonrpc/lib/node/ril.js +161 -0
  152. package/vscode-naide/node_modules/vscode-jsonrpc/node.cmd +5 -0
  153. package/vscode-naide/node_modules/vscode-jsonrpc/node.d.ts +6 -0
  154. package/vscode-naide/node_modules/vscode-jsonrpc/node.js +7 -0
  155. package/vscode-naide/node_modules/vscode-jsonrpc/package.json +45 -0
  156. package/vscode-naide/node_modules/vscode-jsonrpc/thirdpartynotices.txt +16 -0
  157. package/vscode-naide/node_modules/vscode-jsonrpc/typings/thenable.d.ts +5 -0
  158. package/vscode-naide/node_modules/vscode-languageclient/License.txt +11 -0
  159. package/vscode-naide/node_modules/vscode-languageclient/README.md +17 -0
  160. package/vscode-naide/node_modules/vscode-languageclient/browser.d.ts +6 -0
  161. package/vscode-naide/node_modules/vscode-languageclient/browser.js +7 -0
  162. package/vscode-naide/node_modules/vscode-languageclient/lib/browser/main.d.ts +8 -0
  163. package/vscode-naide/node_modules/vscode-languageclient/lib/browser/main.js +37 -0
  164. package/vscode-naide/node_modules/vscode-languageclient/lib/common/api.d.ts +36 -0
  165. package/vscode-naide/node_modules/vscode-languageclient/lib/common/api.js +27 -0
  166. package/vscode-naide/node_modules/vscode-languageclient/lib/common/callHierarchy.d.ts +37 -0
  167. package/vscode-naide/node_modules/vscode-languageclient/lib/common/callHierarchy.js +97 -0
  168. package/vscode-naide/node_modules/vscode-languageclient/lib/common/client.d.ts +476 -0
  169. package/vscode-naide/node_modules/vscode-languageclient/lib/common/client.js +1600 -0
  170. package/vscode-naide/node_modules/vscode-languageclient/lib/common/codeAction.d.ts +19 -0
  171. package/vscode-naide/node_modules/vscode-languageclient/lib/common/codeAction.js +99 -0
  172. package/vscode-naide/node_modules/vscode-languageclient/lib/common/codeConverter.d.ts +78 -0
  173. package/vscode-naide/node_modules/vscode-languageclient/lib/common/codeConverter.js +876 -0
  174. package/vscode-naide/node_modules/vscode-languageclient/lib/common/codeLens.d.ts +23 -0
  175. package/vscode-naide/node_modules/vscode-languageclient/lib/common/codeLens.js +78 -0
  176. package/vscode-naide/node_modules/vscode-languageclient/lib/common/colorProvider.d.ts +25 -0
  177. package/vscode-naide/node_modules/vscode-languageclient/lib/common/colorProvider.js +74 -0
  178. package/vscode-naide/node_modules/vscode-languageclient/lib/common/completion.d.ts +20 -0
  179. package/vscode-naide/node_modules/vscode-languageclient/lib/common/completion.js +126 -0
  180. package/vscode-naide/node_modules/vscode-languageclient/lib/common/configuration.d.ts +69 -0
  181. package/vscode-naide/node_modules/vscode-languageclient/lib/common/configuration.js +209 -0
  182. package/vscode-naide/node_modules/vscode-languageclient/lib/common/declaration.d.ts +16 -0
  183. package/vscode-naide/node_modules/vscode-languageclient/lib/common/declaration.js +54 -0
  184. package/vscode-naide/node_modules/vscode-languageclient/lib/common/definition.d.ts +16 -0
  185. package/vscode-naide/node_modules/vscode-languageclient/lib/common/definition.js +55 -0
  186. package/vscode-naide/node_modules/vscode-languageclient/lib/common/diagnostic.d.ts +122 -0
  187. package/vscode-naide/node_modules/vscode-languageclient/lib/common/diagnostic.js +814 -0
  188. package/vscode-naide/node_modules/vscode-languageclient/lib/common/documentHighlight.d.ts +15 -0
  189. package/vscode-naide/node_modules/vscode-languageclient/lib/common/documentHighlight.js +50 -0
  190. package/vscode-naide/node_modules/vscode-languageclient/lib/common/documentLink.d.ts +19 -0
  191. package/vscode-naide/node_modules/vscode-languageclient/lib/common/documentLink.js +71 -0
  192. package/vscode-naide/node_modules/vscode-languageclient/lib/common/documentSymbol.d.ts +17 -0
  193. package/vscode-naide/node_modules/vscode-languageclient/lib/common/documentSymbol.js +104 -0
  194. package/vscode-naide/node_modules/vscode-languageclient/lib/common/executeCommand.d.ts +21 -0
  195. package/vscode-naide/node_modules/vscode-languageclient/lib/common/executeCommand.js +72 -0
  196. package/vscode-naide/node_modules/vscode-languageclient/lib/common/features.d.ts +418 -0
  197. package/vscode-naide/node_modules/vscode-languageclient/lib/common/features.js +291 -0
  198. package/vscode-naide/node_modules/vscode-languageclient/lib/common/fileOperations.d.ts +116 -0
  199. package/vscode-naide/node_modules/vscode-languageclient/lib/common/fileOperations.js +333 -0
  200. package/vscode-naide/node_modules/vscode-languageclient/lib/common/fileSystemWatcher.d.ts +18 -0
  201. package/vscode-naide/node_modules/vscode-languageclient/lib/common/fileSystemWatcher.js +95 -0
  202. package/vscode-naide/node_modules/vscode-languageclient/lib/common/foldingRange.d.ts +19 -0
  203. package/vscode-naide/node_modules/vscode-languageclient/lib/common/foldingRange.js +65 -0
  204. package/vscode-naide/node_modules/vscode-languageclient/lib/common/formatting.d.ts +39 -0
  205. package/vscode-naide/node_modules/vscode-languageclient/lib/common/formatting.js +182 -0
  206. package/vscode-naide/node_modules/vscode-languageclient/lib/common/hover.d.ts +16 -0
  207. package/vscode-naide/node_modules/vscode-languageclient/lib/common/hover.js +58 -0
  208. package/vscode-naide/node_modules/vscode-languageclient/lib/common/implementation.d.ts +16 -0
  209. package/vscode-naide/node_modules/vscode-languageclient/lib/common/implementation.js +54 -0
  210. package/vscode-naide/node_modules/vscode-languageclient/lib/common/inlayHint.d.ts +20 -0
  211. package/vscode-naide/node_modules/vscode-languageclient/lib/common/inlayHint.js +92 -0
  212. package/vscode-naide/node_modules/vscode-languageclient/lib/common/inlineCompletion.d.ts +18 -0
  213. package/vscode-naide/node_modules/vscode-languageclient/lib/common/inlineCompletion.js +54 -0
  214. package/vscode-naide/node_modules/vscode-languageclient/lib/common/inlineValue.d.ts +18 -0
  215. package/vscode-naide/node_modules/vscode-languageclient/lib/common/inlineValue.js +65 -0
  216. package/vscode-naide/node_modules/vscode-languageclient/lib/common/linkedEditingRange.d.ts +21 -0
  217. package/vscode-naide/node_modules/vscode-languageclient/lib/common/linkedEditingRange.js +53 -0
  218. package/vscode-naide/node_modules/vscode-languageclient/lib/common/notebook.d.ts +96 -0
  219. package/vscode-naide/node_modules/vscode-languageclient/lib/common/notebook.js +851 -0
  220. package/vscode-naide/node_modules/vscode-languageclient/lib/common/progress.d.ts +11 -0
  221. package/vscode-naide/node_modules/vscode-languageclient/lib/common/progress.js +44 -0
  222. package/vscode-naide/node_modules/vscode-languageclient/lib/common/progressPart.d.ts +24 -0
  223. package/vscode-naide/node_modules/vscode-languageclient/lib/common/progressPart.js +96 -0
  224. package/vscode-naide/node_modules/vscode-languageclient/lib/common/protocolCallHierarchyItem.d.ts +6 -0
  225. package/vscode-naide/node_modules/vscode-languageclient/lib/common/protocolCallHierarchyItem.js +16 -0
  226. package/vscode-naide/node_modules/vscode-languageclient/lib/common/protocolCodeAction.d.ts +6 -0
  227. package/vscode-naide/node_modules/vscode-languageclient/lib/common/protocolCodeAction.js +14 -0
  228. package/vscode-naide/node_modules/vscode-languageclient/lib/common/protocolCodeLens.d.ts +5 -0
  229. package/vscode-naide/node_modules/vscode-languageclient/lib/common/protocolCodeLens.js +13 -0
  230. package/vscode-naide/node_modules/vscode-languageclient/lib/common/protocolCompletionItem.d.ts +11 -0
  231. package/vscode-naide/node_modules/vscode-languageclient/lib/common/protocolCompletionItem.js +13 -0
  232. package/vscode-naide/node_modules/vscode-languageclient/lib/common/protocolConverter.d.ts +167 -0
  233. package/vscode-naide/node_modules/vscode-languageclient/lib/common/protocolConverter.js +1134 -0
  234. package/vscode-naide/node_modules/vscode-languageclient/lib/common/protocolDiagnostic.d.ts +18 -0
  235. package/vscode-naide/node_modules/vscode-languageclient/lib/common/protocolDiagnostic.js +25 -0
  236. package/vscode-naide/node_modules/vscode-languageclient/lib/common/protocolDocumentLink.d.ts +5 -0
  237. package/vscode-naide/node_modules/vscode-languageclient/lib/common/protocolDocumentLink.js +13 -0
  238. package/vscode-naide/node_modules/vscode-languageclient/lib/common/protocolInlayHint.d.ts +5 -0
  239. package/vscode-naide/node_modules/vscode-languageclient/lib/common/protocolInlayHint.js +13 -0
  240. package/vscode-naide/node_modules/vscode-languageclient/lib/common/protocolTypeHierarchyItem.d.ts +6 -0
  241. package/vscode-naide/node_modules/vscode-languageclient/lib/common/protocolTypeHierarchyItem.js +16 -0
  242. package/vscode-naide/node_modules/vscode-languageclient/lib/common/protocolWorkspaceSymbol.d.ts +7 -0
  243. package/vscode-naide/node_modules/vscode-languageclient/lib/common/protocolWorkspaceSymbol.js +18 -0
  244. package/vscode-naide/node_modules/vscode-languageclient/lib/common/reference.d.ts +20 -0
  245. package/vscode-naide/node_modules/vscode-languageclient/lib/common/reference.js +53 -0
  246. package/vscode-naide/node_modules/vscode-languageclient/lib/common/rename.d.ts +27 -0
  247. package/vscode-naide/node_modules/vscode-languageclient/lib/common/rename.js +113 -0
  248. package/vscode-naide/node_modules/vscode-languageclient/lib/common/selectionRange.d.ts +16 -0
  249. package/vscode-naide/node_modules/vscode-languageclient/lib/common/selectionRange.js +57 -0
  250. package/vscode-naide/node_modules/vscode-languageclient/lib/common/semanticTokens.d.ts +33 -0
  251. package/vscode-naide/node_modules/vscode-languageclient/lib/common/semanticTokens.js +179 -0
  252. package/vscode-naide/node_modules/vscode-languageclient/lib/common/signatureHelp.d.ts +16 -0
  253. package/vscode-naide/node_modules/vscode-languageclient/lib/common/signatureHelp.js +71 -0
  254. package/vscode-naide/node_modules/vscode-languageclient/lib/common/textSynchronization.d.ts +101 -0
  255. package/vscode-naide/node_modules/vscode-languageclient/lib/common/textSynchronization.js +402 -0
  256. package/vscode-naide/node_modules/vscode-languageclient/lib/common/typeDefinition.d.ts +16 -0
  257. package/vscode-naide/node_modules/vscode-languageclient/lib/common/typeDefinition.js +55 -0
  258. package/vscode-naide/node_modules/vscode-languageclient/lib/common/typeHierarchy.d.ts +31 -0
  259. package/vscode-naide/node_modules/vscode-languageclient/lib/common/typeHierarchy.js +96 -0
  260. package/vscode-naide/node_modules/vscode-languageclient/lib/common/utils/async.d.ts +41 -0
  261. package/vscode-naide/node_modules/vscode-languageclient/lib/common/utils/async.js +276 -0
  262. package/vscode-naide/node_modules/vscode-languageclient/lib/common/utils/is.d.ts +12 -0
  263. package/vscode-naide/node_modules/vscode-languageclient/lib/common/utils/is.js +57 -0
  264. package/vscode-naide/node_modules/vscode-languageclient/lib/common/utils/uuid.d.ts +22 -0
  265. package/vscode-naide/node_modules/vscode-languageclient/lib/common/utils/uuid.js +97 -0
  266. package/vscode-naide/node_modules/vscode-languageclient/lib/common/workspaceFolder.d.ts +30 -0
  267. package/vscode-naide/node_modules/vscode-languageclient/lib/common/workspaceFolder.js +148 -0
  268. package/vscode-naide/node_modules/vscode-languageclient/lib/common/workspaceSymbol.d.ts +19 -0
  269. package/vscode-naide/node_modules/vscode-languageclient/lib/common/workspaceSymbol.js +79 -0
  270. package/vscode-naide/node_modules/vscode-languageclient/lib/node/main.d.ts +100 -0
  271. package/vscode-naide/node_modules/vscode-languageclient/lib/node/main.js +570 -0
  272. package/vscode-naide/node_modules/vscode-languageclient/lib/node/processes.d.ts +6 -0
  273. package/vscode-naide/node_modules/vscode-languageclient/lib/node/processes.js +47 -0
  274. package/vscode-naide/node_modules/vscode-languageclient/lib/node/terminateProcess.sh +16 -0
  275. package/vscode-naide/node_modules/vscode-languageclient/node.cmd +5 -0
  276. package/vscode-naide/node_modules/vscode-languageclient/node.d.ts +6 -0
  277. package/vscode-naide/node_modules/vscode-languageclient/node.js +7 -0
  278. package/vscode-naide/node_modules/vscode-languageclient/package.json +50 -0
  279. package/vscode-naide/node_modules/vscode-languageserver-protocol/License.txt +11 -0
  280. package/vscode-naide/node_modules/vscode-languageserver-protocol/README.md +16 -0
  281. package/vscode-naide/node_modules/vscode-languageserver-protocol/browser.d.ts +6 -0
  282. package/vscode-naide/node_modules/vscode-languageserver-protocol/browser.js +7 -0
  283. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/browser/main.d.ts +4 -0
  284. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/browser/main.js +28 -0
  285. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/api.d.ts +58 -0
  286. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/api.js +77 -0
  287. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/connection.d.ts +187 -0
  288. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/connection.js +15 -0
  289. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/messages.d.ts +51 -0
  290. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/messages.js +44 -0
  291. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.$.d.ts +1 -0
  292. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.$.js +43 -0
  293. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.d.ts +86 -0
  294. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.js +42 -0
  295. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.d.ts +66 -0
  296. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.js +32 -0
  297. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.d.ts +35 -0
  298. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.js +24 -0
  299. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.d.ts +3252 -0
  300. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.d.ts +37 -0
  301. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.js +22 -0
  302. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.d.ts +341 -0
  303. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.js +74 -0
  304. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.d.ts +306 -0
  305. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.js +101 -0
  306. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.d.ts +109 -0
  307. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.js +30 -0
  308. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.d.ts +38 -0
  309. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.js +21 -0
  310. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.d.ts +110 -0
  311. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.js +43 -0
  312. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.d.ts +57 -0
  313. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.js +22 -0
  314. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.d.ts +86 -0
  315. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.js +30 -0
  316. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.js +943 -0
  317. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.d.ts +52 -0
  318. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.js +19 -0
  319. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.d.ts +106 -0
  320. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.js +68 -0
  321. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.d.ts +400 -0
  322. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.js +214 -0
  323. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.d.ts +107 -0
  324. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.js +37 -0
  325. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.d.ts +41 -0
  326. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.js +20 -0
  327. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.d.ts +223 -0
  328. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.js +57 -0
  329. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.d.ts +72 -0
  330. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.js +22 -0
  331. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.d.ts +38 -0
  332. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.js +21 -0
  333. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.d.ts +83 -0
  334. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.js +42 -0
  335. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.d.ts +74 -0
  336. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.js +27 -0
  337. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/utils/is.d.ts +9 -0
  338. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/common/utils/is.js +46 -0
  339. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/node/main.d.ts +6 -0
  340. package/vscode-naide/node_modules/vscode-languageserver-protocol/lib/node/main.js +28 -0
  341. package/vscode-naide/node_modules/vscode-languageserver-protocol/metaModel.schema.json +783 -0
  342. package/vscode-naide/node_modules/vscode-languageserver-protocol/node.cmd +5 -0
  343. package/vscode-naide/node_modules/vscode-languageserver-protocol/node.d.ts +6 -0
  344. package/vscode-naide/node_modules/vscode-languageserver-protocol/node.js +7 -0
  345. package/vscode-naide/node_modules/vscode-languageserver-protocol/package.json +45 -0
  346. package/vscode-naide/node_modules/vscode-languageserver-protocol/thirdpartynotices.txt +31 -0
  347. package/vscode-naide/node_modules/vscode-languageserver-types/License.txt +11 -0
  348. package/vscode-naide/node_modules/vscode-languageserver-types/README.md +17 -0
  349. package/vscode-naide/node_modules/vscode-languageserver-types/lib/esm/main.d.ts +3139 -0
  350. package/vscode-naide/node_modules/vscode-languageserver-types/lib/esm/main.js +2222 -0
  351. package/vscode-naide/node_modules/vscode-languageserver-types/lib/esm/package.json +3 -0
  352. package/vscode-naide/node_modules/vscode-languageserver-types/lib/umd/main.d.ts +3139 -0
  353. package/vscode-naide/node_modules/vscode-languageserver-types/lib/umd/main.js +2272 -0
  354. package/vscode-naide/node_modules/vscode-languageserver-types/package.json +38 -0
  355. package/vscode-naide/node_modules/vscode-languageserver-types/thirdpartynotices.txt +16 -0
  356. package/vscode-naide/package-lock.json +96 -0
  357. package/vscode-naide/package.json +59 -0
  358. package/vscode-naide/syntaxes/naide.tmLanguage.json +194 -0
  359. package/vscode-naide/syntaxes/naidex.tmLanguage.json +287 -0
@@ -0,0 +1,276 @@
1
+ "use strict";
2
+ /* --------------------------------------------------------------------------------------------
3
+ * Copyright (c) Microsoft Corporation. All rights reserved.
4
+ * Licensed under the MIT License. See License.txt in the project root for license information.
5
+ * ------------------------------------------------------------------------------------------ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.forEach = exports.mapAsync = exports.map = exports.clearTestMode = exports.setTestMode = exports.Semaphore = exports.Delayer = void 0;
8
+ const vscode_languageserver_protocol_1 = require("vscode-languageserver-protocol");
9
+ class Delayer {
10
+ constructor(defaultDelay) {
11
+ this.defaultDelay = defaultDelay;
12
+ this.timeout = undefined;
13
+ this.completionPromise = undefined;
14
+ this.onSuccess = undefined;
15
+ this.task = undefined;
16
+ }
17
+ trigger(task, delay = this.defaultDelay) {
18
+ this.task = task;
19
+ if (delay >= 0) {
20
+ this.cancelTimeout();
21
+ }
22
+ if (!this.completionPromise) {
23
+ this.completionPromise = new Promise((resolve) => {
24
+ this.onSuccess = resolve;
25
+ }).then(() => {
26
+ this.completionPromise = undefined;
27
+ this.onSuccess = undefined;
28
+ var result = this.task();
29
+ this.task = undefined;
30
+ return result;
31
+ });
32
+ }
33
+ if (delay >= 0 || this.timeout === void 0) {
34
+ this.timeout = (0, vscode_languageserver_protocol_1.RAL)().timer.setTimeout(() => {
35
+ this.timeout = undefined;
36
+ this.onSuccess(undefined);
37
+ }, delay >= 0 ? delay : this.defaultDelay);
38
+ }
39
+ return this.completionPromise;
40
+ }
41
+ forceDelivery() {
42
+ if (!this.completionPromise) {
43
+ return undefined;
44
+ }
45
+ this.cancelTimeout();
46
+ let result = this.task();
47
+ this.completionPromise = undefined;
48
+ this.onSuccess = undefined;
49
+ this.task = undefined;
50
+ return result;
51
+ }
52
+ isTriggered() {
53
+ return this.timeout !== undefined;
54
+ }
55
+ cancel() {
56
+ this.cancelTimeout();
57
+ this.completionPromise = undefined;
58
+ }
59
+ cancelTimeout() {
60
+ if (this.timeout !== undefined) {
61
+ this.timeout.dispose();
62
+ this.timeout = undefined;
63
+ }
64
+ }
65
+ }
66
+ exports.Delayer = Delayer;
67
+ class Semaphore {
68
+ constructor(capacity = 1) {
69
+ if (capacity <= 0) {
70
+ throw new Error('Capacity must be greater than 0');
71
+ }
72
+ this._capacity = capacity;
73
+ this._active = 0;
74
+ this._waiting = [];
75
+ }
76
+ lock(thunk) {
77
+ return new Promise((resolve, reject) => {
78
+ this._waiting.push({ thunk, resolve, reject });
79
+ this.runNext();
80
+ });
81
+ }
82
+ get active() {
83
+ return this._active;
84
+ }
85
+ runNext() {
86
+ if (this._waiting.length === 0 || this._active === this._capacity) {
87
+ return;
88
+ }
89
+ (0, vscode_languageserver_protocol_1.RAL)().timer.setImmediate(() => this.doRunNext());
90
+ }
91
+ doRunNext() {
92
+ if (this._waiting.length === 0 || this._active === this._capacity) {
93
+ return;
94
+ }
95
+ const next = this._waiting.shift();
96
+ this._active++;
97
+ if (this._active > this._capacity) {
98
+ throw new Error(`To many thunks active`);
99
+ }
100
+ try {
101
+ const result = next.thunk();
102
+ if (result instanceof Promise) {
103
+ result.then((value) => {
104
+ this._active--;
105
+ next.resolve(value);
106
+ this.runNext();
107
+ }, (err) => {
108
+ this._active--;
109
+ next.reject(err);
110
+ this.runNext();
111
+ });
112
+ }
113
+ else {
114
+ this._active--;
115
+ next.resolve(result);
116
+ this.runNext();
117
+ }
118
+ }
119
+ catch (err) {
120
+ this._active--;
121
+ next.reject(err);
122
+ this.runNext();
123
+ }
124
+ }
125
+ }
126
+ exports.Semaphore = Semaphore;
127
+ let $test = false;
128
+ function setTestMode() {
129
+ $test = true;
130
+ }
131
+ exports.setTestMode = setTestMode;
132
+ function clearTestMode() {
133
+ $test = false;
134
+ }
135
+ exports.clearTestMode = clearTestMode;
136
+ const defaultYieldTimeout = 15 /*ms*/;
137
+ class Timer {
138
+ constructor(yieldAfter = defaultYieldTimeout) {
139
+ this.yieldAfter = $test === true ? Math.max(yieldAfter, 2) : Math.max(yieldAfter, defaultYieldTimeout);
140
+ this.startTime = Date.now();
141
+ this.counter = 0;
142
+ this.total = 0;
143
+ // start with a counter interval of 1.
144
+ this.counterInterval = 1;
145
+ }
146
+ start() {
147
+ this.counter = 0;
148
+ this.total = 0;
149
+ this.counterInterval = 1;
150
+ this.startTime = Date.now();
151
+ }
152
+ shouldYield() {
153
+ if (++this.counter >= this.counterInterval) {
154
+ const timeTaken = Date.now() - this.startTime;
155
+ const timeLeft = Math.max(0, this.yieldAfter - timeTaken);
156
+ this.total += this.counter;
157
+ this.counter = 0;
158
+ if (timeTaken >= this.yieldAfter || timeLeft <= 1) {
159
+ // Yield also if time left <= 1 since we compute the counter
160
+ // for max < 2 ms.
161
+ // Start with interval 1 again. We could do some calculation
162
+ // with using 80% of the last counter however other things (GC)
163
+ // affect the timing heavily since we have small timings (1 - 15ms).
164
+ this.counterInterval = 1;
165
+ this.total = 0;
166
+ return true;
167
+ }
168
+ else {
169
+ // Only increase the counter until we have spent <= 2 ms. Increasing
170
+ // the counter further is very fragile since timing is influenced
171
+ // by other things and can increase the counter too much. This will result
172
+ // that we yield in average after [14 - 16]ms.
173
+ switch (timeTaken) {
174
+ case 0:
175
+ case 1:
176
+ this.counterInterval = this.total * 2;
177
+ break;
178
+ }
179
+ }
180
+ }
181
+ return false;
182
+ }
183
+ }
184
+ async function map(items, func, token, options) {
185
+ if (items.length === 0) {
186
+ return [];
187
+ }
188
+ const result = new Array(items.length);
189
+ const timer = new Timer(options?.yieldAfter);
190
+ function convertBatch(start) {
191
+ timer.start();
192
+ for (let i = start; i < items.length; i++) {
193
+ result[i] = func(items[i]);
194
+ if (timer.shouldYield()) {
195
+ options?.yieldCallback && options.yieldCallback();
196
+ return i + 1;
197
+ }
198
+ }
199
+ return -1;
200
+ }
201
+ // Convert the first batch sync on the same frame.
202
+ let index = convertBatch(0);
203
+ while (index !== -1) {
204
+ if (token !== undefined && token.isCancellationRequested) {
205
+ break;
206
+ }
207
+ index = await new Promise((resolve) => {
208
+ (0, vscode_languageserver_protocol_1.RAL)().timer.setImmediate(() => {
209
+ resolve(convertBatch(index));
210
+ });
211
+ });
212
+ }
213
+ return result;
214
+ }
215
+ exports.map = map;
216
+ async function mapAsync(items, func, token, options) {
217
+ if (items.length === 0) {
218
+ return [];
219
+ }
220
+ const result = new Array(items.length);
221
+ const timer = new Timer(options?.yieldAfter);
222
+ async function convertBatch(start) {
223
+ timer.start();
224
+ for (let i = start; i < items.length; i++) {
225
+ result[i] = await func(items[i], token);
226
+ if (timer.shouldYield()) {
227
+ options?.yieldCallback && options.yieldCallback();
228
+ return i + 1;
229
+ }
230
+ }
231
+ return -1;
232
+ }
233
+ let index = await convertBatch(0);
234
+ while (index !== -1) {
235
+ if (token !== undefined && token.isCancellationRequested) {
236
+ break;
237
+ }
238
+ index = await new Promise((resolve) => {
239
+ (0, vscode_languageserver_protocol_1.RAL)().timer.setImmediate(() => {
240
+ resolve(convertBatch(index));
241
+ });
242
+ });
243
+ }
244
+ return result;
245
+ }
246
+ exports.mapAsync = mapAsync;
247
+ async function forEach(items, func, token, options) {
248
+ if (items.length === 0) {
249
+ return;
250
+ }
251
+ const timer = new Timer(options?.yieldAfter);
252
+ function runBatch(start) {
253
+ timer.start();
254
+ for (let i = start; i < items.length; i++) {
255
+ func(items[i]);
256
+ if (timer.shouldYield()) {
257
+ options?.yieldCallback && options.yieldCallback();
258
+ return i + 1;
259
+ }
260
+ }
261
+ return -1;
262
+ }
263
+ // Convert the first batch sync on the same frame.
264
+ let index = runBatch(0);
265
+ while (index !== -1) {
266
+ if (token !== undefined && token.isCancellationRequested) {
267
+ break;
268
+ }
269
+ index = await new Promise((resolve) => {
270
+ (0, vscode_languageserver_protocol_1.RAL)().timer.setImmediate(() => {
271
+ resolve(runBatch(index));
272
+ });
273
+ });
274
+ }
275
+ }
276
+ exports.forEach = forEach;
@@ -0,0 +1,12 @@
1
+ export declare function boolean(value: any): value is boolean;
2
+ export declare function string(value: any): value is string;
3
+ export declare function number(value: any): value is number;
4
+ export declare function error(value: any): value is Error;
5
+ export declare function func(value: any): value is Function;
6
+ export declare function array<T>(value: any): value is T[];
7
+ export declare function stringArray(value: any): value is string[];
8
+ export declare function typedArray<T>(value: any, check: (value: any) => boolean): value is T[];
9
+ export declare function thenable<T>(value: any): value is Thenable<T>;
10
+ export declare function asPromise<T>(value: Promise<T>): Promise<T>;
11
+ export declare function asPromise<T>(value: Thenable<T>): Promise<T>;
12
+ export declare function asPromise<T>(value: T): Promise<T>;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ /* --------------------------------------------------------------------------------------------
3
+ * Copyright (c) Microsoft Corporation. All rights reserved.
4
+ * Licensed under the MIT License. See License.txt in the project root for license information.
5
+ * ------------------------------------------------------------------------------------------ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.asPromise = exports.thenable = exports.typedArray = exports.stringArray = exports.array = exports.func = exports.error = exports.number = exports.string = exports.boolean = void 0;
8
+ function boolean(value) {
9
+ return value === true || value === false;
10
+ }
11
+ exports.boolean = boolean;
12
+ function string(value) {
13
+ return typeof value === 'string' || value instanceof String;
14
+ }
15
+ exports.string = string;
16
+ function number(value) {
17
+ return typeof value === 'number' || value instanceof Number;
18
+ }
19
+ exports.number = number;
20
+ function error(value) {
21
+ return value instanceof Error;
22
+ }
23
+ exports.error = error;
24
+ function func(value) {
25
+ return typeof value === 'function';
26
+ }
27
+ exports.func = func;
28
+ function array(value) {
29
+ return Array.isArray(value);
30
+ }
31
+ exports.array = array;
32
+ function stringArray(value) {
33
+ return array(value) && value.every(elem => string(elem));
34
+ }
35
+ exports.stringArray = stringArray;
36
+ function typedArray(value, check) {
37
+ return Array.isArray(value) && value.every(check);
38
+ }
39
+ exports.typedArray = typedArray;
40
+ function thenable(value) {
41
+ return value && func(value.then);
42
+ }
43
+ exports.thenable = thenable;
44
+ function asPromise(value) {
45
+ if (value instanceof Promise) {
46
+ return value;
47
+ }
48
+ else if (thenable(value)) {
49
+ return new Promise((resolve, reject) => {
50
+ value.then((resolved) => resolve(resolved), (error) => reject(error));
51
+ });
52
+ }
53
+ else {
54
+ return Promise.resolve(value);
55
+ }
56
+ }
57
+ exports.asPromise = asPromise;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Represents a UUID as defined by rfc4122.
3
+ */
4
+ export interface UUID {
5
+ /**
6
+ * @returns the canonical representation in sets of hexadecimal numbers separated by dashes.
7
+ */
8
+ asHex(): string;
9
+ equals(other: UUID): boolean;
10
+ }
11
+ /**
12
+ * An empty UUID that contains only zeros.
13
+ */
14
+ export declare const empty: UUID;
15
+ export declare function v4(): UUID;
16
+ export declare function isUUID(value: string): boolean;
17
+ /**
18
+ * Parses a UUID that is of the format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.
19
+ * @param value A uuid string.
20
+ */
21
+ export declare function parse(value: string): UUID;
22
+ export declare function generateUuid(): string;
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Microsoft Corporation. All rights reserved.
4
+ * Licensed under the MIT License. See License.txt in the project root for license information.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.generateUuid = exports.parse = exports.isUUID = exports.v4 = exports.empty = void 0;
8
+ class ValueUUID {
9
+ constructor(_value) {
10
+ this._value = _value;
11
+ // empty
12
+ }
13
+ asHex() {
14
+ return this._value;
15
+ }
16
+ equals(other) {
17
+ return this.asHex() === other.asHex();
18
+ }
19
+ }
20
+ class V4UUID extends ValueUUID {
21
+ static _oneOf(array) {
22
+ return array[Math.floor(array.length * Math.random())];
23
+ }
24
+ static _randomHex() {
25
+ return V4UUID._oneOf(V4UUID._chars);
26
+ }
27
+ constructor() {
28
+ super([
29
+ V4UUID._randomHex(),
30
+ V4UUID._randomHex(),
31
+ V4UUID._randomHex(),
32
+ V4UUID._randomHex(),
33
+ V4UUID._randomHex(),
34
+ V4UUID._randomHex(),
35
+ V4UUID._randomHex(),
36
+ V4UUID._randomHex(),
37
+ '-',
38
+ V4UUID._randomHex(),
39
+ V4UUID._randomHex(),
40
+ V4UUID._randomHex(),
41
+ V4UUID._randomHex(),
42
+ '-',
43
+ '4',
44
+ V4UUID._randomHex(),
45
+ V4UUID._randomHex(),
46
+ V4UUID._randomHex(),
47
+ '-',
48
+ V4UUID._oneOf(V4UUID._timeHighBits),
49
+ V4UUID._randomHex(),
50
+ V4UUID._randomHex(),
51
+ V4UUID._randomHex(),
52
+ '-',
53
+ V4UUID._randomHex(),
54
+ V4UUID._randomHex(),
55
+ V4UUID._randomHex(),
56
+ V4UUID._randomHex(),
57
+ V4UUID._randomHex(),
58
+ V4UUID._randomHex(),
59
+ V4UUID._randomHex(),
60
+ V4UUID._randomHex(),
61
+ V4UUID._randomHex(),
62
+ V4UUID._randomHex(),
63
+ V4UUID._randomHex(),
64
+ V4UUID._randomHex(),
65
+ ].join(''));
66
+ }
67
+ }
68
+ V4UUID._chars = ['0', '1', '2', '3', '4', '5', '6', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];
69
+ V4UUID._timeHighBits = ['8', '9', 'a', 'b'];
70
+ /**
71
+ * An empty UUID that contains only zeros.
72
+ */
73
+ exports.empty = new ValueUUID('00000000-0000-0000-0000-000000000000');
74
+ function v4() {
75
+ return new V4UUID();
76
+ }
77
+ exports.v4 = v4;
78
+ const _UUIDPattern = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
79
+ function isUUID(value) {
80
+ return _UUIDPattern.test(value);
81
+ }
82
+ exports.isUUID = isUUID;
83
+ /**
84
+ * Parses a UUID that is of the format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.
85
+ * @param value A uuid string.
86
+ */
87
+ function parse(value) {
88
+ if (!isUUID(value)) {
89
+ throw new Error('invalid uuid');
90
+ }
91
+ return new ValueUUID(value);
92
+ }
93
+ exports.parse = parse;
94
+ function generateUuid() {
95
+ return v4().asHex();
96
+ }
97
+ exports.generateUuid = generateUuid;
@@ -0,0 +1,30 @@
1
+ import { WorkspaceFolder as VWorkspaceFolder, WorkspaceFoldersChangeEvent as VWorkspaceFoldersChangeEvent } from 'vscode';
2
+ import { DynamicFeature, RegistrationData, FeatureClient, NextSignature, FeatureState } from './features';
3
+ import { ClientCapabilities, InitializeParams, ServerCapabilities, WorkspaceFoldersRequest, RegistrationType } from 'vscode-languageserver-protocol';
4
+ export declare function arrayDiff<T>(left: ReadonlyArray<T>, right: ReadonlyArray<T>): T[];
5
+ export type WorkspaceFolderMiddleware = {
6
+ workspaceFolders?: WorkspaceFoldersRequest.MiddlewareSignature;
7
+ didChangeWorkspaceFolders?: NextSignature<VWorkspaceFoldersChangeEvent, Promise<void>>;
8
+ };
9
+ type WorkspaceFolderWorkspaceMiddleware = {
10
+ workspace?: WorkspaceFolderMiddleware;
11
+ };
12
+ export declare class WorkspaceFoldersFeature implements DynamicFeature<void> {
13
+ private readonly _client;
14
+ private readonly _listeners;
15
+ private _initialFolders;
16
+ constructor(client: FeatureClient<WorkspaceFolderWorkspaceMiddleware>);
17
+ getState(): FeatureState;
18
+ get registrationType(): RegistrationType<void>;
19
+ fillInitializeParams(params: InitializeParams): void;
20
+ protected initializeWithFolders(currentWorkspaceFolders: ReadonlyArray<VWorkspaceFolder> | undefined): void;
21
+ fillClientCapabilities(capabilities: ClientCapabilities): void;
22
+ initialize(capabilities: ServerCapabilities): void;
23
+ protected sendInitialEvent(currentWorkspaceFolders: ReadonlyArray<VWorkspaceFolder> | undefined): void;
24
+ private doSendEvent;
25
+ register(data: RegistrationData<undefined>): void;
26
+ unregister(id: string): void;
27
+ clear(): void;
28
+ private asProtocol;
29
+ }
30
+ export {};
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ /* --------------------------------------------------------------------------------------------
3
+ * Copyright (c) Microsoft Corporation. All rights reserved.
4
+ * Licensed under the MIT License. See License.txt in the project root for license information.
5
+ * ------------------------------------------------------------------------------------------ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.WorkspaceFoldersFeature = exports.arrayDiff = void 0;
8
+ const UUID = require("./utils/uuid");
9
+ const vscode_1 = require("vscode");
10
+ const vscode_languageserver_protocol_1 = require("vscode-languageserver-protocol");
11
+ function access(target, key) {
12
+ if (target === undefined || target === null) {
13
+ return undefined;
14
+ }
15
+ return target[key];
16
+ }
17
+ function arrayDiff(left, right) {
18
+ return left.filter(element => right.indexOf(element) < 0);
19
+ }
20
+ exports.arrayDiff = arrayDiff;
21
+ class WorkspaceFoldersFeature {
22
+ constructor(client) {
23
+ this._client = client;
24
+ this._listeners = new Map();
25
+ }
26
+ getState() {
27
+ return { kind: 'workspace', id: this.registrationType.method, registrations: this._listeners.size > 0 };
28
+ }
29
+ get registrationType() {
30
+ return vscode_languageserver_protocol_1.DidChangeWorkspaceFoldersNotification.type;
31
+ }
32
+ fillInitializeParams(params) {
33
+ const folders = vscode_1.workspace.workspaceFolders;
34
+ this.initializeWithFolders(folders);
35
+ if (folders === void 0) {
36
+ params.workspaceFolders = null;
37
+ }
38
+ else {
39
+ params.workspaceFolders = folders.map(folder => this.asProtocol(folder));
40
+ }
41
+ }
42
+ initializeWithFolders(currentWorkspaceFolders) {
43
+ this._initialFolders = currentWorkspaceFolders;
44
+ }
45
+ fillClientCapabilities(capabilities) {
46
+ capabilities.workspace = capabilities.workspace || {};
47
+ capabilities.workspace.workspaceFolders = true;
48
+ }
49
+ initialize(capabilities) {
50
+ const client = this._client;
51
+ client.onRequest(vscode_languageserver_protocol_1.WorkspaceFoldersRequest.type, (token) => {
52
+ const workspaceFolders = () => {
53
+ const folders = vscode_1.workspace.workspaceFolders;
54
+ if (folders === undefined) {
55
+ return null;
56
+ }
57
+ const result = folders.map((folder) => {
58
+ return this.asProtocol(folder);
59
+ });
60
+ return result;
61
+ };
62
+ const middleware = client.middleware.workspace;
63
+ return middleware && middleware.workspaceFolders
64
+ ? middleware.workspaceFolders(token, workspaceFolders)
65
+ : workspaceFolders(token);
66
+ });
67
+ const value = access(access(access(capabilities, 'workspace'), 'workspaceFolders'), 'changeNotifications');
68
+ let id;
69
+ if (typeof value === 'string') {
70
+ id = value;
71
+ }
72
+ else if (value === true) {
73
+ id = UUID.generateUuid();
74
+ }
75
+ if (id) {
76
+ this.register({ id: id, registerOptions: undefined });
77
+ }
78
+ }
79
+ sendInitialEvent(currentWorkspaceFolders) {
80
+ let promise;
81
+ if (this._initialFolders && currentWorkspaceFolders) {
82
+ const removed = arrayDiff(this._initialFolders, currentWorkspaceFolders);
83
+ const added = arrayDiff(currentWorkspaceFolders, this._initialFolders);
84
+ if (added.length > 0 || removed.length > 0) {
85
+ promise = this.doSendEvent(added, removed);
86
+ }
87
+ }
88
+ else if (this._initialFolders) {
89
+ promise = this.doSendEvent([], this._initialFolders);
90
+ }
91
+ else if (currentWorkspaceFolders) {
92
+ promise = this.doSendEvent(currentWorkspaceFolders, []);
93
+ }
94
+ if (promise !== undefined) {
95
+ promise.catch((error) => {
96
+ this._client.error(`Sending notification ${vscode_languageserver_protocol_1.DidChangeWorkspaceFoldersNotification.type.method} failed`, error);
97
+ });
98
+ }
99
+ }
100
+ doSendEvent(addedFolders, removedFolders) {
101
+ let params = {
102
+ event: {
103
+ added: addedFolders.map(folder => this.asProtocol(folder)),
104
+ removed: removedFolders.map(folder => this.asProtocol(folder))
105
+ }
106
+ };
107
+ return this._client.sendNotification(vscode_languageserver_protocol_1.DidChangeWorkspaceFoldersNotification.type, params);
108
+ }
109
+ register(data) {
110
+ let id = data.id;
111
+ let client = this._client;
112
+ let disposable = vscode_1.workspace.onDidChangeWorkspaceFolders((event) => {
113
+ let didChangeWorkspaceFolders = (event) => {
114
+ return this.doSendEvent(event.added, event.removed);
115
+ };
116
+ let middleware = client.middleware.workspace;
117
+ const promise = middleware && middleware.didChangeWorkspaceFolders
118
+ ? middleware.didChangeWorkspaceFolders(event, didChangeWorkspaceFolders)
119
+ : didChangeWorkspaceFolders(event);
120
+ promise.catch((error) => {
121
+ this._client.error(`Sending notification ${vscode_languageserver_protocol_1.DidChangeWorkspaceFoldersNotification.type.method} failed`, error);
122
+ });
123
+ });
124
+ this._listeners.set(id, disposable);
125
+ this.sendInitialEvent(vscode_1.workspace.workspaceFolders);
126
+ }
127
+ unregister(id) {
128
+ let disposable = this._listeners.get(id);
129
+ if (disposable === void 0) {
130
+ return;
131
+ }
132
+ this._listeners.delete(id);
133
+ disposable.dispose();
134
+ }
135
+ clear() {
136
+ for (let disposable of this._listeners.values()) {
137
+ disposable.dispose();
138
+ }
139
+ this._listeners.clear();
140
+ }
141
+ asProtocol(workspaceFolder) {
142
+ if (workspaceFolder === void 0) {
143
+ return null;
144
+ }
145
+ return { uri: this._client.code2ProtocolConverter.asUri(workspaceFolder.uri), name: workspaceFolder.name };
146
+ }
147
+ }
148
+ exports.WorkspaceFoldersFeature = WorkspaceFoldersFeature;
@@ -0,0 +1,19 @@
1
+ import { Disposable, CancellationToken, ProviderResult, SymbolInformation as VSymbolInformation, WorkspaceSymbolProvider } from 'vscode';
2
+ import { ClientCapabilities, ServerCapabilities, WorkspaceSymbolRegistrationOptions } from 'vscode-languageserver-protocol';
3
+ import { FeatureClient, WorkspaceFeature } from './features';
4
+ export interface ProvideWorkspaceSymbolsSignature {
5
+ (this: void, query: string, token: CancellationToken): ProviderResult<VSymbolInformation[]>;
6
+ }
7
+ export interface ResolveWorkspaceSymbolSignature {
8
+ (this: void, item: VSymbolInformation, token: CancellationToken): ProviderResult<VSymbolInformation>;
9
+ }
10
+ export interface WorkspaceSymbolMiddleware {
11
+ provideWorkspaceSymbols?: (this: void, query: string, token: CancellationToken, next: ProvideWorkspaceSymbolsSignature) => ProviderResult<VSymbolInformation[]>;
12
+ resolveWorkspaceSymbol?: (this: void, item: VSymbolInformation, token: CancellationToken, next: ResolveWorkspaceSymbolSignature) => ProviderResult<VSymbolInformation>;
13
+ }
14
+ export declare class WorkspaceSymbolFeature extends WorkspaceFeature<WorkspaceSymbolRegistrationOptions, WorkspaceSymbolProvider, WorkspaceSymbolMiddleware> {
15
+ constructor(client: FeatureClient<WorkspaceSymbolMiddleware>);
16
+ fillClientCapabilities(capabilities: ClientCapabilities): void;
17
+ initialize(capabilities: ServerCapabilities): void;
18
+ protected registerLanguageProvider(options: WorkspaceSymbolRegistrationOptions): [Disposable, WorkspaceSymbolProvider];
19
+ }