@lvce-editor/server 0.0.2

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 (1776) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +7 -0
  3. package/ThirdPartyNotices.txt +134 -0
  4. package/bin/server.js +3 -0
  5. package/package.json +15 -0
  6. package/src/server.js +299 -0
  7. package/static/1914fad/config/builtinCommands.json +367 -0
  8. package/static/1914fad/config/colorTheme.json +98 -0
  9. package/static/1914fad/config/defaultKeyBindings.json +649 -0
  10. package/static/1914fad/config/defaultSettings.json +17 -0
  11. package/static/1914fad/css/App.css +2318 -0
  12. package/static/1914fad/file-icons/default_file.svg +1 -0
  13. package/static/1914fad/file-icons/default_folder.svg +1 -0
  14. package/static/1914fad/file-icons/default_folder_opened.svg +1 -0
  15. package/static/1914fad/file-icons/default_root_folder.svg +1 -0
  16. package/static/1914fad/file-icons/default_root_folder_opened.svg +1 -0
  17. package/static/1914fad/file-icons/file_type_access.svg +1 -0
  18. package/static/1914fad/file-icons/file_type_access2.svg +1 -0
  19. package/static/1914fad/file-icons/file_type_actionscript.svg +1 -0
  20. package/static/1914fad/file-icons/file_type_actionscript2.svg +1 -0
  21. package/static/1914fad/file-icons/file_type_ada.svg +1 -0
  22. package/static/1914fad/file-icons/file_type_advpl.svg +1 -0
  23. package/static/1914fad/file-icons/file_type_affectscript.svg +1 -0
  24. package/static/1914fad/file-icons/file_type_affinitydesigner.svg +1 -0
  25. package/static/1914fad/file-icons/file_type_affinityphoto.svg +1 -0
  26. package/static/1914fad/file-icons/file_type_affinitypublisher.svg +1 -0
  27. package/static/1914fad/file-icons/file_type_ai.svg +1 -0
  28. package/static/1914fad/file-icons/file_type_ai2.svg +1 -0
  29. package/static/1914fad/file-icons/file_type_al.svg +1 -0
  30. package/static/1914fad/file-icons/file_type_angular.svg +1 -0
  31. package/static/1914fad/file-icons/file_type_ansible.svg +1 -0
  32. package/static/1914fad/file-icons/file_type_antlr.svg +1 -0
  33. package/static/1914fad/file-icons/file_type_anyscript.svg +1 -0
  34. package/static/1914fad/file-icons/file_type_apache.svg +1 -0
  35. package/static/1914fad/file-icons/file_type_apex.svg +1 -0
  36. package/static/1914fad/file-icons/file_type_api_extractor.svg +1 -0
  37. package/static/1914fad/file-icons/file_type_apib.svg +1 -0
  38. package/static/1914fad/file-icons/file_type_apib2.svg +1 -0
  39. package/static/1914fad/file-icons/file_type_apl.svg +1 -0
  40. package/static/1914fad/file-icons/file_type_applescript.svg +1 -0
  41. package/static/1914fad/file-icons/file_type_appscript.svg +1 -0
  42. package/static/1914fad/file-icons/file_type_appsemble.svg +1 -0
  43. package/static/1914fad/file-icons/file_type_appveyor.svg +1 -0
  44. package/static/1914fad/file-icons/file_type_arduino.svg +1 -0
  45. package/static/1914fad/file-icons/file_type_asciidoc.svg +1 -0
  46. package/static/1914fad/file-icons/file_type_asp.svg +1 -0
  47. package/static/1914fad/file-icons/file_type_aspx.svg +1 -0
  48. package/static/1914fad/file-icons/file_type_assembly.svg +1 -0
  49. package/static/1914fad/file-icons/file_type_astro.svg +1 -0
  50. package/static/1914fad/file-icons/file_type_astroconfig.svg +1 -0
  51. package/static/1914fad/file-icons/file_type_ats.svg +1 -0
  52. package/static/1914fad/file-icons/file_type_audio.svg +1 -0
  53. package/static/1914fad/file-icons/file_type_aurelia.svg +1 -0
  54. package/static/1914fad/file-icons/file_type_autohotkey.svg +1 -0
  55. package/static/1914fad/file-icons/file_type_autoit.svg +1 -0
  56. package/static/1914fad/file-icons/file_type_avif.svg +1 -0
  57. package/static/1914fad/file-icons/file_type_avro.svg +1 -0
  58. package/static/1914fad/file-icons/file_type_awk.svg +1 -0
  59. package/static/1914fad/file-icons/file_type_aws.svg +1 -0
  60. package/static/1914fad/file-icons/file_type_azure.svg +1 -0
  61. package/static/1914fad/file-icons/file_type_azurepipelines.svg +1 -0
  62. package/static/1914fad/file-icons/file_type_babel.svg +1 -0
  63. package/static/1914fad/file-icons/file_type_babel2.svg +1 -0
  64. package/static/1914fad/file-icons/file_type_ballerina.svg +1 -0
  65. package/static/1914fad/file-icons/file_type_bat.svg +1 -0
  66. package/static/1914fad/file-icons/file_type_bats.svg +1 -0
  67. package/static/1914fad/file-icons/file_type_bazaar.svg +1 -0
  68. package/static/1914fad/file-icons/file_type_bazel.svg +1 -0
  69. package/static/1914fad/file-icons/file_type_befunge.svg +1 -0
  70. package/static/1914fad/file-icons/file_type_bicep.svg +1 -0
  71. package/static/1914fad/file-icons/file_type_biml.svg +1 -0
  72. package/static/1914fad/file-icons/file_type_binary.svg +1 -0
  73. package/static/1914fad/file-icons/file_type_bitbucketpipeline.svg +1 -0
  74. package/static/1914fad/file-icons/file_type_bithound.svg +1 -0
  75. package/static/1914fad/file-icons/file_type_blade.svg +1 -0
  76. package/static/1914fad/file-icons/file_type_blitzbasic.svg +1 -0
  77. package/static/1914fad/file-icons/file_type_bolt.svg +1 -0
  78. package/static/1914fad/file-icons/file_type_bosque.svg +1 -0
  79. package/static/1914fad/file-icons/file_type_bower.svg +1 -0
  80. package/static/1914fad/file-icons/file_type_bower2.svg +1 -0
  81. package/static/1914fad/file-icons/file_type_browserslist.svg +1 -0
  82. package/static/1914fad/file-icons/file_type_buckbuild.svg +1 -0
  83. package/static/1914fad/file-icons/file_type_bundler.svg +1 -0
  84. package/static/1914fad/file-icons/file_type_c.svg +1 -0
  85. package/static/1914fad/file-icons/file_type_c2.svg +1 -0
  86. package/static/1914fad/file-icons/file_type_c3.svg +1 -0
  87. package/static/1914fad/file-icons/file_type_c_al.svg +1 -0
  88. package/static/1914fad/file-icons/file_type_cabal.svg +1 -0
  89. package/static/1914fad/file-icons/file_type_caddy.svg +1 -0
  90. package/static/1914fad/file-icons/file_type_cake.svg +1 -0
  91. package/static/1914fad/file-icons/file_type_cakephp.svg +1 -0
  92. package/static/1914fad/file-icons/file_type_capacitor.svg +1 -0
  93. package/static/1914fad/file-icons/file_type_cargo.svg +1 -0
  94. package/static/1914fad/file-icons/file_type_casc.svg +1 -0
  95. package/static/1914fad/file-icons/file_type_cddl.svg +1 -0
  96. package/static/1914fad/file-icons/file_type_cert.svg +1 -0
  97. package/static/1914fad/file-icons/file_type_ceylon.svg +1 -0
  98. package/static/1914fad/file-icons/file_type_cf.svg +1 -0
  99. package/static/1914fad/file-icons/file_type_cf2.svg +1 -0
  100. package/static/1914fad/file-icons/file_type_cfc.svg +1 -0
  101. package/static/1914fad/file-icons/file_type_cfc2.svg +1 -0
  102. package/static/1914fad/file-icons/file_type_cfm.svg +1 -0
  103. package/static/1914fad/file-icons/file_type_cfm2.svg +1 -0
  104. package/static/1914fad/file-icons/file_type_cheader.svg +1 -0
  105. package/static/1914fad/file-icons/file_type_chef.svg +1 -0
  106. package/static/1914fad/file-icons/file_type_chef_cookbook.svg +1 -0
  107. package/static/1914fad/file-icons/file_type_circleci.svg +1 -0
  108. package/static/1914fad/file-icons/file_type_class.svg +1 -0
  109. package/static/1914fad/file-icons/file_type_clojure.svg +1 -0
  110. package/static/1914fad/file-icons/file_type_clojurescript.svg +1 -0
  111. package/static/1914fad/file-icons/file_type_cloudfoundry.svg +1 -0
  112. package/static/1914fad/file-icons/file_type_cmake.svg +1 -0
  113. package/static/1914fad/file-icons/file_type_cobol.svg +1 -0
  114. package/static/1914fad/file-icons/file_type_codacy.svg +1 -0
  115. package/static/1914fad/file-icons/file_type_codeclimate.svg +1 -0
  116. package/static/1914fad/file-icons/file_type_codecov.svg +1 -0
  117. package/static/1914fad/file-icons/file_type_codekit.svg +1 -0
  118. package/static/1914fad/file-icons/file_type_codeowners.svg +1 -0
  119. package/static/1914fad/file-icons/file_type_codeql.svg +1 -0
  120. package/static/1914fad/file-icons/file_type_coffeelint.svg +1 -0
  121. package/static/1914fad/file-icons/file_type_coffeescript.svg +1 -0
  122. package/static/1914fad/file-icons/file_type_commitizen.svg +1 -0
  123. package/static/1914fad/file-icons/file_type_commitlint.svg +1 -0
  124. package/static/1914fad/file-icons/file_type_compass.svg +1 -0
  125. package/static/1914fad/file-icons/file_type_composer.svg +1 -0
  126. package/static/1914fad/file-icons/file_type_conan.svg +1 -0
  127. package/static/1914fad/file-icons/file_type_conda.svg +1 -0
  128. package/static/1914fad/file-icons/file_type_config.svg +1 -0
  129. package/static/1914fad/file-icons/file_type_confluence.svg +1 -0
  130. package/static/1914fad/file-icons/file_type_coveralls.svg +1 -0
  131. package/static/1914fad/file-icons/file_type_cpp.svg +1 -0
  132. package/static/1914fad/file-icons/file_type_cpp2.svg +1 -0
  133. package/static/1914fad/file-icons/file_type_cpp3.svg +1 -0
  134. package/static/1914fad/file-icons/file_type_cppheader.svg +1 -0
  135. package/static/1914fad/file-icons/file_type_crowdin.svg +1 -0
  136. package/static/1914fad/file-icons/file_type_crystal.svg +1 -0
  137. package/static/1914fad/file-icons/file_type_csharp.svg +1 -0
  138. package/static/1914fad/file-icons/file_type_csharp2.svg +1 -0
  139. package/static/1914fad/file-icons/file_type_csproj.svg +1 -0
  140. package/static/1914fad/file-icons/file_type_css.svg +1 -0
  141. package/static/1914fad/file-icons/file_type_csscomb.svg +1 -0
  142. package/static/1914fad/file-icons/file_type_csslint.svg +1 -0
  143. package/static/1914fad/file-icons/file_type_cssmap.svg +1 -0
  144. package/static/1914fad/file-icons/file_type_cucumber.svg +1 -0
  145. package/static/1914fad/file-icons/file_type_cuda.svg +1 -0
  146. package/static/1914fad/file-icons/file_type_cvs.svg +1 -0
  147. package/static/1914fad/file-icons/file_type_cypress.svg +1 -0
  148. package/static/1914fad/file-icons/file_type_cypress_spec.svg +1 -0
  149. package/static/1914fad/file-icons/file_type_cython.svg +1 -0
  150. package/static/1914fad/file-icons/file_type_dal.svg +1 -0
  151. package/static/1914fad/file-icons/file_type_darcs.svg +1 -0
  152. package/static/1914fad/file-icons/file_type_dartlang.svg +1 -0
  153. package/static/1914fad/file-icons/file_type_dartlang_generated.svg +1 -0
  154. package/static/1914fad/file-icons/file_type_dartlang_ignore.svg +1 -0
  155. package/static/1914fad/file-icons/file_type_db.svg +1 -0
  156. package/static/1914fad/file-icons/file_type_delphi.svg +1 -0
  157. package/static/1914fad/file-icons/file_type_dependabot.svg +1 -0
  158. package/static/1914fad/file-icons/file_type_dependencies.svg +1 -0
  159. package/static/1914fad/file-icons/file_type_devcontainer.svg +1 -0
  160. package/static/1914fad/file-icons/file_type_dhall.svg +1 -0
  161. package/static/1914fad/file-icons/file_type_diff.svg +1 -0
  162. package/static/1914fad/file-icons/file_type_django.svg +1 -0
  163. package/static/1914fad/file-icons/file_type_dlang.svg +1 -0
  164. package/static/1914fad/file-icons/file_type_docker.svg +1 -0
  165. package/static/1914fad/file-icons/file_type_docker2.svg +1 -0
  166. package/static/1914fad/file-icons/file_type_dockertest.svg +1 -0
  167. package/static/1914fad/file-icons/file_type_dockertest2.svg +1 -0
  168. package/static/1914fad/file-icons/file_type_docpad.svg +1 -0
  169. package/static/1914fad/file-icons/file_type_docz.svg +1 -0
  170. package/static/1914fad/file-icons/file_type_dojo.svg +1 -0
  171. package/static/1914fad/file-icons/file_type_doppler.svg +1 -0
  172. package/static/1914fad/file-icons/file_type_dotjs.svg +1 -0
  173. package/static/1914fad/file-icons/file_type_doxygen.svg +1 -0
  174. package/static/1914fad/file-icons/file_type_drawio.svg +1 -0
  175. package/static/1914fad/file-icons/file_type_drone.svg +1 -0
  176. package/static/1914fad/file-icons/file_type_drools.svg +1 -0
  177. package/static/1914fad/file-icons/file_type_dustjs.svg +1 -0
  178. package/static/1914fad/file-icons/file_type_dvc.svg +1 -0
  179. package/static/1914fad/file-icons/file_type_dylan.svg +1 -0
  180. package/static/1914fad/file-icons/file_type_earthly.svg +1 -0
  181. package/static/1914fad/file-icons/file_type_edge.svg +1 -0
  182. package/static/1914fad/file-icons/file_type_edge2.svg +1 -0
  183. package/static/1914fad/file-icons/file_type_editorconfig.svg +1 -0
  184. package/static/1914fad/file-icons/file_type_eex.svg +1 -0
  185. package/static/1914fad/file-icons/file_type_ejs.svg +1 -0
  186. package/static/1914fad/file-icons/file_type_elastic.svg +1 -0
  187. package/static/1914fad/file-icons/file_type_elasticbeanstalk.svg +1 -0
  188. package/static/1914fad/file-icons/file_type_elixir.svg +1 -0
  189. package/static/1914fad/file-icons/file_type_elm.svg +1 -0
  190. package/static/1914fad/file-icons/file_type_elm2.svg +1 -0
  191. package/static/1914fad/file-icons/file_type_emacs.svg +1 -0
  192. package/static/1914fad/file-icons/file_type_ember.svg +1 -0
  193. package/static/1914fad/file-icons/file_type_ensime.svg +1 -0
  194. package/static/1914fad/file-icons/file_type_eps.svg +1 -0
  195. package/static/1914fad/file-icons/file_type_erb.svg +1 -0
  196. package/static/1914fad/file-icons/file_type_erlang.svg +1 -0
  197. package/static/1914fad/file-icons/file_type_erlang2.svg +1 -0
  198. package/static/1914fad/file-icons/file_type_eslint.svg +1 -0
  199. package/static/1914fad/file-icons/file_type_eslint2.svg +1 -0
  200. package/static/1914fad/file-icons/file_type_excel.svg +1 -0
  201. package/static/1914fad/file-icons/file_type_excel2.svg +1 -0
  202. package/static/1914fad/file-icons/file_type_expo.svg +1 -0
  203. package/static/1914fad/file-icons/file_type_falcon.svg +1 -0
  204. package/static/1914fad/file-icons/file_type_fauna.svg +1 -0
  205. package/static/1914fad/file-icons/file_type_favicon.svg +1 -0
  206. package/static/1914fad/file-icons/file_type_fbx.svg +1 -0
  207. package/static/1914fad/file-icons/file_type_firebase.svg +1 -0
  208. package/static/1914fad/file-icons/file_type_firebasehosting.svg +1 -0
  209. package/static/1914fad/file-icons/file_type_firestore.svg +1 -0
  210. package/static/1914fad/file-icons/file_type_fitbit.svg +1 -0
  211. package/static/1914fad/file-icons/file_type_fla.svg +1 -0
  212. package/static/1914fad/file-icons/file_type_flareact.svg +1 -0
  213. package/static/1914fad/file-icons/file_type_flash.svg +1 -0
  214. package/static/1914fad/file-icons/file_type_floobits.svg +1 -0
  215. package/static/1914fad/file-icons/file_type_flow.svg +1 -0
  216. package/static/1914fad/file-icons/file_type_flutter.svg +1 -0
  217. package/static/1914fad/file-icons/file_type_flutter_package.svg +1 -0
  218. package/static/1914fad/file-icons/file_type_font.svg +1 -0
  219. package/static/1914fad/file-icons/file_type_formkit.svg +1 -0
  220. package/static/1914fad/file-icons/file_type_fortran.svg +1 -0
  221. package/static/1914fad/file-icons/file_type_fossa.svg +1 -0
  222. package/static/1914fad/file-icons/file_type_fossil.svg +1 -0
  223. package/static/1914fad/file-icons/file_type_freemarker.svg +1 -0
  224. package/static/1914fad/file-icons/file_type_fsharp.svg +1 -0
  225. package/static/1914fad/file-icons/file_type_fsharp2.svg +1 -0
  226. package/static/1914fad/file-icons/file_type_fsproj.svg +1 -0
  227. package/static/1914fad/file-icons/file_type_fthtml.svg +1 -0
  228. package/static/1914fad/file-icons/file_type_funding.svg +1 -0
  229. package/static/1914fad/file-icons/file_type_fusebox.svg +1 -0
  230. package/static/1914fad/file-icons/file_type_galen.svg +1 -0
  231. package/static/1914fad/file-icons/file_type_galen2.svg +1 -0
  232. package/static/1914fad/file-icons/file_type_gamemaker.svg +1 -0
  233. package/static/1914fad/file-icons/file_type_gamemaker2.svg +1 -0
  234. package/static/1914fad/file-icons/file_type_gamemaker81.svg +1 -0
  235. package/static/1914fad/file-icons/file_type_gatsby.svg +1 -0
  236. package/static/1914fad/file-icons/file_type_gcode.svg +1 -0
  237. package/static/1914fad/file-icons/file_type_genstat.svg +1 -0
  238. package/static/1914fad/file-icons/file_type_git.svg +1 -0
  239. package/static/1914fad/file-icons/file_type_git2.svg +1 -0
  240. package/static/1914fad/file-icons/file_type_gitlab.svg +1 -0
  241. package/static/1914fad/file-icons/file_type_gitpod.svg +1 -0
  242. package/static/1914fad/file-icons/file_type_glide.svg +1 -0
  243. package/static/1914fad/file-icons/file_type_glitter.svg +1 -0
  244. package/static/1914fad/file-icons/file_type_glsl.svg +1 -0
  245. package/static/1914fad/file-icons/file_type_glyphs.svg +1 -0
  246. package/static/1914fad/file-icons/file_type_gnuplot.svg +1 -0
  247. package/static/1914fad/file-icons/file_type_go.svg +1 -0
  248. package/static/1914fad/file-icons/file_type_go_aqua.svg +1 -0
  249. package/static/1914fad/file-icons/file_type_go_black.svg +1 -0
  250. package/static/1914fad/file-icons/file_type_go_fuchsia.svg +1 -0
  251. package/static/1914fad/file-icons/file_type_go_gopher.svg +1 -0
  252. package/static/1914fad/file-icons/file_type_go_lightblue.svg +1 -0
  253. package/static/1914fad/file-icons/file_type_go_package.svg +1 -0
  254. package/static/1914fad/file-icons/file_type_go_white.svg +1 -0
  255. package/static/1914fad/file-icons/file_type_go_yellow.svg +1 -0
  256. package/static/1914fad/file-icons/file_type_goctl.svg +1 -0
  257. package/static/1914fad/file-icons/file_type_godot.svg +1 -0
  258. package/static/1914fad/file-icons/file_type_gradle.svg +1 -0
  259. package/static/1914fad/file-icons/file_type_gradle2.svg +1 -0
  260. package/static/1914fad/file-icons/file_type_graphql.svg +1 -0
  261. package/static/1914fad/file-icons/file_type_graphql_config.svg +1 -0
  262. package/static/1914fad/file-icons/file_type_graphviz.svg +1 -0
  263. package/static/1914fad/file-icons/file_type_greenkeeper.svg +1 -0
  264. package/static/1914fad/file-icons/file_type_gridsome.svg +1 -0
  265. package/static/1914fad/file-icons/file_type_groovy.svg +1 -0
  266. package/static/1914fad/file-icons/file_type_groovy2.svg +1 -0
  267. package/static/1914fad/file-icons/file_type_grunt.svg +1 -0
  268. package/static/1914fad/file-icons/file_type_gulp.svg +1 -0
  269. package/static/1914fad/file-icons/file_type_haml.svg +1 -0
  270. package/static/1914fad/file-icons/file_type_handlebars.svg +1 -0
  271. package/static/1914fad/file-icons/file_type_handlebars2.svg +1 -0
  272. package/static/1914fad/file-icons/file_type_harbour.svg +1 -0
  273. package/static/1914fad/file-icons/file_type_hardhat.svg +1 -0
  274. package/static/1914fad/file-icons/file_type_haskell.svg +1 -0
  275. package/static/1914fad/file-icons/file_type_haskell2.svg +1 -0
  276. package/static/1914fad/file-icons/file_type_haxe.svg +1 -0
  277. package/static/1914fad/file-icons/file_type_haxecheckstyle.svg +1 -0
  278. package/static/1914fad/file-icons/file_type_haxedevelop.svg +1 -0
  279. package/static/1914fad/file-icons/file_type_helix.svg +1 -0
  280. package/static/1914fad/file-icons/file_type_helm.svg +1 -0
  281. package/static/1914fad/file-icons/file_type_hjson.svg +1 -0
  282. package/static/1914fad/file-icons/file_type_hlsl.svg +1 -0
  283. package/static/1914fad/file-icons/file_type_homeassistant.svg +1 -0
  284. package/static/1914fad/file-icons/file_type_horusec.svg +1 -0
  285. package/static/1914fad/file-icons/file_type_host.svg +1 -0
  286. package/static/1914fad/file-icons/file_type_html.svg +1 -0
  287. package/static/1914fad/file-icons/file_type_htmlhint.svg +1 -0
  288. package/static/1914fad/file-icons/file_type_http.svg +1 -0
  289. package/static/1914fad/file-icons/file_type_hunspell.svg +1 -0
  290. package/static/1914fad/file-icons/file_type_husky.svg +1 -0
  291. package/static/1914fad/file-icons/file_type_hy.svg +1 -0
  292. package/static/1914fad/file-icons/file_type_hygen.svg +1 -0
  293. package/static/1914fad/file-icons/file_type_hypr.svg +1 -0
  294. package/static/1914fad/file-icons/file_type_icl.svg +1 -0
  295. package/static/1914fad/file-icons/file_type_idris.svg +1 -0
  296. package/static/1914fad/file-icons/file_type_idrisbin.svg +1 -0
  297. package/static/1914fad/file-icons/file_type_idrispkg.svg +1 -0
  298. package/static/1914fad/file-icons/file_type_image.svg +1 -0
  299. package/static/1914fad/file-icons/file_type_imba.svg +1 -0
  300. package/static/1914fad/file-icons/file_type_inc.svg +1 -0
  301. package/static/1914fad/file-icons/file_type_infopath.svg +1 -0
  302. package/static/1914fad/file-icons/file_type_informix.svg +1 -0
  303. package/static/1914fad/file-icons/file_type_ini.svg +1 -0
  304. package/static/1914fad/file-icons/file_type_ink.svg +1 -0
  305. package/static/1914fad/file-icons/file_type_innosetup.svg +1 -0
  306. package/static/1914fad/file-icons/file_type_io.svg +1 -0
  307. package/static/1914fad/file-icons/file_type_iodine.svg +1 -0
  308. package/static/1914fad/file-icons/file_type_ionic.svg +1 -0
  309. package/static/1914fad/file-icons/file_type_jake.svg +1 -0
  310. package/static/1914fad/file-icons/file_type_janet.svg +1 -0
  311. package/static/1914fad/file-icons/file_type_jar.svg +1 -0
  312. package/static/1914fad/file-icons/file_type_jasmine.svg +1 -0
  313. package/static/1914fad/file-icons/file_type_java.svg +1 -0
  314. package/static/1914fad/file-icons/file_type_jbuilder.svg +1 -0
  315. package/static/1914fad/file-icons/file_type_jekyll.svg +1 -0
  316. package/static/1914fad/file-icons/file_type_jenkins.svg +1 -0
  317. package/static/1914fad/file-icons/file_type_jest.svg +1 -0
  318. package/static/1914fad/file-icons/file_type_jest_snapshot.svg +1 -0
  319. package/static/1914fad/file-icons/file_type_jinja.svg +1 -0
  320. package/static/1914fad/file-icons/file_type_jpm.svg +1 -0
  321. package/static/1914fad/file-icons/file_type_js.svg +1 -0
  322. package/static/1914fad/file-icons/file_type_js_official.svg +1 -0
  323. package/static/1914fad/file-icons/file_type_jsbeautify.svg +1 -0
  324. package/static/1914fad/file-icons/file_type_jsconfig.svg +1 -0
  325. package/static/1914fad/file-icons/file_type_jscpd.svg +1 -0
  326. package/static/1914fad/file-icons/file_type_jshint.svg +1 -0
  327. package/static/1914fad/file-icons/file_type_jsmap.svg +1 -0
  328. package/static/1914fad/file-icons/file_type_json.svg +1 -0
  329. package/static/1914fad/file-icons/file_type_json2.svg +1 -0
  330. package/static/1914fad/file-icons/file_type_json5.svg +1 -0
  331. package/static/1914fad/file-icons/file_type_json_official.svg +1 -0
  332. package/static/1914fad/file-icons/file_type_jsonld.svg +1 -0
  333. package/static/1914fad/file-icons/file_type_jsonnet.svg +1 -0
  334. package/static/1914fad/file-icons/file_type_jsp.svg +1 -0
  335. package/static/1914fad/file-icons/file_type_jss.svg +1 -0
  336. package/static/1914fad/file-icons/file_type_julia.svg +1 -0
  337. package/static/1914fad/file-icons/file_type_julia2.svg +1 -0
  338. package/static/1914fad/file-icons/file_type_jupyter.svg +1 -0
  339. package/static/1914fad/file-icons/file_type_k.svg +1 -0
  340. package/static/1914fad/file-icons/file_type_karma.svg +1 -0
  341. package/static/1914fad/file-icons/file_type_key.svg +1 -0
  342. package/static/1914fad/file-icons/file_type_kitchenci.svg +1 -0
  343. package/static/1914fad/file-icons/file_type_kite.svg +1 -0
  344. package/static/1914fad/file-icons/file_type_kivy.svg +1 -0
  345. package/static/1914fad/file-icons/file_type_kos.svg +1 -0
  346. package/static/1914fad/file-icons/file_type_kotlin.svg +1 -0
  347. package/static/1914fad/file-icons/file_type_kusto.svg +1 -0
  348. package/static/1914fad/file-icons/file_type_latino.svg +1 -0
  349. package/static/1914fad/file-icons/file_type_layout.svg +1 -0
  350. package/static/1914fad/file-icons/file_type_lerna.svg +1 -0
  351. package/static/1914fad/file-icons/file_type_less.svg +1 -0
  352. package/static/1914fad/file-icons/file_type_lex.svg +1 -0
  353. package/static/1914fad/file-icons/file_type_license.svg +1 -0
  354. package/static/1914fad/file-icons/file_type_licensebat.svg +1 -0
  355. package/static/1914fad/file-icons/file_type_light_actionscript2.svg +1 -0
  356. package/static/1914fad/file-icons/file_type_light_ada.svg +1 -0
  357. package/static/1914fad/file-icons/file_type_light_apl.svg +1 -0
  358. package/static/1914fad/file-icons/file_type_light_babel.svg +1 -0
  359. package/static/1914fad/file-icons/file_type_light_babel2.svg +1 -0
  360. package/static/1914fad/file-icons/file_type_light_cabal.svg +1 -0
  361. package/static/1914fad/file-icons/file_type_light_circleci.svg +1 -0
  362. package/static/1914fad/file-icons/file_type_light_cloudfoundry.svg +1 -0
  363. package/static/1914fad/file-icons/file_type_light_codacy.svg +1 -0
  364. package/static/1914fad/file-icons/file_type_light_codeclimate.svg +1 -0
  365. package/static/1914fad/file-icons/file_type_light_codeowners.svg +1 -0
  366. package/static/1914fad/file-icons/file_type_light_config.svg +1 -0
  367. package/static/1914fad/file-icons/file_type_light_crystal.svg +1 -0
  368. package/static/1914fad/file-icons/file_type_light_cypress.svg +1 -0
  369. package/static/1914fad/file-icons/file_type_light_cypress_spec.svg +1 -0
  370. package/static/1914fad/file-icons/file_type_light_db.svg +1 -0
  371. package/static/1914fad/file-icons/file_type_light_dhall.svg +1 -0
  372. package/static/1914fad/file-icons/file_type_light_docpad.svg +1 -0
  373. package/static/1914fad/file-icons/file_type_light_drone.svg +1 -0
  374. package/static/1914fad/file-icons/file_type_light_expo.svg +1 -0
  375. package/static/1914fad/file-icons/file_type_light_firebasehosting.svg +1 -0
  376. package/static/1914fad/file-icons/file_type_light_fla.svg +1 -0
  377. package/static/1914fad/file-icons/file_type_light_font.svg +1 -0
  378. package/static/1914fad/file-icons/file_type_light_gamemaker2.svg +1 -0
  379. package/static/1914fad/file-icons/file_type_light_gradle.svg +1 -0
  380. package/static/1914fad/file-icons/file_type_light_hjson.svg +1 -0
  381. package/static/1914fad/file-icons/file_type_light_ini.svg +1 -0
  382. package/static/1914fad/file-icons/file_type_light_io.svg +1 -0
  383. package/static/1914fad/file-icons/file_type_light_js.svg +1 -0
  384. package/static/1914fad/file-icons/file_type_light_jsconfig.svg +1 -0
  385. package/static/1914fad/file-icons/file_type_light_jsmap.svg +1 -0
  386. package/static/1914fad/file-icons/file_type_light_json.svg +1 -0
  387. package/static/1914fad/file-icons/file_type_light_json5.svg +1 -0
  388. package/static/1914fad/file-icons/file_type_light_jsonld.svg +1 -0
  389. package/static/1914fad/file-icons/file_type_light_kite.svg +1 -0
  390. package/static/1914fad/file-icons/file_type_light_lerna.svg +1 -0
  391. package/static/1914fad/file-icons/file_type_light_mdx.svg +1 -0
  392. package/static/1914fad/file-icons/file_type_light_mlang.svg +1 -0
  393. package/static/1914fad/file-icons/file_type_light_mustache.svg +1 -0
  394. package/static/1914fad/file-icons/file_type_light_next.svg +1 -0
  395. package/static/1914fad/file-icons/file_type_light_nim.svg +1 -0
  396. package/static/1914fad/file-icons/file_type_light_objidconfig.svg +1 -0
  397. package/static/1914fad/file-icons/file_type_light_openHAB.svg +1 -0
  398. package/static/1914fad/file-icons/file_type_light_pcl.svg +1 -0
  399. package/static/1914fad/file-icons/file_type_light_pnpm.svg +1 -0
  400. package/static/1914fad/file-icons/file_type_light_prettier.svg +1 -0
  401. package/static/1914fad/file-icons/file_type_light_prisma.svg +1 -0
  402. package/static/1914fad/file-icons/file_type_light_purescript.svg +1 -0
  403. package/static/1914fad/file-icons/file_type_light_quasar.svg +1 -0
  404. package/static/1914fad/file-icons/file_type_light_razzle.svg +1 -0
  405. package/static/1914fad/file-icons/file_type_light_rehype.svg +1 -0
  406. package/static/1914fad/file-icons/file_type_light_remark.svg +1 -0
  407. package/static/1914fad/file-icons/file_type_light_replit.svg +1 -0
  408. package/static/1914fad/file-icons/file_type_light_retext.svg +1 -0
  409. package/static/1914fad/file-icons/file_type_light_rubocop.svg +1 -0
  410. package/static/1914fad/file-icons/file_type_light_rust.svg +1 -0
  411. package/static/1914fad/file-icons/file_type_light_rust_toolchain.svg +1 -0
  412. package/static/1914fad/file-icons/file_type_light_shaderlab.svg +1 -0
  413. package/static/1914fad/file-icons/file_type_light_solidity.svg +1 -0
  414. package/static/1914fad/file-icons/file_type_light_stylelint.svg +1 -0
  415. package/static/1914fad/file-icons/file_type_light_stylus.svg +1 -0
  416. package/static/1914fad/file-icons/file_type_light_symfony.svg +1 -0
  417. package/static/1914fad/file-icons/file_type_light_systemd.svg +1 -0
  418. package/static/1914fad/file-icons/file_type_light_systemverilog.svg +1 -0
  419. package/static/1914fad/file-icons/file_type_light_testcafe.svg +1 -0
  420. package/static/1914fad/file-icons/file_type_light_testjs.svg +1 -0
  421. package/static/1914fad/file-icons/file_type_light_tex.svg +1 -0
  422. package/static/1914fad/file-icons/file_type_light_todo.svg +1 -0
  423. package/static/1914fad/file-icons/file_type_light_toit.svg +1 -0
  424. package/static/1914fad/file-icons/file_type_light_toml.svg +1 -0
  425. package/static/1914fad/file-icons/file_type_light_turbo.svg +1 -0
  426. package/static/1914fad/file-icons/file_type_light_unibeautify.svg +1 -0
  427. package/static/1914fad/file-icons/file_type_light_vash.svg +1 -0
  428. package/static/1914fad/file-icons/file_type_light_vsix.svg +1 -0
  429. package/static/1914fad/file-icons/file_type_light_vsixmanifest.svg +1 -0
  430. package/static/1914fad/file-icons/file_type_light_xfl.svg +1 -0
  431. package/static/1914fad/file-icons/file_type_light_yaml.svg +1 -0
  432. package/static/1914fad/file-icons/file_type_light_zeit.svg +1 -0
  433. package/static/1914fad/file-icons/file_type_lighthouse.svg +1 -0
  434. package/static/1914fad/file-icons/file_type_lime.svg +1 -0
  435. package/static/1914fad/file-icons/file_type_lintstagedrc.svg +1 -0
  436. package/static/1914fad/file-icons/file_type_liquid.svg +1 -0
  437. package/static/1914fad/file-icons/file_type_lisp.svg +1 -0
  438. package/static/1914fad/file-icons/file_type_livescript.svg +1 -0
  439. package/static/1914fad/file-icons/file_type_lnk.svg +1 -0
  440. package/static/1914fad/file-icons/file_type_locale.svg +1 -0
  441. package/static/1914fad/file-icons/file_type_log.svg +1 -0
  442. package/static/1914fad/file-icons/file_type_lolcode.svg +1 -0
  443. package/static/1914fad/file-icons/file_type_lsl.svg +1 -0
  444. package/static/1914fad/file-icons/file_type_lua.svg +1 -0
  445. package/static/1914fad/file-icons/file_type_luau.svg +1 -0
  446. package/static/1914fad/file-icons/file_type_lync.svg +1 -0
  447. package/static/1914fad/file-icons/file_type_makefile.svg +1 -0
  448. package/static/1914fad/file-icons/file_type_manifest.svg +1 -0
  449. package/static/1914fad/file-icons/file_type_manifest_bak.svg +1 -0
  450. package/static/1914fad/file-icons/file_type_manifest_skip.svg +1 -0
  451. package/static/1914fad/file-icons/file_type_map.svg +1 -0
  452. package/static/1914fad/file-icons/file_type_mariadb.svg +1 -0
  453. package/static/1914fad/file-icons/file_type_markdown.svg +1 -0
  454. package/static/1914fad/file-icons/file_type_markdownlint.svg +1 -0
  455. package/static/1914fad/file-icons/file_type_markdownlint_ignore.svg +1 -0
  456. package/static/1914fad/file-icons/file_type_marko.svg +1 -0
  457. package/static/1914fad/file-icons/file_type_markojs.svg +1 -0
  458. package/static/1914fad/file-icons/file_type_matlab.svg +1 -0
  459. package/static/1914fad/file-icons/file_type_maven.svg +1 -0
  460. package/static/1914fad/file-icons/file_type_maxscript.svg +1 -0
  461. package/static/1914fad/file-icons/file_type_maya.svg +1 -0
  462. package/static/1914fad/file-icons/file_type_mdx.svg +1 -0
  463. package/static/1914fad/file-icons/file_type_mediawiki.svg +1 -0
  464. package/static/1914fad/file-icons/file_type_mercurial.svg +1 -0
  465. package/static/1914fad/file-icons/file_type_meson.svg +1 -0
  466. package/static/1914fad/file-icons/file_type_meteor.svg +1 -0
  467. package/static/1914fad/file-icons/file_type_mjml.svg +1 -0
  468. package/static/1914fad/file-icons/file_type_mlang.svg +1 -0
  469. package/static/1914fad/file-icons/file_type_mocha.svg +1 -0
  470. package/static/1914fad/file-icons/file_type_modernizr.svg +1 -0
  471. package/static/1914fad/file-icons/file_type_mojolicious.svg +1 -0
  472. package/static/1914fad/file-icons/file_type_moleculer.svg +1 -0
  473. package/static/1914fad/file-icons/file_type_mongo.svg +1 -0
  474. package/static/1914fad/file-icons/file_type_monotone.svg +1 -0
  475. package/static/1914fad/file-icons/file_type_mson.svg +1 -0
  476. package/static/1914fad/file-icons/file_type_mustache.svg +1 -0
  477. package/static/1914fad/file-icons/file_type_mysql.svg +1 -0
  478. package/static/1914fad/file-icons/file_type_ndst.svg +7 -0
  479. package/static/1914fad/file-icons/file_type_nearly.svg +1 -0
  480. package/static/1914fad/file-icons/file_type_nest_adapter_js.svg +1 -0
  481. package/static/1914fad/file-icons/file_type_nest_adapter_ts.svg +1 -0
  482. package/static/1914fad/file-icons/file_type_nest_controller_js.svg +1 -0
  483. package/static/1914fad/file-icons/file_type_nest_controller_ts.svg +1 -0
  484. package/static/1914fad/file-icons/file_type_nest_decorator_js.svg +1 -0
  485. package/static/1914fad/file-icons/file_type_nest_decorator_ts.svg +1 -0
  486. package/static/1914fad/file-icons/file_type_nest_filter_js.svg +1 -0
  487. package/static/1914fad/file-icons/file_type_nest_filter_ts.svg +1 -0
  488. package/static/1914fad/file-icons/file_type_nest_gateway_js.svg +1 -0
  489. package/static/1914fad/file-icons/file_type_nest_gateway_ts.svg +1 -0
  490. package/static/1914fad/file-icons/file_type_nest_guard_js.svg +1 -0
  491. package/static/1914fad/file-icons/file_type_nest_guard_ts.svg +1 -0
  492. package/static/1914fad/file-icons/file_type_nest_interceptor_js.svg +1 -0
  493. package/static/1914fad/file-icons/file_type_nest_interceptor_ts.svg +1 -0
  494. package/static/1914fad/file-icons/file_type_nest_middleware_js.svg +1 -0
  495. package/static/1914fad/file-icons/file_type_nest_middleware_ts.svg +1 -0
  496. package/static/1914fad/file-icons/file_type_nest_module_js.svg +1 -0
  497. package/static/1914fad/file-icons/file_type_nest_module_ts.svg +1 -0
  498. package/static/1914fad/file-icons/file_type_nest_pipe_js.svg +1 -0
  499. package/static/1914fad/file-icons/file_type_nest_pipe_ts.svg +1 -0
  500. package/static/1914fad/file-icons/file_type_nest_service_js.svg +1 -0
  501. package/static/1914fad/file-icons/file_type_nest_service_ts.svg +1 -0
  502. package/static/1914fad/file-icons/file_type_nestjs.svg +1 -0
  503. package/static/1914fad/file-icons/file_type_netlify.svg +1 -0
  504. package/static/1914fad/file-icons/file_type_next.svg +1 -0
  505. package/static/1914fad/file-icons/file_type_ng_component_css.svg +1 -0
  506. package/static/1914fad/file-icons/file_type_ng_component_dart.svg +1 -0
  507. package/static/1914fad/file-icons/file_type_ng_component_html.svg +1 -0
  508. package/static/1914fad/file-icons/file_type_ng_component_js.svg +1 -0
  509. package/static/1914fad/file-icons/file_type_ng_component_js2.svg +1 -0
  510. package/static/1914fad/file-icons/file_type_ng_component_less.svg +1 -0
  511. package/static/1914fad/file-icons/file_type_ng_component_sass.svg +1 -0
  512. package/static/1914fad/file-icons/file_type_ng_component_scss.svg +1 -0
  513. package/static/1914fad/file-icons/file_type_ng_component_ts.svg +1 -0
  514. package/static/1914fad/file-icons/file_type_ng_component_ts2.svg +1 -0
  515. package/static/1914fad/file-icons/file_type_ng_controller_js.svg +1 -0
  516. package/static/1914fad/file-icons/file_type_ng_controller_ts.svg +1 -0
  517. package/static/1914fad/file-icons/file_type_ng_directive_dart.svg +1 -0
  518. package/static/1914fad/file-icons/file_type_ng_directive_js.svg +1 -0
  519. package/static/1914fad/file-icons/file_type_ng_directive_js2.svg +1 -0
  520. package/static/1914fad/file-icons/file_type_ng_directive_ts.svg +1 -0
  521. package/static/1914fad/file-icons/file_type_ng_directive_ts2.svg +1 -0
  522. package/static/1914fad/file-icons/file_type_ng_guard_dart.svg +1 -0
  523. package/static/1914fad/file-icons/file_type_ng_guard_js.svg +1 -0
  524. package/static/1914fad/file-icons/file_type_ng_guard_ts.svg +1 -0
  525. package/static/1914fad/file-icons/file_type_ng_interceptor_dart.svg +1 -0
  526. package/static/1914fad/file-icons/file_type_ng_interceptor_js.svg +1 -0
  527. package/static/1914fad/file-icons/file_type_ng_interceptor_ts.svg +1 -0
  528. package/static/1914fad/file-icons/file_type_ng_module_dart.svg +1 -0
  529. package/static/1914fad/file-icons/file_type_ng_module_js.svg +1 -0
  530. package/static/1914fad/file-icons/file_type_ng_module_js2.svg +1 -0
  531. package/static/1914fad/file-icons/file_type_ng_module_ts.svg +1 -0
  532. package/static/1914fad/file-icons/file_type_ng_module_ts2.svg +1 -0
  533. package/static/1914fad/file-icons/file_type_ng_pipe_dart.svg +1 -0
  534. package/static/1914fad/file-icons/file_type_ng_pipe_js.svg +1 -0
  535. package/static/1914fad/file-icons/file_type_ng_pipe_js2.svg +1 -0
  536. package/static/1914fad/file-icons/file_type_ng_pipe_ts.svg +1 -0
  537. package/static/1914fad/file-icons/file_type_ng_pipe_ts2.svg +1 -0
  538. package/static/1914fad/file-icons/file_type_ng_routing_dart.svg +1 -0
  539. package/static/1914fad/file-icons/file_type_ng_routing_js.svg +1 -0
  540. package/static/1914fad/file-icons/file_type_ng_routing_js2.svg +1 -0
  541. package/static/1914fad/file-icons/file_type_ng_routing_ts.svg +1 -0
  542. package/static/1914fad/file-icons/file_type_ng_routing_ts2.svg +1 -0
  543. package/static/1914fad/file-icons/file_type_ng_service_dart.svg +1 -0
  544. package/static/1914fad/file-icons/file_type_ng_service_js.svg +1 -0
  545. package/static/1914fad/file-icons/file_type_ng_service_js2.svg +1 -0
  546. package/static/1914fad/file-icons/file_type_ng_service_ts.svg +1 -0
  547. package/static/1914fad/file-icons/file_type_ng_service_ts2.svg +1 -0
  548. package/static/1914fad/file-icons/file_type_ng_smart_component_dart.svg +1 -0
  549. package/static/1914fad/file-icons/file_type_ng_smart_component_js.svg +1 -0
  550. package/static/1914fad/file-icons/file_type_ng_smart_component_js2.svg +1 -0
  551. package/static/1914fad/file-icons/file_type_ng_smart_component_ts.svg +1 -0
  552. package/static/1914fad/file-icons/file_type_ng_smart_component_ts2.svg +1 -0
  553. package/static/1914fad/file-icons/file_type_ng_tailwind.svg +1 -0
  554. package/static/1914fad/file-icons/file_type_nginx.svg +1 -0
  555. package/static/1914fad/file-icons/file_type_nim.svg +1 -0
  556. package/static/1914fad/file-icons/file_type_nimble.svg +1 -0
  557. package/static/1914fad/file-icons/file_type_ninja.svg +1 -0
  558. package/static/1914fad/file-icons/file_type_nix.svg +1 -0
  559. package/static/1914fad/file-icons/file_type_njsproj.svg +1 -0
  560. package/static/1914fad/file-icons/file_type_noc.svg +1 -0
  561. package/static/1914fad/file-icons/file_type_node.svg +1 -0
  562. package/static/1914fad/file-icons/file_type_node2.svg +1 -0
  563. package/static/1914fad/file-icons/file_type_nodemon.svg +1 -0
  564. package/static/1914fad/file-icons/file_type_npm.svg +1 -0
  565. package/static/1914fad/file-icons/file_type_nsi.svg +1 -0
  566. package/static/1914fad/file-icons/file_type_nsri-integrity.svg +1 -0
  567. package/static/1914fad/file-icons/file_type_nsri.svg +1 -0
  568. package/static/1914fad/file-icons/file_type_nuget.svg +1 -0
  569. package/static/1914fad/file-icons/file_type_numpy.svg +1 -0
  570. package/static/1914fad/file-icons/file_type_nunjucks.svg +1 -0
  571. package/static/1914fad/file-icons/file_type_nuxt.svg +1 -0
  572. package/static/1914fad/file-icons/file_type_nyc.svg +1 -0
  573. package/static/1914fad/file-icons/file_type_objectivec.svg +1 -0
  574. package/static/1914fad/file-icons/file_type_objectivecpp.svg +1 -0
  575. package/static/1914fad/file-icons/file_type_objidconfig.svg +1 -0
  576. package/static/1914fad/file-icons/file_type_ocaml.svg +1 -0
  577. package/static/1914fad/file-icons/file_type_ogone.svg +1 -0
  578. package/static/1914fad/file-icons/file_type_onenote.svg +1 -0
  579. package/static/1914fad/file-icons/file_type_openHAB.svg +1 -0
  580. package/static/1914fad/file-icons/file_type_opencl.svg +1 -0
  581. package/static/1914fad/file-icons/file_type_openscad.svg +1 -0
  582. package/static/1914fad/file-icons/file_type_org.svg +1 -0
  583. package/static/1914fad/file-icons/file_type_outlook.svg +1 -0
  584. package/static/1914fad/file-icons/file_type_ovpn.svg +1 -0
  585. package/static/1914fad/file-icons/file_type_package.svg +1 -0
  586. package/static/1914fad/file-icons/file_type_paket.svg +1 -0
  587. package/static/1914fad/file-icons/file_type_patch.svg +1 -0
  588. package/static/1914fad/file-icons/file_type_pcl.svg +1 -0
  589. package/static/1914fad/file-icons/file_type_pddl.svg +1 -0
  590. package/static/1914fad/file-icons/file_type_pddl_happenings.svg +1 -0
  591. package/static/1914fad/file-icons/file_type_pddl_plan.svg +1 -0
  592. package/static/1914fad/file-icons/file_type_pdf.svg +1 -0
  593. package/static/1914fad/file-icons/file_type_pdf2.svg +1 -0
  594. package/static/1914fad/file-icons/file_type_peeky.svg +1 -0
  595. package/static/1914fad/file-icons/file_type_perl.svg +1 -0
  596. package/static/1914fad/file-icons/file_type_perl2.svg +1 -0
  597. package/static/1914fad/file-icons/file_type_perl6.svg +1 -0
  598. package/static/1914fad/file-icons/file_type_pgsql.svg +1 -0
  599. package/static/1914fad/file-icons/file_type_photoshop.svg +1 -0
  600. package/static/1914fad/file-icons/file_type_photoshop2.svg +1 -0
  601. package/static/1914fad/file-icons/file_type_php.svg +1 -0
  602. package/static/1914fad/file-icons/file_type_php2.svg +1 -0
  603. package/static/1914fad/file-icons/file_type_php3.svg +1 -0
  604. package/static/1914fad/file-icons/file_type_phpcsfixer.svg +1 -0
  605. package/static/1914fad/file-icons/file_type_phpunit.svg +1 -0
  606. package/static/1914fad/file-icons/file_type_phraseapp.svg +1 -0
  607. package/static/1914fad/file-icons/file_type_pine.svg +1 -0
  608. package/static/1914fad/file-icons/file_type_pip.svg +1 -0
  609. package/static/1914fad/file-icons/file_type_pipeline.svg +3 -0
  610. package/static/1914fad/file-icons/file_type_plantuml.svg +1 -0
  611. package/static/1914fad/file-icons/file_type_platformio.svg +1 -0
  612. package/static/1914fad/file-icons/file_type_playwright.svg +1 -0
  613. package/static/1914fad/file-icons/file_type_plsql.svg +1 -0
  614. package/static/1914fad/file-icons/file_type_plsql_package.svg +1 -0
  615. package/static/1914fad/file-icons/file_type_plsql_package_body.svg +1 -0
  616. package/static/1914fad/file-icons/file_type_plsql_package_header.svg +1 -0
  617. package/static/1914fad/file-icons/file_type_plsql_package_spec.svg +1 -0
  618. package/static/1914fad/file-icons/file_type_pnpm.svg +1 -0
  619. package/static/1914fad/file-icons/file_type_poedit.svg +1 -0
  620. package/static/1914fad/file-icons/file_type_polymer.svg +1 -0
  621. package/static/1914fad/file-icons/file_type_pony.svg +1 -0
  622. package/static/1914fad/file-icons/file_type_postcss.svg +1 -0
  623. package/static/1914fad/file-icons/file_type_postcssconfig.svg +1 -0
  624. package/static/1914fad/file-icons/file_type_powerpoint.svg +1 -0
  625. package/static/1914fad/file-icons/file_type_powerpoint2.svg +1 -0
  626. package/static/1914fad/file-icons/file_type_powershell.svg +1 -0
  627. package/static/1914fad/file-icons/file_type_powershell2.svg +1 -0
  628. package/static/1914fad/file-icons/file_type_powershell_format.svg +1 -0
  629. package/static/1914fad/file-icons/file_type_powershell_psd.svg +1 -0
  630. package/static/1914fad/file-icons/file_type_powershell_psd2.svg +1 -0
  631. package/static/1914fad/file-icons/file_type_powershell_psm.svg +1 -0
  632. package/static/1914fad/file-icons/file_type_powershell_psm2.svg +1 -0
  633. package/static/1914fad/file-icons/file_type_powershell_types.svg +1 -0
  634. package/static/1914fad/file-icons/file_type_preact.svg +1 -0
  635. package/static/1914fad/file-icons/file_type_precommit.svg +1 -0
  636. package/static/1914fad/file-icons/file_type_prettier.svg +1 -0
  637. package/static/1914fad/file-icons/file_type_prisma.svg +1 -0
  638. package/static/1914fad/file-icons/file_type_processinglang.svg +1 -0
  639. package/static/1914fad/file-icons/file_type_procfile.svg +1 -0
  640. package/static/1914fad/file-icons/file_type_progress.svg +1 -0
  641. package/static/1914fad/file-icons/file_type_prolog.svg +1 -0
  642. package/static/1914fad/file-icons/file_type_prometheus.svg +1 -0
  643. package/static/1914fad/file-icons/file_type_protobuf.svg +1 -0
  644. package/static/1914fad/file-icons/file_type_protractor.svg +1 -0
  645. package/static/1914fad/file-icons/file_type_publisher.svg +1 -0
  646. package/static/1914fad/file-icons/file_type_pug.svg +1 -0
  647. package/static/1914fad/file-icons/file_type_puppet.svg +1 -0
  648. package/static/1914fad/file-icons/file_type_purescript.svg +1 -0
  649. package/static/1914fad/file-icons/file_type_pyret.svg +1 -0
  650. package/static/1914fad/file-icons/file_type_python.svg +1 -0
  651. package/static/1914fad/file-icons/file_type_pytyped.svg +1 -0
  652. package/static/1914fad/file-icons/file_type_pyup.svg +1 -0
  653. package/static/1914fad/file-icons/file_type_q.svg +1 -0
  654. package/static/1914fad/file-icons/file_type_qbs.svg +1 -0
  655. package/static/1914fad/file-icons/file_type_qlikview.svg +1 -0
  656. package/static/1914fad/file-icons/file_type_qml.svg +1 -0
  657. package/static/1914fad/file-icons/file_type_qmldir.svg +1 -0
  658. package/static/1914fad/file-icons/file_type_qsharp.svg +1 -0
  659. package/static/1914fad/file-icons/file_type_quasar.svg +1 -0
  660. package/static/1914fad/file-icons/file_type_r.svg +1 -0
  661. package/static/1914fad/file-icons/file_type_racket.svg +1 -0
  662. package/static/1914fad/file-icons/file_type_rails.svg +1 -0
  663. package/static/1914fad/file-icons/file_type_rake.svg +1 -0
  664. package/static/1914fad/file-icons/file_type_raml.svg +1 -0
  665. package/static/1914fad/file-icons/file_type_razor.svg +1 -0
  666. package/static/1914fad/file-icons/file_type_razzle.svg +1 -0
  667. package/static/1914fad/file-icons/file_type_reactjs.svg +1 -0
  668. package/static/1914fad/file-icons/file_type_reacttemplate.svg +1 -0
  669. package/static/1914fad/file-icons/file_type_reactts.svg +1 -0
  670. package/static/1914fad/file-icons/file_type_reason.svg +1 -0
  671. package/static/1914fad/file-icons/file_type_red.svg +1 -0
  672. package/static/1914fad/file-icons/file_type_registry.svg +1 -0
  673. package/static/1914fad/file-icons/file_type_rego.svg +1 -0
  674. package/static/1914fad/file-icons/file_type_rehype.svg +1 -0
  675. package/static/1914fad/file-icons/file_type_remark.svg +1 -0
  676. package/static/1914fad/file-icons/file_type_renovate.svg +1 -0
  677. package/static/1914fad/file-icons/file_type_replit.svg +1 -0
  678. package/static/1914fad/file-icons/file_type_rescript.svg +1 -0
  679. package/static/1914fad/file-icons/file_type_rest.svg +1 -0
  680. package/static/1914fad/file-icons/file_type_retext.svg +1 -0
  681. package/static/1914fad/file-icons/file_type_rexx.svg +1 -0
  682. package/static/1914fad/file-icons/file_type_riot.svg +1 -0
  683. package/static/1914fad/file-icons/file_type_rmd.svg +1 -0
  684. package/static/1914fad/file-icons/file_type_robotframework.svg +1 -0
  685. package/static/1914fad/file-icons/file_type_robots.svg +1 -0
  686. package/static/1914fad/file-icons/file_type_rollup.svg +1 -0
  687. package/static/1914fad/file-icons/file_type_ron.svg +1 -0
  688. package/static/1914fad/file-icons/file_type_rproj.svg +1 -0
  689. package/static/1914fad/file-icons/file_type_rspec.svg +1 -0
  690. package/static/1914fad/file-icons/file_type_rubocop.svg +1 -0
  691. package/static/1914fad/file-icons/file_type_ruby.svg +1 -0
  692. package/static/1914fad/file-icons/file_type_rust.svg +1 -0
  693. package/static/1914fad/file-icons/file_type_rust_toolchain.svg +1 -0
  694. package/static/1914fad/file-icons/file_type_sails.svg +1 -0
  695. package/static/1914fad/file-icons/file_type_saltstack.svg +1 -0
  696. package/static/1914fad/file-icons/file_type_san.svg +1 -0
  697. package/static/1914fad/file-icons/file_type_sas.svg +1 -0
  698. package/static/1914fad/file-icons/file_type_sass.svg +1 -0
  699. package/static/1914fad/file-icons/file_type_sbt.svg +1 -0
  700. package/static/1914fad/file-icons/file_type_scala.svg +1 -0
  701. package/static/1914fad/file-icons/file_type_scilab.svg +1 -0
  702. package/static/1914fad/file-icons/file_type_script.svg +1 -0
  703. package/static/1914fad/file-icons/file_type_scss.svg +1 -0
  704. package/static/1914fad/file-icons/file_type_scss2.svg +1 -0
  705. package/static/1914fad/file-icons/file_type_sdlang.svg +1 -0
  706. package/static/1914fad/file-icons/file_type_sentry.svg +1 -0
  707. package/static/1914fad/file-icons/file_type_sequelize.svg +1 -0
  708. package/static/1914fad/file-icons/file_type_serverless.svg +1 -0
  709. package/static/1914fad/file-icons/file_type_shaderlab.svg +1 -0
  710. package/static/1914fad/file-icons/file_type_shell.svg +1 -0
  711. package/static/1914fad/file-icons/file_type_silverstripe.svg +1 -0
  712. package/static/1914fad/file-icons/file_type_siyuan.svg +1 -0
  713. package/static/1914fad/file-icons/file_type_sketch.svg +1 -0
  714. package/static/1914fad/file-icons/file_type_skipper.svg +1 -0
  715. package/static/1914fad/file-icons/file_type_slang.svg +1 -0
  716. package/static/1914fad/file-icons/file_type_slashup.svg +1 -0
  717. package/static/1914fad/file-icons/file_type_slice.svg +1 -0
  718. package/static/1914fad/file-icons/file_type_slim.svg +1 -0
  719. package/static/1914fad/file-icons/file_type_sln.svg +1 -0
  720. package/static/1914fad/file-icons/file_type_sln2.svg +1 -0
  721. package/static/1914fad/file-icons/file_type_smarty.svg +1 -0
  722. package/static/1914fad/file-icons/file_type_snapcraft.svg +1 -0
  723. package/static/1914fad/file-icons/file_type_snort.svg +1 -0
  724. package/static/1914fad/file-icons/file_type_snyk.svg +1 -0
  725. package/static/1914fad/file-icons/file_type_solidarity.svg +1 -0
  726. package/static/1914fad/file-icons/file_type_solidity.svg +1 -0
  727. package/static/1914fad/file-icons/file_type_source.svg +1 -0
  728. package/static/1914fad/file-icons/file_type_spacengine.svg +1 -0
  729. package/static/1914fad/file-icons/file_type_sparql.svg +1 -0
  730. package/static/1914fad/file-icons/file_type_sqf.svg +1 -0
  731. package/static/1914fad/file-icons/file_type_sql.svg +1 -0
  732. package/static/1914fad/file-icons/file_type_sqlite.svg +1 -0
  733. package/static/1914fad/file-icons/file_type_squirrel.svg +1 -0
  734. package/static/1914fad/file-icons/file_type_sss.svg +1 -0
  735. package/static/1914fad/file-icons/file_type_stan.svg +1 -0
  736. package/static/1914fad/file-icons/file_type_stata.svg +1 -0
  737. package/static/1914fad/file-icons/file_type_stencil.svg +1 -0
  738. package/static/1914fad/file-icons/file_type_storyboard.svg +1 -0
  739. package/static/1914fad/file-icons/file_type_storybook.svg +1 -0
  740. package/static/1914fad/file-icons/file_type_stryker.svg +1 -0
  741. package/static/1914fad/file-icons/file_type_stylable.svg +1 -0
  742. package/static/1914fad/file-icons/file_type_style.svg +1 -0
  743. package/static/1914fad/file-icons/file_type_styled.svg +1 -0
  744. package/static/1914fad/file-icons/file_type_stylelint.svg +1 -0
  745. package/static/1914fad/file-icons/file_type_stylish_haskell.svg +1 -0
  746. package/static/1914fad/file-icons/file_type_stylus.svg +1 -0
  747. package/static/1914fad/file-icons/file_type_subversion.svg +1 -0
  748. package/static/1914fad/file-icons/file_type_svelte.svg +1 -0
  749. package/static/1914fad/file-icons/file_type_svg.svg +1 -0
  750. package/static/1914fad/file-icons/file_type_swagger.svg +1 -0
  751. package/static/1914fad/file-icons/file_type_swift.svg +1 -0
  752. package/static/1914fad/file-icons/file_type_swig.svg +1 -0
  753. package/static/1914fad/file-icons/file_type_symfony.svg +1 -0
  754. package/static/1914fad/file-icons/file_type_systemd.svg +1 -0
  755. package/static/1914fad/file-icons/file_type_systemverilog.svg +1 -0
  756. package/static/1914fad/file-icons/file_type_t4tt.svg +1 -0
  757. package/static/1914fad/file-icons/file_type_tailwind.svg +1 -0
  758. package/static/1914fad/file-icons/file_type_tauri.svg +1 -0
  759. package/static/1914fad/file-icons/file_type_tcl.svg +1 -0
  760. package/static/1914fad/file-icons/file_type_teal.svg +1 -0
  761. package/static/1914fad/file-icons/file_type_tera.svg +1 -0
  762. package/static/1914fad/file-icons/file_type_terraform.svg +1 -0
  763. package/static/1914fad/file-icons/file_type_test.svg +1 -0
  764. package/static/1914fad/file-icons/file_type_testcafe.svg +1 -0
  765. package/static/1914fad/file-icons/file_type_testjs.svg +1 -0
  766. package/static/1914fad/file-icons/file_type_testts.svg +1 -0
  767. package/static/1914fad/file-icons/file_type_tex.svg +1 -0
  768. package/static/1914fad/file-icons/file_type_text.svg +1 -0
  769. package/static/1914fad/file-icons/file_type_textile.svg +1 -0
  770. package/static/1914fad/file-icons/file_type_tfs.svg +1 -0
  771. package/static/1914fad/file-icons/file_type_tiltfile.svg +1 -0
  772. package/static/1914fad/file-icons/file_type_todo.svg +1 -0
  773. package/static/1914fad/file-icons/file_type_toit.svg +1 -0
  774. package/static/1914fad/file-icons/file_type_toml.svg +1 -0
  775. package/static/1914fad/file-icons/file_type_tox.svg +1 -0
  776. package/static/1914fad/file-icons/file_type_travis.svg +1 -0
  777. package/static/1914fad/file-icons/file_type_trunk.svg +1 -0
  778. package/static/1914fad/file-icons/file_type_tsconfig.svg +1 -0
  779. package/static/1914fad/file-icons/file_type_tsconfig_official.svg +1 -0
  780. package/static/1914fad/file-icons/file_type_tslint.svg +1 -0
  781. package/static/1914fad/file-icons/file_type_tt.svg +1 -0
  782. package/static/1914fad/file-icons/file_type_ttcn.svg +1 -0
  783. package/static/1914fad/file-icons/file_type_tuc.svg +1 -0
  784. package/static/1914fad/file-icons/file_type_turbo.svg +1 -0
  785. package/static/1914fad/file-icons/file_type_twig.svg +1 -0
  786. package/static/1914fad/file-icons/file_type_typedoc.svg +1 -0
  787. package/static/1914fad/file-icons/file_type_typescript.svg +1 -0
  788. package/static/1914fad/file-icons/file_type_typescript_official.svg +1 -0
  789. package/static/1914fad/file-icons/file_type_typescriptdef.svg +1 -0
  790. package/static/1914fad/file-icons/file_type_typescriptdef_official.svg +1 -0
  791. package/static/1914fad/file-icons/file_type_typo3.svg +1 -0
  792. package/static/1914fad/file-icons/file_type_unibeautify.svg +1 -0
  793. package/static/1914fad/file-icons/file_type_unlicense.svg +1 -0
  794. package/static/1914fad/file-icons/file_type_vagrant.svg +1 -0
  795. package/static/1914fad/file-icons/file_type_vala.svg +1 -0
  796. package/static/1914fad/file-icons/file_type_vanilla_extract.svg +1 -0
  797. package/static/1914fad/file-icons/file_type_vapi.svg +1 -0
  798. package/static/1914fad/file-icons/file_type_vapor.svg +1 -0
  799. package/static/1914fad/file-icons/file_type_vash.svg +1 -0
  800. package/static/1914fad/file-icons/file_type_vb.svg +1 -0
  801. package/static/1914fad/file-icons/file_type_vba.svg +1 -0
  802. package/static/1914fad/file-icons/file_type_vbhtml.svg +1 -0
  803. package/static/1914fad/file-icons/file_type_vbproj.svg +1 -0
  804. package/static/1914fad/file-icons/file_type_vcxproj.svg +1 -0
  805. package/static/1914fad/file-icons/file_type_velocity.svg +1 -0
  806. package/static/1914fad/file-icons/file_type_verilog.svg +1 -0
  807. package/static/1914fad/file-icons/file_type_vhdl.svg +1 -0
  808. package/static/1914fad/file-icons/file_type_video.svg +1 -0
  809. package/static/1914fad/file-icons/file_type_view.svg +1 -0
  810. package/static/1914fad/file-icons/file_type_vim.svg +1 -0
  811. package/static/1914fad/file-icons/file_type_vite.svg +1 -0
  812. package/static/1914fad/file-icons/file_type_vitest.svg +1 -0
  813. package/static/1914fad/file-icons/file_type_vlang.svg +1 -0
  814. package/static/1914fad/file-icons/file_type_volt.svg +1 -0
  815. package/static/1914fad/file-icons/file_type_vscode-insiders.svg +1 -0
  816. package/static/1914fad/file-icons/file_type_vscode.svg +1 -0
  817. package/static/1914fad/file-icons/file_type_vscode2.svg +1 -0
  818. package/static/1914fad/file-icons/file_type_vscode3.svg +1 -0
  819. package/static/1914fad/file-icons/file_type_vsix.svg +1 -0
  820. package/static/1914fad/file-icons/file_type_vsixmanifest.svg +1 -0
  821. package/static/1914fad/file-icons/file_type_vue.svg +1 -0
  822. package/static/1914fad/file-icons/file_type_vueconfig.svg +1 -0
  823. package/static/1914fad/file-icons/file_type_wallaby.svg +1 -0
  824. package/static/1914fad/file-icons/file_type_wasm.svg +1 -0
  825. package/static/1914fad/file-icons/file_type_watchmanconfig.svg +1 -0
  826. package/static/1914fad/file-icons/file_type_webpack.svg +1 -0
  827. package/static/1914fad/file-icons/file_type_wenyan.svg +1 -0
  828. package/static/1914fad/file-icons/file_type_wercker.svg +1 -0
  829. package/static/1914fad/file-icons/file_type_windi.svg +1 -0
  830. package/static/1914fad/file-icons/file_type_wolfram.svg +1 -0
  831. package/static/1914fad/file-icons/file_type_word.svg +1 -0
  832. package/static/1914fad/file-icons/file_type_word2.svg +1 -0
  833. package/static/1914fad/file-icons/file_type_wpml.svg +1 -0
  834. package/static/1914fad/file-icons/file_type_wurst.svg +1 -0
  835. package/static/1914fad/file-icons/file_type_wxml.svg +1 -0
  836. package/static/1914fad/file-icons/file_type_wxss.svg +1 -0
  837. package/static/1914fad/file-icons/file_type_xcode.svg +1 -0
  838. package/static/1914fad/file-icons/file_type_xfl.svg +1 -0
  839. package/static/1914fad/file-icons/file_type_xib.svg +1 -0
  840. package/static/1914fad/file-icons/file_type_xliff.svg +1 -0
  841. package/static/1914fad/file-icons/file_type_xmake.svg +1 -0
  842. package/static/1914fad/file-icons/file_type_xml.svg +1 -0
  843. package/static/1914fad/file-icons/file_type_xquery.svg +1 -0
  844. package/static/1914fad/file-icons/file_type_xsl.svg +1 -0
  845. package/static/1914fad/file-icons/file_type_yacc.svg +1 -0
  846. package/static/1914fad/file-icons/file_type_yaml.svg +1 -0
  847. package/static/1914fad/file-icons/file_type_yamllint.svg +1 -0
  848. package/static/1914fad/file-icons/file_type_yandex.svg +1 -0
  849. package/static/1914fad/file-icons/file_type_yang.svg +1 -0
  850. package/static/1914fad/file-icons/file_type_yarn.svg +1 -0
  851. package/static/1914fad/file-icons/file_type_yeoman.svg +1 -0
  852. package/static/1914fad/file-icons/file_type_zeit.svg +1 -0
  853. package/static/1914fad/file-icons/file_type_zig.svg +1 -0
  854. package/static/1914fad/file-icons/file_type_zip.svg +1 -0
  855. package/static/1914fad/file-icons/file_type_zip2.svg +1 -0
  856. package/static/1914fad/file-icons/folder_type_android.svg +1 -0
  857. package/static/1914fad/file-icons/folder_type_android_opened.svg +1 -0
  858. package/static/1914fad/file-icons/folder_type_api.svg +1 -0
  859. package/static/1914fad/file-icons/folder_type_api_opened.svg +1 -0
  860. package/static/1914fad/file-icons/folder_type_app.svg +1 -0
  861. package/static/1914fad/file-icons/folder_type_app_opened.svg +1 -0
  862. package/static/1914fad/file-icons/folder_type_arangodb.svg +1 -0
  863. package/static/1914fad/file-icons/folder_type_arangodb_opened.svg +1 -0
  864. package/static/1914fad/file-icons/folder_type_asset.svg +1 -0
  865. package/static/1914fad/file-icons/folder_type_asset_opened.svg +1 -0
  866. package/static/1914fad/file-icons/folder_type_audio.svg +1 -0
  867. package/static/1914fad/file-icons/folder_type_audio_opened.svg +1 -0
  868. package/static/1914fad/file-icons/folder_type_aurelia.svg +1 -0
  869. package/static/1914fad/file-icons/folder_type_aurelia_opened.svg +1 -0
  870. package/static/1914fad/file-icons/folder_type_aws.svg +1 -0
  871. package/static/1914fad/file-icons/folder_type_aws_opened.svg +1 -0
  872. package/static/1914fad/file-icons/folder_type_azure.svg +1 -0
  873. package/static/1914fad/file-icons/folder_type_azure_opened.svg +1 -0
  874. package/static/1914fad/file-icons/folder_type_azurepipelines.svg +1 -0
  875. package/static/1914fad/file-icons/folder_type_azurepipelines_opened.svg +1 -0
  876. package/static/1914fad/file-icons/folder_type_binary.svg +1 -0
  877. package/static/1914fad/file-icons/folder_type_binary_opened.svg +1 -0
  878. package/static/1914fad/file-icons/folder_type_bloc.svg +1 -0
  879. package/static/1914fad/file-icons/folder_type_bloc_opened.svg +1 -0
  880. package/static/1914fad/file-icons/folder_type_blueprint.svg +1 -0
  881. package/static/1914fad/file-icons/folder_type_blueprint_opened.svg +1 -0
  882. package/static/1914fad/file-icons/folder_type_bower.svg +1 -0
  883. package/static/1914fad/file-icons/folder_type_bower_opened.svg +1 -0
  884. package/static/1914fad/file-icons/folder_type_buildkite.svg +1 -0
  885. package/static/1914fad/file-icons/folder_type_buildkite_opened.svg +1 -0
  886. package/static/1914fad/file-icons/folder_type_cake.svg +1 -0
  887. package/static/1914fad/file-icons/folder_type_cake_opened.svg +1 -0
  888. package/static/1914fad/file-icons/folder_type_certificate.svg +1 -0
  889. package/static/1914fad/file-icons/folder_type_certificate_opened.svg +1 -0
  890. package/static/1914fad/file-icons/folder_type_chef.svg +1 -0
  891. package/static/1914fad/file-icons/folder_type_chef_opened.svg +1 -0
  892. package/static/1914fad/file-icons/folder_type_circleci.svg +1 -0
  893. package/static/1914fad/file-icons/folder_type_circleci_opened.svg +1 -0
  894. package/static/1914fad/file-icons/folder_type_cli.svg +1 -0
  895. package/static/1914fad/file-icons/folder_type_cli_opened.svg +1 -0
  896. package/static/1914fad/file-icons/folder_type_client.svg +1 -0
  897. package/static/1914fad/file-icons/folder_type_client_opened.svg +1 -0
  898. package/static/1914fad/file-icons/folder_type_cmake.svg +1 -0
  899. package/static/1914fad/file-icons/folder_type_cmake_opened.svg +1 -0
  900. package/static/1914fad/file-icons/folder_type_component.svg +1 -0
  901. package/static/1914fad/file-icons/folder_type_component_opened.svg +1 -0
  902. package/static/1914fad/file-icons/folder_type_composer.svg +1 -0
  903. package/static/1914fad/file-icons/folder_type_composer_opened.svg +1 -0
  904. package/static/1914fad/file-icons/folder_type_config.svg +1 -0
  905. package/static/1914fad/file-icons/folder_type_config_opened.svg +1 -0
  906. package/static/1914fad/file-icons/folder_type_controller.svg +1 -0
  907. package/static/1914fad/file-icons/folder_type_controller_opened.svg +1 -0
  908. package/static/1914fad/file-icons/folder_type_coverage.svg +1 -0
  909. package/static/1914fad/file-icons/folder_type_coverage_opened.svg +1 -0
  910. package/static/1914fad/file-icons/folder_type_css.svg +1 -0
  911. package/static/1914fad/file-icons/folder_type_css_opened.svg +1 -0
  912. package/static/1914fad/file-icons/folder_type_cubit.svg +1 -0
  913. package/static/1914fad/file-icons/folder_type_cubit_opened.svg +1 -0
  914. package/static/1914fad/file-icons/folder_type_cypress.svg +1 -0
  915. package/static/1914fad/file-icons/folder_type_cypress_opened.svg +1 -0
  916. package/static/1914fad/file-icons/folder_type_dapr.svg +1 -0
  917. package/static/1914fad/file-icons/folder_type_dapr_opened.svg +1 -0
  918. package/static/1914fad/file-icons/folder_type_db.svg +1 -0
  919. package/static/1914fad/file-icons/folder_type_db_opened.svg +1 -0
  920. package/static/1914fad/file-icons/folder_type_debian.svg +1 -0
  921. package/static/1914fad/file-icons/folder_type_debian_opened.svg +1 -0
  922. package/static/1914fad/file-icons/folder_type_dependabot.svg +1 -0
  923. package/static/1914fad/file-icons/folder_type_dependabot_opened.svg +1 -0
  924. package/static/1914fad/file-icons/folder_type_devcontainer.svg +1 -0
  925. package/static/1914fad/file-icons/folder_type_devcontainer_opened.svg +1 -0
  926. package/static/1914fad/file-icons/folder_type_dist.svg +1 -0
  927. package/static/1914fad/file-icons/folder_type_dist_opened.svg +1 -0
  928. package/static/1914fad/file-icons/folder_type_docker.svg +1 -0
  929. package/static/1914fad/file-icons/folder_type_docker_opened.svg +1 -0
  930. package/static/1914fad/file-icons/folder_type_docs.svg +1 -0
  931. package/static/1914fad/file-icons/folder_type_docs_opened.svg +1 -0
  932. package/static/1914fad/file-icons/folder_type_e2e.svg +1 -0
  933. package/static/1914fad/file-icons/folder_type_e2e_opened.svg +1 -0
  934. package/static/1914fad/file-icons/folder_type_elasticbeanstalk.svg +1 -0
  935. package/static/1914fad/file-icons/folder_type_elasticbeanstalk_opened.svg +1 -0
  936. package/static/1914fad/file-icons/folder_type_electron.svg +1 -0
  937. package/static/1914fad/file-icons/folder_type_electron_opened.svg +1 -0
  938. package/static/1914fad/file-icons/folder_type_expo.svg +1 -0
  939. package/static/1914fad/file-icons/folder_type_expo_opened.svg +1 -0
  940. package/static/1914fad/file-icons/folder_type_favicon.svg +1 -0
  941. package/static/1914fad/file-icons/folder_type_favicon_opened.svg +1 -0
  942. package/static/1914fad/file-icons/folder_type_flow.svg +1 -0
  943. package/static/1914fad/file-icons/folder_type_flow_opened.svg +1 -0
  944. package/static/1914fad/file-icons/folder_type_fonts.svg +1 -0
  945. package/static/1914fad/file-icons/folder_type_fonts_opened.svg +1 -0
  946. package/static/1914fad/file-icons/folder_type_gcp.svg +1 -0
  947. package/static/1914fad/file-icons/folder_type_gcp_opened.svg +1 -0
  948. package/static/1914fad/file-icons/folder_type_git.svg +1 -0
  949. package/static/1914fad/file-icons/folder_type_git_opened.svg +1 -0
  950. package/static/1914fad/file-icons/folder_type_github.svg +1 -0
  951. package/static/1914fad/file-icons/folder_type_github_opened.svg +1 -0
  952. package/static/1914fad/file-icons/folder_type_gitlab.svg +1 -0
  953. package/static/1914fad/file-icons/folder_type_gitlab_opened.svg +1 -0
  954. package/static/1914fad/file-icons/folder_type_gradle.svg +1 -0
  955. package/static/1914fad/file-icons/folder_type_gradle_opened.svg +1 -0
  956. package/static/1914fad/file-icons/folder_type_graphql.svg +1 -0
  957. package/static/1914fad/file-icons/folder_type_graphql_opened.svg +1 -0
  958. package/static/1914fad/file-icons/folder_type_grunt.svg +1 -0
  959. package/static/1914fad/file-icons/folder_type_grunt_opened.svg +1 -0
  960. package/static/1914fad/file-icons/folder_type_gulp.svg +1 -0
  961. package/static/1914fad/file-icons/folder_type_gulp_opened.svg +1 -0
  962. package/static/1914fad/file-icons/folder_type_haxelib.svg +1 -0
  963. package/static/1914fad/file-icons/folder_type_haxelib_opened.svg +1 -0
  964. package/static/1914fad/file-icons/folder_type_helper.svg +1 -0
  965. package/static/1914fad/file-icons/folder_type_helper_opened.svg +1 -0
  966. package/static/1914fad/file-icons/folder_type_hook.svg +1 -0
  967. package/static/1914fad/file-icons/folder_type_hook_opened.svg +1 -0
  968. package/static/1914fad/file-icons/folder_type_husky.svg +1 -0
  969. package/static/1914fad/file-icons/folder_type_husky_opened.svg +1 -0
  970. package/static/1914fad/file-icons/folder_type_idea.svg +1 -0
  971. package/static/1914fad/file-icons/folder_type_idea_opened.svg +1 -0
  972. package/static/1914fad/file-icons/folder_type_images.svg +1 -0
  973. package/static/1914fad/file-icons/folder_type_images_opened.svg +1 -0
  974. package/static/1914fad/file-icons/folder_type_include.svg +1 -0
  975. package/static/1914fad/file-icons/folder_type_include_opened.svg +1 -0
  976. package/static/1914fad/file-icons/folder_type_interfaces.svg +1 -0
  977. package/static/1914fad/file-icons/folder_type_interfaces_opened.svg +1 -0
  978. package/static/1914fad/file-icons/folder_type_ios.svg +1 -0
  979. package/static/1914fad/file-icons/folder_type_ios_opened.svg +1 -0
  980. package/static/1914fad/file-icons/folder_type_js.svg +1 -0
  981. package/static/1914fad/file-icons/folder_type_js_opened.svg +1 -0
  982. package/static/1914fad/file-icons/folder_type_json.svg +1 -0
  983. package/static/1914fad/file-icons/folder_type_json_official.svg +1 -0
  984. package/static/1914fad/file-icons/folder_type_json_official_opened.svg +1 -0
  985. package/static/1914fad/file-icons/folder_type_json_opened.svg +1 -0
  986. package/static/1914fad/file-icons/folder_type_kubernetes.svg +1 -0
  987. package/static/1914fad/file-icons/folder_type_kubernetes_opened.svg +1 -0
  988. package/static/1914fad/file-icons/folder_type_less.svg +1 -0
  989. package/static/1914fad/file-icons/folder_type_less_opened.svg +1 -0
  990. package/static/1914fad/file-icons/folder_type_library.svg +1 -0
  991. package/static/1914fad/file-icons/folder_type_library_opened.svg +1 -0
  992. package/static/1914fad/file-icons/folder_type_light_cypress.svg +1 -0
  993. package/static/1914fad/file-icons/folder_type_light_cypress_opened.svg +1 -0
  994. package/static/1914fad/file-icons/folder_type_light_electron.svg +1 -0
  995. package/static/1914fad/file-icons/folder_type_light_electron_opened.svg +1 -0
  996. package/static/1914fad/file-icons/folder_type_light_expo.svg +1 -0
  997. package/static/1914fad/file-icons/folder_type_light_expo_opened.svg +1 -0
  998. package/static/1914fad/file-icons/folder_type_light_fonts.svg +1 -0
  999. package/static/1914fad/file-icons/folder_type_light_fonts_opened.svg +1 -0
  1000. package/static/1914fad/file-icons/folder_type_light_gradle.svg +1 -0
  1001. package/static/1914fad/file-icons/folder_type_light_gradle_opened.svg +1 -0
  1002. package/static/1914fad/file-icons/folder_type_light_meteor.svg +1 -0
  1003. package/static/1914fad/file-icons/folder_type_light_meteor_opened.svg +1 -0
  1004. package/static/1914fad/file-icons/folder_type_light_mysql.svg +1 -0
  1005. package/static/1914fad/file-icons/folder_type_light_mysql_opened.svg +1 -0
  1006. package/static/1914fad/file-icons/folder_type_light_node.svg +1 -0
  1007. package/static/1914fad/file-icons/folder_type_light_node_opened.svg +1 -0
  1008. package/static/1914fad/file-icons/folder_type_light_redux.svg +1 -0
  1009. package/static/1914fad/file-icons/folder_type_light_redux_opened.svg +1 -0
  1010. package/static/1914fad/file-icons/folder_type_light_sass.svg +1 -0
  1011. package/static/1914fad/file-icons/folder_type_light_sass_opened.svg +1 -0
  1012. package/static/1914fad/file-icons/folder_type_linux.svg +1 -0
  1013. package/static/1914fad/file-icons/folder_type_linux_opened.svg +1 -0
  1014. package/static/1914fad/file-icons/folder_type_locale.svg +1 -0
  1015. package/static/1914fad/file-icons/folder_type_locale_opened.svg +1 -0
  1016. package/static/1914fad/file-icons/folder_type_log.svg +1 -0
  1017. package/static/1914fad/file-icons/folder_type_log_opened.svg +1 -0
  1018. package/static/1914fad/file-icons/folder_type_macos.svg +1 -0
  1019. package/static/1914fad/file-icons/folder_type_macos_opened.svg +1 -0
  1020. package/static/1914fad/file-icons/folder_type_mariadb.svg +1 -0
  1021. package/static/1914fad/file-icons/folder_type_mariadb_opened.svg +1 -0
  1022. package/static/1914fad/file-icons/folder_type_maven.svg +1 -0
  1023. package/static/1914fad/file-icons/folder_type_maven_opened.svg +1 -0
  1024. package/static/1914fad/file-icons/folder_type_memcached.svg +1 -0
  1025. package/static/1914fad/file-icons/folder_type_memcached_opened.svg +1 -0
  1026. package/static/1914fad/file-icons/folder_type_meteor.svg +1 -0
  1027. package/static/1914fad/file-icons/folder_type_meteor_opened.svg +1 -0
  1028. package/static/1914fad/file-icons/folder_type_middleware.svg +1 -0
  1029. package/static/1914fad/file-icons/folder_type_middleware_opened.svg +1 -0
  1030. package/static/1914fad/file-icons/folder_type_minikube.svg +1 -0
  1031. package/static/1914fad/file-icons/folder_type_minikube_opened.svg +1 -0
  1032. package/static/1914fad/file-icons/folder_type_mjml.svg +1 -0
  1033. package/static/1914fad/file-icons/folder_type_mjml_opened.svg +1 -0
  1034. package/static/1914fad/file-icons/folder_type_mock.svg +1 -0
  1035. package/static/1914fad/file-icons/folder_type_mock_opened.svg +1 -0
  1036. package/static/1914fad/file-icons/folder_type_model.svg +1 -0
  1037. package/static/1914fad/file-icons/folder_type_model_opened.svg +1 -0
  1038. package/static/1914fad/file-icons/folder_type_module.svg +1 -0
  1039. package/static/1914fad/file-icons/folder_type_module_opened.svg +1 -0
  1040. package/static/1914fad/file-icons/folder_type_mongodb.svg +1 -0
  1041. package/static/1914fad/file-icons/folder_type_mongodb_opened.svg +1 -0
  1042. package/static/1914fad/file-icons/folder_type_mysql.svg +1 -0
  1043. package/static/1914fad/file-icons/folder_type_mysql_opened.svg +1 -0
  1044. package/static/1914fad/file-icons/folder_type_next.svg +1 -0
  1045. package/static/1914fad/file-icons/folder_type_next_opened.svg +1 -0
  1046. package/static/1914fad/file-icons/folder_type_nginx.svg +1 -0
  1047. package/static/1914fad/file-icons/folder_type_nginx_opened.svg +1 -0
  1048. package/static/1914fad/file-icons/folder_type_nix.svg +1 -0
  1049. package/static/1914fad/file-icons/folder_type_nix_opened.svg +1 -0
  1050. package/static/1914fad/file-icons/folder_type_node.svg +1 -0
  1051. package/static/1914fad/file-icons/folder_type_node_opened.svg +1 -0
  1052. package/static/1914fad/file-icons/folder_type_notification.svg +1 -0
  1053. package/static/1914fad/file-icons/folder_type_notification_opened.svg +1 -0
  1054. package/static/1914fad/file-icons/folder_type_nuget.svg +1 -0
  1055. package/static/1914fad/file-icons/folder_type_nuget_opened.svg +1 -0
  1056. package/static/1914fad/file-icons/folder_type_nuxt.svg +1 -0
  1057. package/static/1914fad/file-icons/folder_type_nuxt_opened.svg +1 -0
  1058. package/static/1914fad/file-icons/folder_type_package.svg +1 -0
  1059. package/static/1914fad/file-icons/folder_type_package_opened.svg +1 -0
  1060. package/static/1914fad/file-icons/folder_type_paket.svg +1 -0
  1061. package/static/1914fad/file-icons/folder_type_paket_opened.svg +1 -0
  1062. package/static/1914fad/file-icons/folder_type_php.svg +1 -0
  1063. package/static/1914fad/file-icons/folder_type_php_opened.svg +1 -0
  1064. package/static/1914fad/file-icons/folder_type_platformio.svg +1 -0
  1065. package/static/1914fad/file-icons/folder_type_platformio_opened.svg +1 -0
  1066. package/static/1914fad/file-icons/folder_type_plugin.svg +1 -0
  1067. package/static/1914fad/file-icons/folder_type_plugin_opened.svg +1 -0
  1068. package/static/1914fad/file-icons/folder_type_prisma.svg +1 -0
  1069. package/static/1914fad/file-icons/folder_type_prisma_opened.svg +1 -0
  1070. package/static/1914fad/file-icons/folder_type_private.svg +1 -0
  1071. package/static/1914fad/file-icons/folder_type_private_opened.svg +1 -0
  1072. package/static/1914fad/file-icons/folder_type_public.svg +1 -0
  1073. package/static/1914fad/file-icons/folder_type_public_opened.svg +1 -0
  1074. package/static/1914fad/file-icons/folder_type_python.svg +1 -0
  1075. package/static/1914fad/file-icons/folder_type_python_opened.svg +1 -0
  1076. package/static/1914fad/file-icons/folder_type_ravendb.svg +1 -0
  1077. package/static/1914fad/file-icons/folder_type_ravendb_opened.svg +1 -0
  1078. package/static/1914fad/file-icons/folder_type_redis.svg +1 -0
  1079. package/static/1914fad/file-icons/folder_type_redis_opened.svg +1 -0
  1080. package/static/1914fad/file-icons/folder_type_redux.svg +1 -0
  1081. package/static/1914fad/file-icons/folder_type_redux_opened.svg +1 -0
  1082. package/static/1914fad/file-icons/folder_type_route.svg +1 -0
  1083. package/static/1914fad/file-icons/folder_type_route_opened.svg +1 -0
  1084. package/static/1914fad/file-icons/folder_type_sass.svg +1 -0
  1085. package/static/1914fad/file-icons/folder_type_sass_opened.svg +1 -0
  1086. package/static/1914fad/file-icons/folder_type_script.svg +1 -0
  1087. package/static/1914fad/file-icons/folder_type_script_opened.svg +1 -0
  1088. package/static/1914fad/file-icons/folder_type_server.svg +1 -0
  1089. package/static/1914fad/file-icons/folder_type_server_opened.svg +1 -0
  1090. package/static/1914fad/file-icons/folder_type_services.svg +1 -0
  1091. package/static/1914fad/file-icons/folder_type_services_opened.svg +1 -0
  1092. package/static/1914fad/file-icons/folder_type_src.svg +1 -0
  1093. package/static/1914fad/file-icons/folder_type_src_opened.svg +1 -0
  1094. package/static/1914fad/file-icons/folder_type_sso.svg +1 -0
  1095. package/static/1914fad/file-icons/folder_type_sso_opened.svg +1 -0
  1096. package/static/1914fad/file-icons/folder_type_story.svg +1 -0
  1097. package/static/1914fad/file-icons/folder_type_story_opened.svg +1 -0
  1098. package/static/1914fad/file-icons/folder_type_style.svg +1 -0
  1099. package/static/1914fad/file-icons/folder_type_style_opened.svg +1 -0
  1100. package/static/1914fad/file-icons/folder_type_tauri.svg +1 -0
  1101. package/static/1914fad/file-icons/folder_type_tauri_opened.svg +1 -0
  1102. package/static/1914fad/file-icons/folder_type_temp.svg +1 -0
  1103. package/static/1914fad/file-icons/folder_type_temp_opened.svg +1 -0
  1104. package/static/1914fad/file-icons/folder_type_template.svg +1 -0
  1105. package/static/1914fad/file-icons/folder_type_template_opened.svg +1 -0
  1106. package/static/1914fad/file-icons/folder_type_test.svg +1 -0
  1107. package/static/1914fad/file-icons/folder_type_test_opened.svg +1 -0
  1108. package/static/1914fad/file-icons/folder_type_theme.svg +1 -0
  1109. package/static/1914fad/file-icons/folder_type_theme_opened.svg +1 -0
  1110. package/static/1914fad/file-icons/folder_type_tools.svg +1 -0
  1111. package/static/1914fad/file-icons/folder_type_tools_opened.svg +1 -0
  1112. package/static/1914fad/file-icons/folder_type_travis.svg +1 -0
  1113. package/static/1914fad/file-icons/folder_type_travis_opened.svg +1 -0
  1114. package/static/1914fad/file-icons/folder_type_trunk.svg +1 -0
  1115. package/static/1914fad/file-icons/folder_type_trunk_opened.svg +1 -0
  1116. package/static/1914fad/file-icons/folder_type_typescript.svg +1 -0
  1117. package/static/1914fad/file-icons/folder_type_typescript_opened.svg +1 -0
  1118. package/static/1914fad/file-icons/folder_type_typings.svg +1 -0
  1119. package/static/1914fad/file-icons/folder_type_typings2.svg +1 -0
  1120. package/static/1914fad/file-icons/folder_type_typings2_opened.svg +1 -0
  1121. package/static/1914fad/file-icons/folder_type_typings_opened.svg +1 -0
  1122. package/static/1914fad/file-icons/folder_type_vagrant.svg +1 -0
  1123. package/static/1914fad/file-icons/folder_type_vagrant_opened.svg +1 -0
  1124. package/static/1914fad/file-icons/folder_type_video.svg +1 -0
  1125. package/static/1914fad/file-icons/folder_type_video_opened.svg +1 -0
  1126. package/static/1914fad/file-icons/folder_type_view.svg +1 -0
  1127. package/static/1914fad/file-icons/folder_type_view_opened.svg +1 -0
  1128. package/static/1914fad/file-icons/folder_type_vs.svg +1 -0
  1129. package/static/1914fad/file-icons/folder_type_vs2.svg +1 -0
  1130. package/static/1914fad/file-icons/folder_type_vs2_opened.svg +1 -0
  1131. package/static/1914fad/file-icons/folder_type_vs_opened.svg +1 -0
  1132. package/static/1914fad/file-icons/folder_type_vscode.svg +1 -0
  1133. package/static/1914fad/file-icons/folder_type_vscode2.svg +1 -0
  1134. package/static/1914fad/file-icons/folder_type_vscode2_opened.svg +1 -0
  1135. package/static/1914fad/file-icons/folder_type_vscode3.svg +1 -0
  1136. package/static/1914fad/file-icons/folder_type_vscode3_opened.svg +1 -0
  1137. package/static/1914fad/file-icons/folder_type_vscode_opened.svg +1 -0
  1138. package/static/1914fad/file-icons/folder_type_vscode_test.svg +1 -0
  1139. package/static/1914fad/file-icons/folder_type_vscode_test2.svg +1 -0
  1140. package/static/1914fad/file-icons/folder_type_vscode_test2_opened.svg +1 -0
  1141. package/static/1914fad/file-icons/folder_type_vscode_test3.svg +1 -0
  1142. package/static/1914fad/file-icons/folder_type_vscode_test3_opened.svg +1 -0
  1143. package/static/1914fad/file-icons/folder_type_vscode_test_opened.svg +1 -0
  1144. package/static/1914fad/file-icons/folder_type_webpack.svg +1 -0
  1145. package/static/1914fad/file-icons/folder_type_webpack_opened.svg +1 -0
  1146. package/static/1914fad/file-icons/folder_type_windows.svg +1 -0
  1147. package/static/1914fad/file-icons/folder_type_windows_opened.svg +1 -0
  1148. package/static/1914fad/file-icons/folder_type_www.svg +1 -0
  1149. package/static/1914fad/file-icons/folder_type_www_opened.svg +1 -0
  1150. package/static/1914fad/file-icons/folder_type_yarn.svg +1 -0
  1151. package/static/1914fad/file-icons/folder_type_yarn_opened.svg +1 -0
  1152. package/static/1914fad/fonts/FiraCode-VariableFont.ttf +0 -0
  1153. package/static/1914fad/icons/arrow-right.svg +3 -0
  1154. package/static/1914fad/icons/check.svg +1 -0
  1155. package/static/1914fad/icons/chevron-right.svg +3 -0
  1156. package/static/1914fad/icons/debug-alt-2.svg +3 -0
  1157. package/static/1914fad/icons/ellipsis.svg +5 -0
  1158. package/static/1914fad/icons/extensionDefaultIcon.png +0 -0
  1159. package/static/1914fad/icons/extensions.svg +3 -0
  1160. package/static/1914fad/icons/files.svg +3 -0
  1161. package/static/1914fad/icons/icon-close.svg +3 -0
  1162. package/static/1914fad/icons/icon-source-control.svg +3 -0
  1163. package/static/1914fad/icons/icon-sync.svg +1 -0
  1164. package/static/1914fad/icons/icon.png +0 -0
  1165. package/static/1914fad/icons/language-icon.svg +1 -0
  1166. package/static/1914fad/icons/pwa-icon-192.png +0 -0
  1167. package/static/1914fad/icons/pwa-icon-512.png +0 -0
  1168. package/static/1914fad/icons/search.svg +3 -0
  1169. package/static/1914fad/icons/settings-gear.svg +3 -0
  1170. package/static/1914fad/icons/source-control.svg +3 -0
  1171. package/static/1914fad/icons/symbol-array.svg +3 -0
  1172. package/static/1914fad/icons/symbol-boolean.svg +3 -0
  1173. package/static/1914fad/icons/symbol-class.svg +3 -0
  1174. package/static/1914fad/icons/symbol-color.svg +3 -0
  1175. package/static/1914fad/icons/symbol-constant.svg +4 -0
  1176. package/static/1914fad/icons/symbol-enum-member.svg +3 -0
  1177. package/static/1914fad/icons/symbol-enum.svg +3 -0
  1178. package/static/1914fad/icons/symbol-event.svg +3 -0
  1179. package/static/1914fad/icons/symbol-field.svg +3 -0
  1180. package/static/1914fad/icons/symbol-file.svg +3 -0
  1181. package/static/1914fad/icons/symbol-interface.svg +3 -0
  1182. package/static/1914fad/icons/symbol-key.svg +3 -0
  1183. package/static/1914fad/icons/symbol-keyword.svg +3 -0
  1184. package/static/1914fad/icons/symbol-method.svg +3 -0
  1185. package/static/1914fad/icons/symbol-misc.svg +3 -0
  1186. package/static/1914fad/icons/symbol-namespace.svg +3 -0
  1187. package/static/1914fad/icons/symbol-numeric.svg +3 -0
  1188. package/static/1914fad/icons/symbol-operator.svg +3 -0
  1189. package/static/1914fad/icons/symbol-parameter.svg +3 -0
  1190. package/static/1914fad/icons/symbol-property.svg +3 -0
  1191. package/static/1914fad/icons/symbol-ruler.svg +3 -0
  1192. package/static/1914fad/icons/symbol-snippet.svg +3 -0
  1193. package/static/1914fad/icons/symbol-string.svg +3 -0
  1194. package/static/1914fad/icons/symbol-structure.svg +3 -0
  1195. package/static/1914fad/icons/symbol-variable.svg +3 -0
  1196. package/static/1914fad/icons/theme-icon.png +0 -0
  1197. package/static/1914fad/packages/renderer-process/dist/Audio.ipc.js +13 -0
  1198. package/static/1914fad/packages/renderer-process/dist/Audio.ipc.js.map +1 -0
  1199. package/static/1914fad/packages/renderer-process/dist/Developer.ipc.js +80 -0
  1200. package/static/1914fad/packages/renderer-process/dist/Developer.ipc.js.map +1 -0
  1201. package/static/1914fad/packages/renderer-process/dist/Dialog.ipc.js +181 -0
  1202. package/static/1914fad/packages/renderer-process/dist/Dialog.ipc.js.map +1 -0
  1203. package/static/1914fad/packages/renderer-process/dist/EditorError.ipc.js +72 -0
  1204. package/static/1914fad/packages/renderer-process/dist/EditorError.ipc.js.map +1 -0
  1205. package/static/1914fad/packages/renderer-process/dist/EditorHover.ipc.js +20 -0
  1206. package/static/1914fad/packages/renderer-process/dist/EditorHover.ipc.js.map +1 -0
  1207. package/static/1914fad/packages/renderer-process/dist/EditorRename.ipc.js +46 -0
  1208. package/static/1914fad/packages/renderer-process/dist/EditorRename.ipc.js.map +1 -0
  1209. package/static/1914fad/packages/renderer-process/dist/FindWidget.ipc.js +64 -0
  1210. package/static/1914fad/packages/renderer-process/dist/FindWidget.ipc.js.map +1 -0
  1211. package/static/1914fad/packages/renderer-process/dist/ImagePreview.ipc.js +12 -0
  1212. package/static/1914fad/packages/renderer-process/dist/ImagePreview.ipc.js.map +1 -0
  1213. package/static/1914fad/packages/renderer-process/dist/ImagePreview.js +72 -0
  1214. package/static/1914fad/packages/renderer-process/dist/ImagePreview.js.map +1 -0
  1215. package/static/1914fad/packages/renderer-process/dist/InputBox.js +13 -0
  1216. package/static/1914fad/packages/renderer-process/dist/InputBox.js.map +1 -0
  1217. package/static/1914fad/packages/renderer-process/dist/Menu.ipc.js +15 -0
  1218. package/static/1914fad/packages/renderer-process/dist/Menu.ipc.js.map +1 -0
  1219. package/static/1914fad/packages/renderer-process/dist/Meta.ipc.js +17 -0
  1220. package/static/1914fad/packages/renderer-process/dist/Meta.ipc.js.map +1 -0
  1221. package/static/1914fad/packages/renderer-process/dist/Notification.ipc.js +75 -0
  1222. package/static/1914fad/packages/renderer-process/dist/Notification.ipc.js.map +1 -0
  1223. package/static/1914fad/packages/renderer-process/dist/SessionStorage.ipc.js +22 -0
  1224. package/static/1914fad/packages/renderer-process/dist/SessionStorage.ipc.js.map +1 -0
  1225. package/static/1914fad/packages/renderer-process/dist/ViewletClock.js +25 -0
  1226. package/static/1914fad/packages/renderer-process/dist/ViewletClock.js.map +1 -0
  1227. package/static/1914fad/packages/renderer-process/dist/ViewletDebugConsole.js +27 -0
  1228. package/static/1914fad/packages/renderer-process/dist/ViewletDebugConsole.js.map +1 -0
  1229. package/static/1914fad/packages/renderer-process/dist/ViewletEditorCompletion.js +127 -0
  1230. package/static/1914fad/packages/renderer-process/dist/ViewletEditorCompletion.js.map +1 -0
  1231. package/static/1914fad/packages/renderer-process/dist/ViewletEditorImage.js +27 -0
  1232. package/static/1914fad/packages/renderer-process/dist/ViewletEditorImage.js.map +1 -0
  1233. package/static/1914fad/packages/renderer-process/dist/ViewletEditorPlainText.js +24 -0
  1234. package/static/1914fad/packages/renderer-process/dist/ViewletEditorPlainText.js.map +1 -0
  1235. package/static/1914fad/packages/renderer-process/dist/ViewletEditorText.js +47 -0
  1236. package/static/1914fad/packages/renderer-process/dist/ViewletEditorText.js.map +1 -0
  1237. package/static/1914fad/packages/renderer-process/dist/ViewletEmpty.js +19 -0
  1238. package/static/1914fad/packages/renderer-process/dist/ViewletEmpty.js.map +1 -0
  1239. package/static/1914fad/packages/renderer-process/dist/ViewletExplorer.js +361 -0
  1240. package/static/1914fad/packages/renderer-process/dist/ViewletExplorer.js.map +1 -0
  1241. package/static/1914fad/packages/renderer-process/dist/ViewletExtensions.js +466 -0
  1242. package/static/1914fad/packages/renderer-process/dist/ViewletExtensions.js.map +1 -0
  1243. package/static/1914fad/packages/renderer-process/dist/ViewletImplementations.js +7 -0
  1244. package/static/1914fad/packages/renderer-process/dist/ViewletImplementations.js.map +1 -0
  1245. package/static/1914fad/packages/renderer-process/dist/ViewletLocations.js +136 -0
  1246. package/static/1914fad/packages/renderer-process/dist/ViewletLocations.js.map +1 -0
  1247. package/static/1914fad/packages/renderer-process/dist/ViewletMain.js +451 -0
  1248. package/static/1914fad/packages/renderer-process/dist/ViewletMain.js.map +1 -0
  1249. package/static/1914fad/packages/renderer-process/dist/ViewletOutput.js +96 -0
  1250. package/static/1914fad/packages/renderer-process/dist/ViewletOutput.js.map +1 -0
  1251. package/static/1914fad/packages/renderer-process/dist/ViewletPanel.js +111 -0
  1252. package/static/1914fad/packages/renderer-process/dist/ViewletPanel.js.map +1 -0
  1253. package/static/1914fad/packages/renderer-process/dist/ViewletProblems.js +34 -0
  1254. package/static/1914fad/packages/renderer-process/dist/ViewletProblems.js.map +1 -0
  1255. package/static/1914fad/packages/renderer-process/dist/ViewletQuickPick.js +336 -0
  1256. package/static/1914fad/packages/renderer-process/dist/ViewletQuickPick.js.map +1 -0
  1257. package/static/1914fad/packages/renderer-process/dist/ViewletReferences.js +7 -0
  1258. package/static/1914fad/packages/renderer-process/dist/ViewletReferences.js.map +1 -0
  1259. package/static/1914fad/packages/renderer-process/dist/ViewletRunAndDebug.js +54 -0
  1260. package/static/1914fad/packages/renderer-process/dist/ViewletRunAndDebug.js.map +1 -0
  1261. package/static/1914fad/packages/renderer-process/dist/ViewletSearch.js +171 -0
  1262. package/static/1914fad/packages/renderer-process/dist/ViewletSearch.js.map +1 -0
  1263. package/static/1914fad/packages/renderer-process/dist/ViewletSideBar.js +59 -0
  1264. package/static/1914fad/packages/renderer-process/dist/ViewletSideBar.js.map +1 -0
  1265. package/static/1914fad/packages/renderer-process/dist/ViewletSourceControl.js +93 -0
  1266. package/static/1914fad/packages/renderer-process/dist/ViewletSourceControl.js.map +1 -0
  1267. package/static/1914fad/packages/renderer-process/dist/ViewletTerminal.js +1628 -0
  1268. package/static/1914fad/packages/renderer-process/dist/ViewletTerminal.js.map +1 -0
  1269. package/static/1914fad/packages/renderer-process/dist/renderer-process.modern.js +2 -0
  1270. package/static/1914fad/packages/renderer-process/dist/renderer-process.modern.js.map +1 -0
  1271. package/static/1914fad/packages/renderer-process/dist/rendererProcessMain.js +3795 -0
  1272. package/static/1914fad/packages/renderer-process/dist/rendererProcessMain.js.map +1 -0
  1273. package/static/1914fad/packages/renderer-process/src/parts/Allocator/Allocator.js +19 -0
  1274. package/static/1914fad/packages/renderer-process/src/parts/AriaAlert/AriaAlert.js +39 -0
  1275. package/static/1914fad/packages/renderer-process/src/parts/Assert/Assert.js +66 -0
  1276. package/static/1914fad/packages/renderer-process/src/parts/Audio/Audio.ipc.js +6 -0
  1277. package/static/1914fad/packages/renderer-process/src/parts/Audio/Audio.js +4 -0
  1278. package/static/1914fad/packages/renderer-process/src/parts/BackDrop/BackDrop.js +5 -0
  1279. package/static/1914fad/packages/renderer-process/src/parts/Callback/Callback.js +30 -0
  1280. package/static/1914fad/packages/renderer-process/src/parts/Command/Command.js +325 -0
  1281. package/static/1914fad/packages/renderer-process/src/parts/Context/Context.js +26 -0
  1282. package/static/1914fad/packages/renderer-process/src/parts/Css/Css.ipc.js +6 -0
  1283. package/static/1914fad/packages/renderer-process/src/parts/Css/Css.js +11 -0
  1284. package/static/1914fad/packages/renderer-process/src/parts/Developer/Developer.ipc.js +7 -0
  1285. package/static/1914fad/packages/renderer-process/src/parts/Developer/Developer.js +72 -0
  1286. package/static/1914fad/packages/renderer-process/src/parts/Dialog/Dialog.ipc.js +9 -0
  1287. package/static/1914fad/packages/renderer-process/src/parts/Dialog/Dialog.js +183 -0
  1288. package/static/1914fad/packages/renderer-process/src/parts/Dom/Dom.js +22 -0
  1289. package/static/1914fad/packages/renderer-process/src/parts/DomPool/DomPool.js +17 -0
  1290. package/static/1914fad/packages/renderer-process/src/parts/DomScheduler/DomScheduler.js +18 -0
  1291. package/static/1914fad/packages/renderer-process/src/parts/Editor/Editor.js +623 -0
  1292. package/static/1914fad/packages/renderer-process/src/parts/Editor/EditorHelper.js +28 -0
  1293. package/static/1914fad/packages/renderer-process/src/parts/Editor/LayerCursor.js +129 -0
  1294. package/static/1914fad/packages/renderer-process/src/parts/Editor/LayerDecoration2.js +13 -0
  1295. package/static/1914fad/packages/renderer-process/src/parts/Editor/LayerDiagnostics.js +55 -0
  1296. package/static/1914fad/packages/renderer-process/src/parts/Editor/LayerLineNumbers.js +12 -0
  1297. package/static/1914fad/packages/renderer-process/src/parts/Editor/LayerMarker.js +96 -0
  1298. package/static/1914fad/packages/renderer-process/src/parts/Editor/LayerScreenReader.js +45 -0
  1299. package/static/1914fad/packages/renderer-process/src/parts/Editor/LayerScrollBar.js +95 -0
  1300. package/static/1914fad/packages/renderer-process/src/parts/Editor/LayerSelections.js +70 -0
  1301. package/static/1914fad/packages/renderer-process/src/parts/Editor/LayerText.js +120 -0
  1302. package/static/1914fad/packages/renderer-process/src/parts/EditorController/EditorController.js +18 -0
  1303. package/static/1914fad/packages/renderer-process/src/parts/EditorError/EditorError.ipc.js +6 -0
  1304. package/static/1914fad/packages/renderer-process/src/parts/EditorError/EditorError.js +28 -0
  1305. package/static/1914fad/packages/renderer-process/src/parts/EditorGroup/EditorGroup.js +55 -0
  1306. package/static/1914fad/packages/renderer-process/src/parts/EditorHover/EditorHover.ipc.js +6 -0
  1307. package/static/1914fad/packages/renderer-process/src/parts/EditorHover/EditorHover.js +22 -0
  1308. package/static/1914fad/packages/renderer-process/src/parts/EditorRename/EditorRename.ipc.js +8 -0
  1309. package/static/1914fad/packages/renderer-process/src/parts/EditorRename/EditorRename.js +39 -0
  1310. package/static/1914fad/packages/renderer-process/src/parts/EditorTab/EditorTab.js +128 -0
  1311. package/static/1914fad/packages/renderer-process/src/parts/FindWidget/FindWidget.ipc.js +8 -0
  1312. package/static/1914fad/packages/renderer-process/src/parts/FindWidget/FindWidget.js +56 -0
  1313. package/static/1914fad/packages/renderer-process/src/parts/Focus/Focus.js +50 -0
  1314. package/static/1914fad/packages/renderer-process/src/parts/FocusHighlight/FocusHighlight.js +12 -0
  1315. package/static/1914fad/packages/renderer-process/src/parts/GlobalEventBus/GlobalEventBus.js +26 -0
  1316. package/static/1914fad/packages/renderer-process/src/parts/ImagePreview/ImagePreview.ipc.js +9 -0
  1317. package/static/1914fad/packages/renderer-process/src/parts/ImagePreview/ImagePreview.js +69 -0
  1318. package/static/1914fad/packages/renderer-process/src/parts/InputBox/InputBox.js +10 -0
  1319. package/static/1914fad/packages/renderer-process/src/parts/KeyBindings/KeyBindings.ipc.js +7 -0
  1320. package/static/1914fad/packages/renderer-process/src/parts/KeyBindings/KeyBindings.js +164 -0
  1321. package/static/1914fad/packages/renderer-process/src/parts/Layout/Layout.ipc.js +17 -0
  1322. package/static/1914fad/packages/renderer-process/src/parts/Layout/Layout.js +237 -0
  1323. package/static/1914fad/packages/renderer-process/src/parts/LocalStorage/LocalStorage.ipc.js +8 -0
  1324. package/static/1914fad/packages/renderer-process/src/parts/LocalStorage/LocalStorage.js +11 -0
  1325. package/static/1914fad/packages/renderer-process/src/parts/Location/Location.ipc.js +8 -0
  1326. package/static/1914fad/packages/renderer-process/src/parts/Location/Location.js +22 -0
  1327. package/static/1914fad/packages/renderer-process/src/parts/MenuItem/MenuItem.js +60 -0
  1328. package/static/1914fad/packages/renderer-process/src/parts/Meta/Meta.ipc.js +6 -0
  1329. package/static/1914fad/packages/renderer-process/src/parts/Meta/Meta.js +8 -0
  1330. package/static/1914fad/packages/renderer-process/src/parts/Navigation/Navigation.js +33 -0
  1331. package/static/1914fad/packages/renderer-process/src/parts/Notification/Notification.ipc.js +8 -0
  1332. package/static/1914fad/packages/renderer-process/src/parts/Notification/Notification.js +79 -0
  1333. package/static/1914fad/packages/renderer-process/src/parts/OldMenu/Menu.ipc.js +13 -0
  1334. package/static/1914fad/packages/renderer-process/src/parts/OldMenu/Menu.js +335 -0
  1335. package/static/1914fad/packages/renderer-process/src/parts/OldMenu/Menu2.js +121 -0
  1336. package/static/1914fad/packages/renderer-process/src/parts/Platform/Platform.js +128 -0
  1337. package/static/1914fad/packages/renderer-process/src/parts/Renderer/Renderer.js +29 -0
  1338. package/static/1914fad/packages/renderer-process/src/parts/Renderer/RendererExtension.js +75 -0
  1339. package/static/1914fad/packages/renderer-process/src/parts/Renderer/RendererQuickPick.js +29 -0
  1340. package/static/1914fad/packages/renderer-process/src/parts/Renderer/RendererSearchResult.js +18 -0
  1341. package/static/1914fad/packages/renderer-process/src/parts/Renderer/RendererSuggestWidget.js +17 -0
  1342. package/static/1914fad/packages/renderer-process/src/parts/Renderer/RendererTree.js +40 -0
  1343. package/static/1914fad/packages/renderer-process/src/parts/RendererWorker/RendererWorker.ipc.js +6 -0
  1344. package/static/1914fad/packages/renderer-process/src/parts/RendererWorker/RendererWorker.js +71 -0
  1345. package/static/1914fad/packages/renderer-process/src/parts/ServiceWorker/ServiceWorker.ipc.js +8 -0
  1346. package/static/1914fad/packages/renderer-process/src/parts/ServiceWorker/ServiceWorker.js +36 -0
  1347. package/static/1914fad/packages/renderer-process/src/parts/SessionStorage/SessionStorage.ipc.js +8 -0
  1348. package/static/1914fad/packages/renderer-process/src/parts/SessionStorage/SessionStorage.js +11 -0
  1349. package/static/1914fad/packages/renderer-process/src/parts/Terminal/Terminal.ipc.js +6 -0
  1350. package/static/1914fad/packages/renderer-process/src/parts/Terminal/Terminal.js +18 -0
  1351. package/static/1914fad/packages/renderer-process/src/parts/TitleBarMenuBar/TitleBarMenuBar.js +291 -0
  1352. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/ActiveViewlet.js +33 -0
  1353. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/ExplorerModel.js +45 -0
  1354. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/TreeProviderJson.js +136 -0
  1355. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/TreeProviderNpm.js +0 -0
  1356. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/TreeView.js +296 -0
  1357. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/TreeView2.js +189 -0
  1358. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/TreeViewClass.js +30 -0
  1359. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/TreeViewNumber.js +25 -0
  1360. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/Viewlet.ipc.js +14 -0
  1361. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/Viewlet.js +220 -0
  1362. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/ViewletActivityBar.js +180 -0
  1363. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/ViewletClock.js +22 -0
  1364. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/ViewletDebugConsole.js +24 -0
  1365. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/ViewletEditorCompletion.js +126 -0
  1366. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/ViewletEditorImage.js +24 -0
  1367. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/ViewletEditorPlainText.js +21 -0
  1368. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/ViewletEditorText.js +45 -0
  1369. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/ViewletEmpty.js +16 -0
  1370. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/ViewletExplorer.js +383 -0
  1371. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/ViewletExtensions.js +473 -0
  1372. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/ViewletIframe.js +18 -0
  1373. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/ViewletImplementations.js +3 -0
  1374. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/ViewletList.js +218 -0
  1375. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/ViewletLocations.js +138 -0
  1376. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/ViewletMain.js +304 -0
  1377. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/ViewletOutput.js +98 -0
  1378. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/ViewletPanel.js +112 -0
  1379. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/ViewletProblems.js +31 -0
  1380. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/ViewletQuickPick.js +339 -0
  1381. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/ViewletReferences.js +3 -0
  1382. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/ViewletRunAndDebug.js +42 -0
  1383. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/ViewletSearch.js +179 -0
  1384. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/ViewletSideBar.js +57 -0
  1385. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/ViewletSourceControl.js +94 -0
  1386. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/ViewletStatusBar.js +115 -0
  1387. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/ViewletTerminal.js +109 -0
  1388. package/static/1914fad/packages/renderer-process/src/parts/Viewlet/ViewletTitleBar.js +33 -0
  1389. package/static/1914fad/packages/renderer-process/src/parts/ViewletController/ViewletProblems.controller.js +22 -0
  1390. package/static/1914fad/packages/renderer-process/src/parts/WebWorker/WebWorker.js +46 -0
  1391. package/static/1914fad/packages/renderer-process/src/parts/Widget/Widget.js +50 -0
  1392. package/static/1914fad/packages/renderer-process/src/parts/WidgetManager/WidgetManager.js +30 -0
  1393. package/static/1914fad/packages/renderer-process/src/parts/Window/Window.ipc.js +11 -0
  1394. package/static/1914fad/packages/renderer-process/src/parts/Window/Window.js +17 -0
  1395. package/static/1914fad/packages/renderer-process/src/rendererProcessMain.js +92 -0
  1396. package/static/1914fad/packages/renderer-process/src/shared/findIndex.js +20 -0
  1397. package/static/1914fad/packages/renderer-worker/dist/rendererWorkerMain.js +19579 -0
  1398. package/static/1914fad/packages/renderer-worker/dist/rendererWorkerMain.js.map +1 -0
  1399. package/static/1914fad/packages/renderer-worker/src/parts/Ajax/Ajax.ipc.js +8 -0
  1400. package/static/1914fad/packages/renderer-worker/src/parts/Ajax/Ajax.js +77 -0
  1401. package/static/1914fad/packages/renderer-worker/src/parts/Arrays/Arrays.js +25 -0
  1402. package/static/1914fad/packages/renderer-worker/src/parts/Assert/Assert.js +76 -0
  1403. package/static/1914fad/packages/renderer-worker/src/parts/Audio/Audio.ipc.js +6 -0
  1404. package/static/1914fad/packages/renderer-worker/src/parts/Audio/Audio.js +6 -0
  1405. package/static/1914fad/packages/renderer-worker/src/parts/Base64/Base64.ipc.js +6 -0
  1406. package/static/1914fad/packages/renderer-worker/src/parts/Base64/Base64.js +6 -0
  1407. package/static/1914fad/packages/renderer-worker/src/parts/Blob/Blob.ipc.js +6 -0
  1408. package/static/1914fad/packages/renderer-worker/src/parts/Blob/Blob.js +5 -0
  1409. package/static/1914fad/packages/renderer-worker/src/parts/CacheStorage/CacheStorage.ipc.js +10 -0
  1410. package/static/1914fad/packages/renderer-worker/src/parts/CacheStorage/CacheStorage.js +151 -0
  1411. package/static/1914fad/packages/renderer-worker/src/parts/Callback/Callback.ipc.js +7 -0
  1412. package/static/1914fad/packages/renderer-worker/src/parts/Callback/Callback.js +50 -0
  1413. package/static/1914fad/packages/renderer-worker/src/parts/ClipBoard/ClipBoard.ipc.js +9 -0
  1414. package/static/1914fad/packages/renderer-worker/src/parts/ClipBoard/ClipBoard.js +55 -0
  1415. package/static/1914fad/packages/renderer-worker/src/parts/ColorPicker/ColorPicker.ipc.js +8 -0
  1416. package/static/1914fad/packages/renderer-worker/src/parts/ColorPicker/ColorPicker.js +7 -0
  1417. package/static/1914fad/packages/renderer-worker/src/parts/ColorTheme/Color.js +170 -0
  1418. package/static/1914fad/packages/renderer-worker/src/parts/ColorTheme/ColorTheme.ipc.js +7 -0
  1419. package/static/1914fad/packages/renderer-worker/src/parts/ColorTheme/ColorTheme.js +114 -0
  1420. package/static/1914fad/packages/renderer-worker/src/parts/ColorThemeFromJson/ColorThemeFromJson.ipc.js +6 -0
  1421. package/static/1914fad/packages/renderer-worker/src/parts/ColorThemeFromJson/ColorThemeFromJson.js +124 -0
  1422. package/static/1914fad/packages/renderer-worker/src/parts/Command/Command.js +907 -0
  1423. package/static/1914fad/packages/renderer-worker/src/parts/CommandInfo/CommandInfo.ipc.js +6 -0
  1424. package/static/1914fad/packages/renderer-worker/src/parts/CommandInfo/CommandInfo.js +456 -0
  1425. package/static/1914fad/packages/renderer-worker/src/parts/Context/ContextImpl.js +17 -0
  1426. package/static/1914fad/packages/renderer-worker/src/parts/ContextMenu/ContextMenu.ipc.js +14 -0
  1427. package/static/1914fad/packages/renderer-worker/src/parts/ContextMenu/ContextMenu.js +15 -0
  1428. package/static/1914fad/packages/renderer-worker/src/parts/CustomEditor/CustomEditor.js +0 -0
  1429. package/static/1914fad/packages/renderer-worker/src/parts/CustomEditor/CustomEditorExtension.js +14 -0
  1430. package/static/1914fad/packages/renderer-worker/src/parts/Developer/Developer.ipc.js +26 -0
  1431. package/static/1914fad/packages/renderer-worker/src/parts/Developer/Developer.js +533 -0
  1432. package/static/1914fad/packages/renderer-worker/src/parts/Dialog/Dialog.ipc.js +10 -0
  1433. package/static/1914fad/packages/renderer-worker/src/parts/Dialog/Dialog.js +107 -0
  1434. package/static/1914fad/packages/renderer-worker/src/parts/Editor/Editor.js +351 -0
  1435. package/static/1914fad/packages/renderer-worker/src/parts/Editor/EditorCursor.js +73 -0
  1436. package/static/1914fad/packages/renderer-worker/src/parts/Editor/EditorScrolling.js +22 -0
  1437. package/static/1914fad/packages/renderer-worker/src/parts/Editor/EditorSelection.js +127 -0
  1438. package/static/1914fad/packages/renderer-worker/src/parts/Editor/EditorText.js +306 -0
  1439. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommand.ipc.js +165 -0
  1440. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandApplyEdit.js +8 -0
  1441. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandBlur.js +20 -0
  1442. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandCancelSelection.js +15 -0
  1443. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandCompletion.js +228 -0
  1444. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandComposition.js +48 -0
  1445. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandCopy.js +20 -0
  1446. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandCopyLineDown.js +22 -0
  1447. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandCopyLineUp.js +15 -0
  1448. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandCursorCharacterLeft.js +9 -0
  1449. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandCursorCharacterRight.js +9 -0
  1450. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandCursorDown.js +21 -0
  1451. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandCursorEnd.js +9 -0
  1452. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandCursorHome.js +9 -0
  1453. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandCursorHorizontalLeft.js +30 -0
  1454. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandCursorHorizontalRight.js +30 -0
  1455. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandCursorSet.js +11 -0
  1456. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandCursorUp.js +21 -0
  1457. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandCursorVertical.js +92 -0
  1458. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandCursorWordLeft.js +12 -0
  1459. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandCursorWordPartLeft.js +9 -0
  1460. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandCursorWordPartRight.js +9 -0
  1461. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandCursorWordRight.js +9 -0
  1462. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandCut.js +17 -0
  1463. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandDeleteAllLeft.js +9 -0
  1464. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandDeleteAllRight.js +9 -0
  1465. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandDeleteCharacterLeft.js +9 -0
  1466. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandDeleteCharacterRight.js +9 -0
  1467. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandDeleteHorizontal.js +25 -0
  1468. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandDeleteHorizontalLeft.js +36 -0
  1469. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandDeleteHorizontalRight.js +40 -0
  1470. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandDeleteSelection.js +24 -0
  1471. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandDeleteWordLeft.js +9 -0
  1472. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandDeleteWordPartLeft.js +9 -0
  1473. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandDeleteWordPartRight.js +9 -0
  1474. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandDeleteWordRight.js +9 -0
  1475. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandDelta.js +146 -0
  1476. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandFormat.js +26 -0
  1477. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandGetPositionLeft.js +18 -0
  1478. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandGetPositionRight.js +18 -0
  1479. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandGetSelectionFromNativeRange.js +26 -0
  1480. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandGoToDefinition.js +106 -0
  1481. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandGoToTypeDefinition.js +116 -0
  1482. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandHandleContextMenu.js +10 -0
  1483. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandHandleDoubleClick.js +11 -0
  1484. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandHandleMouseMove.js +33 -0
  1485. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandHandleMouseMoveWithAltKey.js +89 -0
  1486. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandHandleNativeBeforeInputFromContentEditable.js +18 -0
  1487. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandHandleNativeSelectionChange.js +9 -0
  1488. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandHandleScrollBarClick.js +52 -0
  1489. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandHandleScrollBarMove.js +26 -0
  1490. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandHandleSingleClick.js +38 -0
  1491. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandHandleTab.js +49 -0
  1492. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandHandleTouchEnd.js +31 -0
  1493. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandHandleTouchMove.js +13 -0
  1494. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandHandleTouchStart.js +17 -0
  1495. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandHandleTripleClick.js +11 -0
  1496. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandHandleWheel.js +20 -0
  1497. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandIndent.js +3 -0
  1498. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandIndentLess.js +27 -0
  1499. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandIndentMore.js +27 -0
  1500. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandIndentSelection.js +0 -0
  1501. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandInsertLineBreak.js +32 -0
  1502. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandMoveLineDown.js +30 -0
  1503. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandMoveLineUp.js +29 -0
  1504. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandMoveRectangleSelection.js +26 -0
  1505. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandMoveRectangleSelectionPx.js +7 -0
  1506. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandMoveSelection.js +72 -0
  1507. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandMoveSelectionPx.js +12 -0
  1508. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandPaste.js +9 -0
  1509. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandPasteText.js +12 -0
  1510. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandPosition.js +34 -0
  1511. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandReplaceRange.js +1 -0
  1512. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandReplaceSelection.js +15 -0
  1513. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandSave.js +21 -0
  1514. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandSelectAll.js +16 -0
  1515. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandSelectAllLeft.js +9 -0
  1516. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandSelectAllOccurrences.js +146 -0
  1517. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandSelectAllRight.js +9 -0
  1518. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandSelectCharacterLeft.js +9 -0
  1519. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandSelectCharacterRight.js +9 -0
  1520. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandSelectHorizontalLeft.js +31 -0
  1521. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandSelectHorizontalRight.js +24 -0
  1522. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandSelectInsideString.js +39 -0
  1523. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandSelectLine.js +25 -0
  1524. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandSelectNextOccurrence.js +235 -0
  1525. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandSelectPreviousOccurrence.js +0 -0
  1526. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandSelectWord.js +33 -0
  1527. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandSelectWordLeft.js +9 -0
  1528. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandSelectWordRight.js +9 -0
  1529. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandSelection.js +3 -0
  1530. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandSetDecorations.js +6 -0
  1531. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandSetDeltaY.js +9 -0
  1532. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandSetLanguageId.js +23 -0
  1533. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandShowMessage.js +42 -0
  1534. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandSnippet.js +45 -0
  1535. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandTabCompletion.js +24 -0
  1536. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandToggleBlockComment.js +226 -0
  1537. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandToggleComment.js +14 -0
  1538. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandToggleLineComment.js +105 -0
  1539. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandType.js +110 -0
  1540. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandUndo.js +24 -0
  1541. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorCommandUnindent.js +116 -0
  1542. package/static/1914fad/packages/renderer-worker/src/parts/EditorCommand/EditorIndent.js +49 -0
  1543. package/static/1914fad/packages/renderer-worker/src/parts/EditorDiagnostics/EditorDiagnostics.ipc.js +6 -0
  1544. package/static/1914fad/packages/renderer-worker/src/parts/EditorDiagnostics/EditorDiagnostics.js +103 -0
  1545. package/static/1914fad/packages/renderer-worker/src/parts/EditorError/EditorError.ipc.js +6 -0
  1546. package/static/1914fad/packages/renderer-worker/src/parts/EditorError/EditorError.js +13 -0
  1547. package/static/1914fad/packages/renderer-worker/src/parts/EditorRename/EditorRename.ipc.js +8 -0
  1548. package/static/1914fad/packages/renderer-worker/src/parts/EditorRename/EditorRename.js +94 -0
  1549. package/static/1914fad/packages/renderer-worker/src/parts/Env/Env.js +1 -0
  1550. package/static/1914fad/packages/renderer-worker/src/parts/ErrorHandling/ErrorHandling.ipc.js +6 -0
  1551. package/static/1914fad/packages/renderer-worker/src/parts/ErrorHandling/ErrorHandling.js +91 -0
  1552. package/static/1914fad/packages/renderer-worker/src/parts/ExtensionHost/ExtensionHostBraceCompletion.js +18 -0
  1553. package/static/1914fad/packages/renderer-worker/src/parts/ExtensionHost/ExtensionHostClosingTagCompletion.js +18 -0
  1554. package/static/1914fad/packages/renderer-worker/src/parts/ExtensionHost/ExtensionHostCommands.js +20 -0
  1555. package/static/1914fad/packages/renderer-worker/src/parts/ExtensionHost/ExtensionHostCompletion.js +13 -0
  1556. package/static/1914fad/packages/renderer-worker/src/parts/ExtensionHost/ExtensionHostCore.js +46 -0
  1557. package/static/1914fad/packages/renderer-worker/src/parts/ExtensionHost/ExtensionHostDefinition.js +13 -0
  1558. package/static/1914fad/packages/renderer-worker/src/parts/ExtensionHost/ExtensionHostDiagnostic.js +15 -0
  1559. package/static/1914fad/packages/renderer-worker/src/parts/ExtensionHost/ExtensionHostFileSystem.js +93 -0
  1560. package/static/1914fad/packages/renderer-worker/src/parts/ExtensionHost/ExtensionHostFormatting.js +12 -0
  1561. package/static/1914fad/packages/renderer-worker/src/parts/ExtensionHost/ExtensionHostHover.js +11 -0
  1562. package/static/1914fad/packages/renderer-worker/src/parts/ExtensionHost/ExtensionHostImplementation.js +13 -0
  1563. package/static/1914fad/packages/renderer-worker/src/parts/ExtensionHost/ExtensionHostLanguages.js +37 -0
  1564. package/static/1914fad/packages/renderer-worker/src/parts/ExtensionHost/ExtensionHostManagement.js +86 -0
  1565. package/static/1914fad/packages/renderer-worker/src/parts/ExtensionHost/ExtensionHostOutput.js +11 -0
  1566. package/static/1914fad/packages/renderer-worker/src/parts/ExtensionHost/ExtensionHostQuickPick.js +0 -0
  1567. package/static/1914fad/packages/renderer-worker/src/parts/ExtensionHost/ExtensionHostReference.js +13 -0
  1568. package/static/1914fad/packages/renderer-worker/src/parts/ExtensionHost/ExtensionHostRename.js +21 -0
  1569. package/static/1914fad/packages/renderer-worker/src/parts/ExtensionHost/ExtensionHostSemanticTokens.js +16 -0
  1570. package/static/1914fad/packages/renderer-worker/src/parts/ExtensionHost/ExtensionHostSourceControl.js +21 -0
  1571. package/static/1914fad/packages/renderer-worker/src/parts/ExtensionHost/ExtensionHostStatusBarItems.js +39 -0
  1572. package/static/1914fad/packages/renderer-worker/src/parts/ExtensionHost/ExtensionHostTabCompletion.js +13 -0
  1573. package/static/1914fad/packages/renderer-worker/src/parts/ExtensionHost/ExtensionHostTextDocument.js +39 -0
  1574. package/static/1914fad/packages/renderer-worker/src/parts/ExtensionHost/ExtensionHostTypeDefinition.js +13 -0
  1575. package/static/1914fad/packages/renderer-worker/src/parts/ExtensionHost/shared.js +3 -0
  1576. package/static/1914fad/packages/renderer-worker/src/parts/ExtensionManagement/ExtensionManagement.js +48 -0
  1577. package/static/1914fad/packages/renderer-worker/src/parts/ExtensionMarketplace/ExtensionMarketplace.js +14 -0
  1578. package/static/1914fad/packages/renderer-worker/src/parts/ExtensionMeta/ExtensionMeta.js +12 -0
  1579. package/static/1914fad/packages/renderer-worker/src/parts/Extensions/Extensions.ipc.js +7 -0
  1580. package/static/1914fad/packages/renderer-worker/src/parts/Extensions/Extensions.js +12 -0
  1581. package/static/1914fad/packages/renderer-worker/src/parts/ExtensionsSomething/ExtensionsSomething.js +0 -0
  1582. package/static/1914fad/packages/renderer-worker/src/parts/FileSystem/FileSystem.ipc.js +13 -0
  1583. package/static/1914fad/packages/renderer-worker/src/parts/FileSystem/FileSystem.js +101 -0
  1584. package/static/1914fad/packages/renderer-worker/src/parts/FileSystem/FileSystemApp.js +124 -0
  1585. package/static/1914fad/packages/renderer-worker/src/parts/FileSystem/FileSystemData.js +37 -0
  1586. package/static/1914fad/packages/renderer-worker/src/parts/FileSystem/FileSystemDisk.js +69 -0
  1587. package/static/1914fad/packages/renderer-worker/src/parts/FileSystem/FileSystemGitHub.js +77 -0
  1588. package/static/1914fad/packages/renderer-worker/src/parts/FileSystem/FileSystemWeb.js +304 -0
  1589. package/static/1914fad/packages/renderer-worker/src/parts/FindInWorkspace/FindInWorkspace.ipc.js +8 -0
  1590. package/static/1914fad/packages/renderer-worker/src/parts/FindInWorkspace/FindInWorkspace.js +13 -0
  1591. package/static/1914fad/packages/renderer-worker/src/parts/FindWidget/FindWidget.ipc.js +9 -0
  1592. package/static/1914fad/packages/renderer-worker/src/parts/FindWidget/FindWidget.js +55 -0
  1593. package/static/1914fad/packages/renderer-worker/src/parts/Focus/Focus.js +22 -0
  1594. package/static/1914fad/packages/renderer-worker/src/parts/Format/Format.ipc.js +6 -0
  1595. package/static/1914fad/packages/renderer-worker/src/parts/Format/Format.js +44 -0
  1596. package/static/1914fad/packages/renderer-worker/src/parts/FuzzySearch/FuzzySearch.js +1 -0
  1597. package/static/1914fad/packages/renderer-worker/src/parts/FuzzySearch/FuzzySearchMrAleph.js +24 -0
  1598. package/static/1914fad/packages/renderer-worker/src/parts/GitHubRestApi/GitHubRestApi.js +30 -0
  1599. package/static/1914fad/packages/renderer-worker/src/parts/GlobalEventBus/GlobalEventBus.js +41 -0
  1600. package/static/1914fad/packages/renderer-worker/src/parts/Highlight/Highlight.js +52 -0
  1601. package/static/1914fad/packages/renderer-worker/src/parts/History/History.js +5 -0
  1602. package/static/1914fad/packages/renderer-worker/src/parts/IconTheme/IconTheme.ipc.js +10 -0
  1603. package/static/1914fad/packages/renderer-worker/src/parts/IconTheme/IconTheme.js +162 -0
  1604. package/static/1914fad/packages/renderer-worker/src/parts/Id/Id.js +7 -0
  1605. package/static/1914fad/packages/renderer-worker/src/parts/ImagePreview/ImagePreview.ipc.js +9 -0
  1606. package/static/1914fad/packages/renderer-worker/src/parts/ImagePreview/ImagePreview.js +50 -0
  1607. package/static/1914fad/packages/renderer-worker/src/parts/Ipc/Ipc.js +20 -0
  1608. package/static/1914fad/packages/renderer-worker/src/parts/Json/Json.js +12 -0
  1609. package/static/1914fad/packages/renderer-worker/src/parts/JsonRpc/JsonRpc.js +22 -0
  1610. package/static/1914fad/packages/renderer-worker/src/parts/KeyBindings/KeyBindings.ipc.js +7 -0
  1611. package/static/1914fad/packages/renderer-worker/src/parts/KeyBindings/KeyBindings.js +53 -0
  1612. package/static/1914fad/packages/renderer-worker/src/parts/KeyBindingsInitial/KeyBindingsInitial.ipc.js +6 -0
  1613. package/static/1914fad/packages/renderer-worker/src/parts/KeyBindingsInitial/KeyBindingsInitial.js +29 -0
  1614. package/static/1914fad/packages/renderer-worker/src/parts/Languages/Languages.js +79 -0
  1615. package/static/1914fad/packages/renderer-worker/src/parts/Layout/Layout.ipc.js +18 -0
  1616. package/static/1914fad/packages/renderer-worker/src/parts/Layout/Layout.js +412 -0
  1617. package/static/1914fad/packages/renderer-worker/src/parts/LifeCycle/LifeCycle.js +44 -0
  1618. package/static/1914fad/packages/renderer-worker/src/parts/List/List.js +12 -0
  1619. package/static/1914fad/packages/renderer-worker/src/parts/Listener/Listener.ipc.js +7 -0
  1620. package/static/1914fad/packages/renderer-worker/src/parts/Listener/Listener.js +24 -0
  1621. package/static/1914fad/packages/renderer-worker/src/parts/LocalStorage/LocalStorage.ipc.js +12 -0
  1622. package/static/1914fad/packages/renderer-worker/src/parts/LocalStorage/LocalStorage.js +39 -0
  1623. package/static/1914fad/packages/renderer-worker/src/parts/Location/Location.js +16 -0
  1624. package/static/1914fad/packages/renderer-worker/src/parts/Main/Main.js +0 -0
  1625. package/static/1914fad/packages/renderer-worker/src/parts/Main/MainCloseActiveEditor.js +0 -0
  1626. package/static/1914fad/packages/renderer-worker/src/parts/Main/MainCloseAllEditors.js +0 -0
  1627. package/static/1914fad/packages/renderer-worker/src/parts/Main/MainCloseEditorsToTheLeft.js +0 -0
  1628. package/static/1914fad/packages/renderer-worker/src/parts/Main/MainCloseEditorsToTheRight.js +0 -0
  1629. package/static/1914fad/packages/renderer-worker/src/parts/Main/MainFocusFirst.js +0 -0
  1630. package/static/1914fad/packages/renderer-worker/src/parts/Main/MainFocusIndex.js +0 -0
  1631. package/static/1914fad/packages/renderer-worker/src/parts/Main/MainFocusLast.js +0 -0
  1632. package/static/1914fad/packages/renderer-worker/src/parts/Main/MainFocusNext.js +0 -0
  1633. package/static/1914fad/packages/renderer-worker/src/parts/Main/MainFocusPrevious.js +0 -0
  1634. package/static/1914fad/packages/renderer-worker/src/parts/Mediator/Mediator.js +4 -0
  1635. package/static/1914fad/packages/renderer-worker/src/parts/Menu/Menu.ipc.js +14 -0
  1636. package/static/1914fad/packages/renderer-worker/src/parts/Menu/Menu.js +343 -0
  1637. package/static/1914fad/packages/renderer-worker/src/parts/MenuCore/MenuCore.js +47 -0
  1638. package/static/1914fad/packages/renderer-worker/src/parts/MenuEntries/MenuEntries.js +45 -0
  1639. package/static/1914fad/packages/renderer-worker/src/parts/MenuEntries/MenuEntriesActivityBar.js +34 -0
  1640. package/static/1914fad/packages/renderer-worker/src/parts/MenuEntries/MenuEntriesActivityBarAdditionalViews.js +17 -0
  1641. package/static/1914fad/packages/renderer-worker/src/parts/MenuEntries/MenuEntriesEdit.js +58 -0
  1642. package/static/1914fad/packages/renderer-worker/src/parts/MenuEntries/MenuEntriesEditor.js +42 -0
  1643. package/static/1914fad/packages/renderer-worker/src/parts/MenuEntries/MenuEntriesExplorer.js +110 -0
  1644. package/static/1914fad/packages/renderer-worker/src/parts/MenuEntries/MenuEntriesExplorerFile.js +3 -0
  1645. package/static/1914fad/packages/renderer-worker/src/parts/MenuEntries/MenuEntriesExplorerFolder.js +3 -0
  1646. package/static/1914fad/packages/renderer-worker/src/parts/MenuEntries/MenuEntriesFile.js +52 -0
  1647. package/static/1914fad/packages/renderer-worker/src/parts/MenuEntries/MenuEntriesGo.js +3 -0
  1648. package/static/1914fad/packages/renderer-worker/src/parts/MenuEntries/MenuEntriesHelp.js +16 -0
  1649. package/static/1914fad/packages/renderer-worker/src/parts/MenuEntries/MenuEntriesManageExtension.js +28 -0
  1650. package/static/1914fad/packages/renderer-worker/src/parts/MenuEntries/MenuEntriesOpenRecent.js +48 -0
  1651. package/static/1914fad/packages/renderer-worker/src/parts/MenuEntries/MenuEntriesRun.js +3 -0
  1652. package/static/1914fad/packages/renderer-worker/src/parts/MenuEntries/MenuEntriesSelection.js +10 -0
  1653. package/static/1914fad/packages/renderer-worker/src/parts/MenuEntries/MenuEntriesSettings.js +28 -0
  1654. package/static/1914fad/packages/renderer-worker/src/parts/MenuEntries/MenuEntriesTab.js +29 -0
  1655. package/static/1914fad/packages/renderer-worker/src/parts/MenuEntries/MenuEntriesTerminal.js +3 -0
  1656. package/static/1914fad/packages/renderer-worker/src/parts/MenuEntries/MenuEntriesTitleBar.js +78 -0
  1657. package/static/1914fad/packages/renderer-worker/src/parts/MenuEntries/MenuEntriesView.js +3 -0
  1658. package/static/1914fad/packages/renderer-worker/src/parts/Navigation/Navigation.ipc.js +13 -0
  1659. package/static/1914fad/packages/renderer-worker/src/parts/Navigation/Navigation.js +148 -0
  1660. package/static/1914fad/packages/renderer-worker/src/parts/NestedError/NestedError.js +18 -0
  1661. package/static/1914fad/packages/renderer-worker/src/parts/Notification/Notification.ipc.js +9 -0
  1662. package/static/1914fad/packages/renderer-worker/src/parts/Notification/Notification.js +39 -0
  1663. package/static/1914fad/packages/renderer-worker/src/parts/Open/Open.ipc.js +6 -0
  1664. package/static/1914fad/packages/renderer-worker/src/parts/Open/Open.js +8 -0
  1665. package/static/1914fad/packages/renderer-worker/src/parts/Panel/Panel.ipc.js +9 -0
  1666. package/static/1914fad/packages/renderer-worker/src/parts/Performance/Performance.js +7 -0
  1667. package/static/1914fad/packages/renderer-worker/src/parts/Platform/Platform.js +183 -0
  1668. package/static/1914fad/packages/renderer-worker/src/parts/Position/Position.js +9 -0
  1669. package/static/1914fad/packages/renderer-worker/src/parts/Preferences/Preferences.ipc.js +11 -0
  1670. package/static/1914fad/packages/renderer-worker/src/parts/Preferences/Preferences.js +95 -0
  1671. package/static/1914fad/packages/renderer-worker/src/parts/QuickPick/QuickPick.ipc.js +22 -0
  1672. package/static/1914fad/packages/renderer-worker/src/parts/QuickPick/QuickPick.js +455 -0
  1673. package/static/1914fad/packages/renderer-worker/src/parts/QuickPick/QuickPickColorTheme.js +66 -0
  1674. package/static/1914fad/packages/renderer-worker/src/parts/QuickPick/QuickPickCommand.js +108 -0
  1675. package/static/1914fad/packages/renderer-worker/src/parts/QuickPick/QuickPickEverything.js +121 -0
  1676. package/static/1914fad/packages/renderer-worker/src/parts/QuickPick/QuickPickFile.js +80 -0
  1677. package/static/1914fad/packages/renderer-worker/src/parts/QuickPick/QuickPickGoToLine.js +59 -0
  1678. package/static/1914fad/packages/renderer-worker/src/parts/QuickPick/QuickPickNoop.js +27 -0
  1679. package/static/1914fad/packages/renderer-worker/src/parts/QuickPick/QuickPickNumber.js +57 -0
  1680. package/static/1914fad/packages/renderer-worker/src/parts/QuickPick/QuickPickOpenRecent.js +56 -0
  1681. package/static/1914fad/packages/renderer-worker/src/parts/QuickPick/QuickPickSymbol.js +30 -0
  1682. package/static/1914fad/packages/renderer-worker/src/parts/QuickPick/QuickPickView.js +31 -0
  1683. package/static/1914fad/packages/renderer-worker/src/parts/QuickPick/QuickPickWorkspaceSymbol.js +32 -0
  1684. package/static/1914fad/packages/renderer-worker/src/parts/RecentlyOpened/RecentlyOpened.ipc.js +9 -0
  1685. package/static/1914fad/packages/renderer-worker/src/parts/RecentlyOpened/RecentlyOpened.js +82 -0
  1686. package/static/1914fad/packages/renderer-worker/src/parts/RendererProcess/RendererProcess.js +108 -0
  1687. package/static/1914fad/packages/renderer-worker/src/parts/SaveState/SaveState.ipc.js +6 -0
  1688. package/static/1914fad/packages/renderer-worker/src/parts/SaveState/SaveState.js +39 -0
  1689. package/static/1914fad/packages/renderer-worker/src/parts/ServiceWorker/ServiceWorker.ipc.js +7 -0
  1690. package/static/1914fad/packages/renderer-worker/src/parts/ServiceWorker/ServiceWorker.js +37 -0
  1691. package/static/1914fad/packages/renderer-worker/src/parts/SessionStorage/SessionStorage.ipc.js +9 -0
  1692. package/static/1914fad/packages/renderer-worker/src/parts/SessionStorage/SessionStorage.js +30 -0
  1693. package/static/1914fad/packages/renderer-worker/src/parts/SharedProcess/SharedProcess.js +167 -0
  1694. package/static/1914fad/packages/renderer-worker/src/parts/SourceControl/SourceControl.ipc.js +6 -0
  1695. package/static/1914fad/packages/renderer-worker/src/parts/SourceControl/SourceControl.js +38 -0
  1696. package/static/1914fad/packages/renderer-worker/src/parts/Storage/Storage.js +27 -0
  1697. package/static/1914fad/packages/renderer-worker/src/parts/SyntaxHighlightingWorker/SyntaxHighlightingWorker.js +33 -0
  1698. package/static/1914fad/packages/renderer-worker/src/parts/TextDocument/TextDocument.js +190 -0
  1699. package/static/1914fad/packages/renderer-worker/src/parts/TextSegmenter/TextSegmenter.js +37 -0
  1700. package/static/1914fad/packages/renderer-worker/src/parts/Timers/Timers.js +25 -0
  1701. package/static/1914fad/packages/renderer-worker/src/parts/TitleBarMenuBar/TitleBarMenuBar.ipc.js +22 -0
  1702. package/static/1914fad/packages/renderer-worker/src/parts/TitleBarMenuBar/TitleBarMenuBar.js +245 -0
  1703. package/static/1914fad/packages/renderer-worker/src/parts/Tokenizer/TokenizePlainText.js +33 -0
  1704. package/static/1914fad/packages/renderer-worker/src/parts/Tokenizer/Tokenizer.js +70 -0
  1705. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/Viewlet.ipc.js +6 -0
  1706. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/Viewlet.js +185 -0
  1707. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletActivityBar.ipc.js +20 -0
  1708. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletActivityBar.js +399 -0
  1709. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletClock.js +36 -0
  1710. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletContextMenu.js +70 -0
  1711. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletCounter.js +44 -0
  1712. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletDebugConsole.js +20 -0
  1713. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletEditorCompletion.ipc.js +13 -0
  1714. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletEditorCompletion.js +222 -0
  1715. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletEditorImage.js +39 -0
  1716. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletEditorPlainText.js +43 -0
  1717. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletEditorText.js +164 -0
  1718. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletEmpty.js +18 -0
  1719. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletExplorer.ipc.js +37 -0
  1720. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletExplorer.js +1063 -0
  1721. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletExtension.js +7 -0
  1722. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletExtensions.ipc.js +25 -0
  1723. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletExtensions.js +773 -0
  1724. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletExtensionsHeader.js +103 -0
  1725. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletExtensionsList.js +559 -0
  1726. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletIframe.js +40 -0
  1727. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletImplementations.js +39 -0
  1728. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletList.ipc.js +0 -0
  1729. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletList.js +299 -0
  1730. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletLocations.ipc.js +13 -0
  1731. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletLocations.js +238 -0
  1732. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletMain.ipc.js +23 -0
  1733. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletMain.js +531 -0
  1734. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletNoop.js +19 -0
  1735. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletOutput.js +111 -0
  1736. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletPanel.js +90 -0
  1737. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletProblems.js +55 -0
  1738. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletQuickPick.js +401 -0
  1739. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletReferences.js +38 -0
  1740. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletRunAndDebug.js +32 -0
  1741. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletSearch.ipc.js +8 -0
  1742. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletSearch.js +162 -0
  1743. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletSideBar.ipc.js +8 -0
  1744. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletSideBar.js +160 -0
  1745. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletSourceControl.ipc.js +7 -0
  1746. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletSourceControl.js +109 -0
  1747. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletStatusBar.ipc.js +7 -0
  1748. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletStatusBar.js +143 -0
  1749. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletTerminal.ipc.js +8 -0
  1750. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletTerminal.js +82 -0
  1751. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletTitleBar.js +49 -0
  1752. package/static/1914fad/packages/renderer-worker/src/parts/Viewlet/ViewletTodoList.js +29 -0
  1753. package/static/1914fad/packages/renderer-worker/src/parts/ViewletManager/ViewletManager.js +237 -0
  1754. package/static/1914fad/packages/renderer-worker/src/parts/ViewletStates/ViewletStates.js +6 -0
  1755. package/static/1914fad/packages/renderer-worker/src/parts/WebSocket/WebSocket.js +28 -0
  1756. package/static/1914fad/packages/renderer-worker/src/parts/Window/Window.ipc.js +13 -0
  1757. package/static/1914fad/packages/renderer-worker/src/parts/Window/Window.js +61 -0
  1758. package/static/1914fad/packages/renderer-worker/src/parts/Workbench/Workbench.ipc.js +6 -0
  1759. package/static/1914fad/packages/renderer-worker/src/parts/Workbench/Workbench.js +184 -0
  1760. package/static/1914fad/packages/renderer-worker/src/parts/Worker/Worker.js +34 -0
  1761. package/static/1914fad/packages/renderer-worker/src/parts/Workspace/Workspace.ipc.js +8 -0
  1762. package/static/1914fad/packages/renderer-worker/src/parts/Workspace/Workspace.js +172 -0
  1763. package/static/1914fad/packages/renderer-worker/src/rendererWorkerMain.js +7 -0
  1764. package/static/1914fad/sounds/bell.oga +0 -0
  1765. package/static/1914fad/static/js/blob-util.js +143 -0
  1766. package/static/1914fad/static/js/js-base64.js +296 -0
  1767. package/static/1914fad/static/js/ky.js +345 -0
  1768. package/static/1914fad/static/js/p-min-delay.js +9 -0
  1769. package/static/1914fad/static/js/pretty-bytes.js +88 -0
  1770. package/static/1914fad/static/js/termterm.js +1511 -0
  1771. package/static/1914fad/static/js/yoctodelay.js +2 -0
  1772. package/static/favicon.ico +0 -0
  1773. package/static/images/screenshot.png +0 -0
  1774. package/static/index.html +125 -0
  1775. package/static/manifest.json +34 -0
  1776. package/static/serviceWorker.js +97 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rendererWorkerMain.js","sources":["../src/parts/Command/Command.js","../src/parts/Callback/Callback.js","../src/parts/WebSocket/WebSocket.js","../src/parts/JsonRpc/JsonRpc.js","../src/parts/SharedProcess/SharedProcess.js","../src/parts/Platform/Platform.js","../src/parts/FileSystem/FileSystemDisk.js","../src/parts/GlobalEventBus/GlobalEventBus.js","../src/parts/RendererProcess/RendererProcess.js","../src/parts/Location/Location.js","../src/parts/Window/Window.js","../src/parts/Workspace/Workspace.js","../src/parts/Assert/Assert.js","../src/parts/FileSystem/FileSystemApp.js","../src/parts/GitHubRestApi/GitHubRestApi.js","../src/parts/FileSystem/FileSystemGitHub.js","../src/parts/ExtensionHost/ExtensionHostCore.js","../src/parts/ExtensionMeta/ExtensionMeta.js","../src/parts/ExtensionHost/ExtensionHostLanguages.js","../src/parts/Languages/Languages.js","../src/parts/ExtensionHost/ExtensionHostManagement.js","../src/parts/ExtensionHost/ExtensionHostFileSystem.js","../src/parts/FileSystem/FileSystemWeb.js","../src/parts/FileSystem/FileSystemData.js","../src/parts/FileSystem/FileSystem.js","../src/parts/Json/Json.js","../src/parts/Preferences/Preferences.js","../src/parts/ColorTheme/ColorTheme.js","../src/parts/IconTheme/IconTheme.js","../src/parts/ErrorHandling/ErrorHandling.js","../src/parts/KeyBindings/KeyBindings.js","../src/parts/Viewlet/Viewlet.js","../src/parts/ViewletManager/ViewletManager.js","../src/parts/Layout/Layout.js","../src/parts/LifeCycle/LifeCycle.js","../src/parts/Performance/Performance.js","../src/parts/SaveState/SaveState.js","../src/parts/ServiceWorker/ServiceWorker.js","../src/parts/RecentlyOpened/RecentlyOpened.js","../src/parts/Workbench/Workbench.js","../src/rendererWorkerMain.js","../src/parts/Notification/Notification.js","../src/parts/Notification/Notification.ipc.js","../src/parts/Viewlet/ViewletActivityBar.js","../src/parts/Viewlet/ViewletActivityBar.ipc.js","../src/parts/Window/Window.ipc.js","../src/parts/Viewlet/ViewletMain.js","../src/parts/Viewlet/ViewletMain.ipc.js","../src/parts/MenuEntries/MenuEntries.js","../src/parts/Menu/Menu.js","../src/parts/ContextMenu/ContextMenu.js","../src/parts/ContextMenu/ContextMenu.ipc.js","../src/parts/Layout/Layout.ipc.js","../src/parts/Viewlet/Viewlet.ipc.js","../src/parts/Workbench/Workbench.ipc.js","../src/parts/FuzzySearch/FuzzySearchMrAleph.js","../src/parts/QuickPick/QuickPickNoop.js","../src/parts/QuickPick/QuickPick.js","../src/parts/QuickPick/QuickPick.ipc.js","../src/parts/Viewlet/ViewletPanel.js","../src/parts/Panel/Panel.ipc.js","../src/parts/Id/Id.js","../src/parts/FindWidget/FindWidget.js","../src/parts/FindWidget/FindWidget.ipc.js","../src/parts/Preferences/Preferences.ipc.js","../../../static/js/pretty-bytes.js","../src/parts/Developer/Developer.js","../src/parts/Developer/Developer.ipc.js","../src/parts/EditorCommand/EditorCommandBlur.js","../src/parts/Arrays/Arrays.js","../src/parts/TextDocument/TextDocument.js","../src/parts/Tokenizer/TokenizePlainText.js","../src/parts/Tokenizer/Tokenizer.js","../src/parts/Editor/EditorCursor.js","../src/parts/Editor/EditorScrolling.js","../src/parts/Editor/EditorSelection.js","../src/parts/Editor/EditorText.js","../src/parts/Editor/Editor.js","../src/parts/EditorCommand/EditorCommandCancelSelection.js","../src/parts/EditorCommand/EditorCommandPosition.js","../src/parts/EditorCommand/EditorCommandCompletion.js","../src/parts/EditorCommand/EditorCommandComposition.js","../src/parts/EditorCommand/EditorCommandCopy.js","../src/parts/EditorCommand/EditorCommandCopyLineDown.js","../src/parts/EditorCommand/EditorCommandCopyLineUp.js","../src/parts/EditorCommand/EditorCommandGetPositionLeft.js","../src/parts/EditorCommand/EditorCommandCursorHorizontalLeft.js","../src/parts/TextSegmenter/TextSegmenter.js","../src/parts/EditorCommand/EditorCommandDelta.js","../src/parts/EditorCommand/EditorCommandCursorCharacterLeft.js","../src/parts/EditorCommand/EditorCommandGetPositionRight.js","../src/parts/EditorCommand/EditorCommandCursorHorizontalRight.js","../src/parts/EditorCommand/EditorCommandCursorCharacterRight.js","../src/parts/EditorCommand/EditorCommandCursorVertical.js","../src/parts/EditorCommand/EditorCommandCursorDown.js","../src/parts/EditorCommand/EditorCommandCursorEnd.js","../src/parts/EditorCommand/EditorCommandCursorHome.js","../src/parts/EditorCommand/EditorCommandCursorSet.js","../src/parts/EditorCommand/EditorCommandCursorUp.js","../src/parts/EditorCommand/EditorCommandCursorWordLeft.js","../src/parts/EditorCommand/EditorCommandCursorWordPartLeft.js","../src/parts/EditorCommand/EditorCommandCursorWordPartRight.js","../src/parts/EditorCommand/EditorCommandCursorWordRight.js","../src/parts/EditorCommand/EditorCommandReplaceSelection.js","../src/parts/EditorCommand/EditorCommandCut.js","../src/parts/EditorCommand/EditorCommandDeleteHorizontalLeft.js","../src/parts/EditorCommand/EditorCommandDeleteAllLeft.js","../src/parts/EditorCommand/EditorCommandDeleteHorizontalRight.js","../src/parts/EditorCommand/EditorCommandDeleteAllRight.js","../src/parts/EditorCommand/EditorCommandDeleteCharacterLeft.js","../src/parts/EditorCommand/EditorCommandDeleteCharacterRight.js","../src/parts/EditorCommand/EditorCommandDeleteWordLeft.js","../src/parts/EditorCommand/EditorCommandDeleteWordPartLeft.js","../src/parts/EditorCommand/EditorCommandDeleteWordPartRight.js","../src/parts/EditorCommand/EditorCommandDeleteWordRight.js","../src/parts/EditorCommand/EditorCommandFormat.js","../src/parts/ExtensionHost/ExtensionHostDefinition.js","../src/parts/EditorCommand/EditorCommandShowMessage.js","../src/parts/EditorCommand/EditorCommandGoToDefinition.js","../src/parts/EditorCommand/EditorCommandHandleContextMenu.js","../src/parts/EditorCommand/EditorCommandSelectWord.js","../src/parts/EditorCommand/EditorCommandHandleDoubleClick.js","../src/parts/EditorCommand/EditorCommandHandleMouseMove.js","../src/parts/EditorCommand/EditorCommandGetSelectionFromNativeRange.js","../src/parts/EditorCommand/EditorCommandHandleNativeBeforeInputFromContentEditable.js","../src/parts/EditorCommand/EditorCommandHandleNativeSelectionChange.js","../src/parts/EditorCommand/EditorCommandHandleScrollBarClick.js","../src/parts/EditorCommand/EditorCommandHandleScrollBarMove.js","../src/parts/EditorCommand/EditorCommandMoveSelection.js","../src/parts/EditorCommand/EditorCommandHandleSingleClick.js","../src/parts/ExtensionHost/ExtensionHostTabCompletion.js","../src/parts/EditorCommand/EditorCommandSnippet.js","../src/parts/EditorCommand/EditorCommandTabCompletion.js","../src/parts/ExtensionHost/ExtensionHostBraceCompletion.js","../src/parts/ExtensionHost/ExtensionHostClosingTagCompletion.js","../src/parts/EditorCommand/EditorCommandType.js","../src/parts/EditorCommand/EditorCommandIndentMore.js","../src/parts/EditorCommand/EditorCommandHandleTab.js","../src/parts/EditorCommand/EditorCommandHandleTouchStart.js","../src/parts/EditorCommand/EditorCommandHandleTouchEnd.js","../src/parts/EditorCommand/EditorCommandSetDeltaY.js","../src/parts/EditorCommand/EditorCommandHandleTouchMove.js","../src/parts/EditorCommand/EditorCommandSelectLine.js","../src/parts/EditorCommand/EditorCommandHandleTripleClick.js","../src/parts/EditorCommand/EditorCommandIndentLess.js","../src/parts/EditorCommand/EditorCommandInsertLineBreak.js","../src/parts/EditorCommand/EditorCommandMoveLineDown.js","../src/parts/EditorCommand/EditorCommandMoveLineUp.js","../src/parts/EditorCommand/EditorCommandMoveRectangleSelection.js","../src/parts/EditorCommand/EditorCommandMoveRectangleSelectionPx.js","../src/parts/EditorCommand/EditorCommandMoveSelectionPx.js","../src/parts/EditorCommand/EditorCommandPasteText.js","../src/parts/EditorCommand/EditorCommandPaste.js","../src/parts/EditorCommand/EditorCommandSave.js","../src/parts/EditorCommand/EditorCommandSelectAll.js","../src/parts/EditorCommand/EditorCommandSelectAllOccurrences.js","../src/parts/EditorCommand/EditorCommandSelectHorizontalLeft.js","../src/parts/EditorCommand/EditorCommandSelectCharacterLeft.js","../src/parts/EditorCommand/EditorCommandSelectHorizontalRight.js","../src/parts/EditorCommand/EditorCommandSelectCharacterRight.js","../src/parts/EditorCommand/EditorCommandSelectInsideString.js","../src/parts/EditorCommand/EditorCommandSelectNextOccurrence.js","../src/parts/EditorCommand/EditorCommandSelectWordLeft.js","../src/parts/EditorCommand/EditorCommandSelectWordRight.js","../src/parts/EditorCommand/EditorCommandToggleBlockComment.js","../src/parts/EditorCommand/EditorCommandToggleLineComment.js","../src/parts/EditorCommand/EditorCommandToggleComment.js","../src/parts/EditorCommand/EditorCommandUndo.js","../src/parts/EditorCommand/EditorCommandUnindent.js","../src/parts/EditorCommand/EditorCommandSetLanguageId.js","../src/parts/EditorCommand/EditorCommandHandleMouseMoveWithAltKey.js","../src/parts/ExtensionHost/ExtensionHostTypeDefinition.js","../src/parts/EditorCommand/EditorCommandGoToTypeDefinition.js","../src/parts/EditorCommand/EditorCommandApplyEdit.js","../src/parts/EditorCommand/EditorCommandSetDecorations.js","../src/parts/EditorCommand/EditorCommand.ipc.js","../src/parts/KeyBindings/KeyBindings.ipc.js","../src/parts/Open/Open.js","../src/parts/Extensions/Extensions.js","../src/parts/Extensions/Extensions.ipc.js","../src/parts/Viewlet/ViewletExplorer.js","../src/parts/Viewlet/ViewletExplorer.ipc.js","../src/parts/SourceControl/SourceControl.js","../src/parts/SourceControl/SourceControl.ipc.js","../src/parts/Viewlet/ViewletTerminal.js","../src/parts/Viewlet/ViewletTerminal.ipc.js","../src/parts/ColorPicker/ColorPicker.js","../src/parts/ColorPicker/ColorPicker.ipc.js","../src/parts/ExtensionManagement/ExtensionManagement.js","../src/parts/ExtensionMarketplace/ExtensionMarketplace.js","../src/parts/Viewlet/ViewletExtensions.js","../src/parts/Viewlet/ViewletExtensions.ipc.js","../src/parts/ClipBoard/ClipBoard.js","../src/parts/ClipBoard/ClipBoard.ipc.js","../../../static/js/ky.js","../src/parts/Ajax/Ajax.js","../src/parts/Ajax/Ajax.ipc.js","../src/parts/Format/Format.js","../src/parts/Format/Format.ipc.js","../src/parts/ColorTheme/ColorTheme.ipc.js","../src/parts/IconTheme/IconTheme.ipc.js","../src/parts/Menu/Menu.ipc.js","../src/parts/TitleBarMenuBar/TitleBarMenuBar.js","../src/parts/TitleBarMenuBar/TitleBarMenuBar.ipc.js","../src/parts/ErrorHandling/ErrorHandling.ipc.js","../src/parts/Navigation/Navigation.js","../src/parts/Navigation/Navigation.ipc.js","../src/parts/CacheStorage/CacheStorage.js","../src/parts/CacheStorage/CacheStorage.ipc.js","../src/parts/LocalStorage/LocalStorage.js","../src/parts/LocalStorage/LocalStorage.ipc.js","../src/parts/SessionStorage/SessionStorage.js","../src/parts/SessionStorage/SessionStorage.ipc.js","../src/parts/Callback/Callback.ipc.js","../src/parts/CommandInfo/CommandInfo.js","../src/parts/CommandInfo/CommandInfo.ipc.js","../src/parts/Dialog/Dialog.js","../src/parts/Dialog/Dialog.ipc.js","../src/parts/Workspace/Workspace.ipc.js","../src/parts/ColorThemeFromJson/ColorThemeFromJson.js","../src/parts/ColorThemeFromJson/ColorThemeFromJson.ipc.js","../src/parts/RecentlyOpened/RecentlyOpened.ipc.js","../src/parts/FileSystem/FileSystem.ipc.js","../src/parts/FindInWorkspace/FindInWorkspace.js","../src/parts/FindInWorkspace/FindInWorkspace.ipc.js","../src/parts/ExtensionHost/ExtensionHostDiagnostic.js","../src/parts/EditorDiagnostics/EditorDiagnostics.js","../src/parts/EditorDiagnostics/EditorDiagnostics.ipc.js","../src/parts/ExtensionHost/ExtensionHostRename.js","../src/parts/EditorRename/EditorRename.js","../src/parts/EditorRename/EditorRename.ipc.js","../src/parts/EditorError/EditorError.js","../src/parts/EditorError/EditorError.ipc.js","../src/parts/KeyBindingsInitial/KeyBindingsInitial.js","../src/parts/KeyBindingsInitial/KeyBindingsInitial.ipc.js","../src/parts/SaveState/SaveState.ipc.js","../src/parts/ExtensionHost/ExtensionHostSourceControl.js","../src/parts/Viewlet/ViewletSourceControl.js","../src/parts/Viewlet/ViewletSourceControl.ipc.js","../src/parts/ServiceWorker/ServiceWorker.ipc.js","../src/parts/ImagePreview/ImagePreview.js","../src/parts/ImagePreview/ImagePreview.ipc.js","../../../static/js/js-base64.js","../src/parts/Base64/Base64.js","../src/parts/Base64/Base64.ipc.js","../../../static/js/blob-util.js","../src/parts/Blob/Blob.js","../src/parts/Blob/Blob.ipc.js","../src/parts/Open/Open.ipc.js","../src/parts/Audio/Audio.js","../src/parts/Audio/Audio.ipc.js","../src/parts/Viewlet/ViewletSideBar.js","../src/parts/Viewlet/ViewletSideBar.ipc.js","../src/parts/Listener/Listener.js","../src/parts/ExtensionHost/ExtensionHostStatusBarItems.js","../src/parts/Viewlet/ViewletStatusBar.js","../src/parts/Viewlet/ViewletStatusBar.ipc.js","../src/parts/Listener/Listener.ipc.js","../src/parts/Viewlet/ViewletSearch.js","../src/parts/Viewlet/ViewletSearch.ipc.js","../src/parts/ExtensionHost/ExtensionHostCompletion.js","../src/parts/Viewlet/ViewletEditorCompletion.js","../src/parts/Viewlet/ViewletEditorCompletion.ipc.js","../src/parts/Viewlet/ViewletLocations.js","../src/parts/Viewlet/ViewletLocations.ipc.js","../src/parts/Viewlet/ViewletRunAndDebug.js","../src/parts/Viewlet/ViewletDebugConsole.js","../src/parts/ExtensionHost/ExtensionHostOutput.js","../src/parts/Viewlet/ViewletOutput.js","../src/parts/Viewlet/ViewletProblems.js","../src/parts/Viewlet/ViewletNoop.js","../src/parts/ExtensionHost/ExtensionHostSemanticTokens.js","../src/parts/ExtensionHost/ExtensionHostTextDocument.js","../src/parts/Viewlet/ViewletEditorText.js","../src/parts/Viewlet/ViewletEditorPlainText.js","../src/parts/Viewlet/ViewletEditorImage.js","../src/parts/Viewlet/ViewletClock.js","../src/parts/Viewlet/ViewletTitleBar.js","../src/parts/ExtensionHost/ExtensionHostReference.js","../src/parts/Viewlet/ViewletReferences.js","../src/parts/ExtensionHost/ExtensionHostImplementation.js","../src/parts/Viewlet/ViewletImplementations.js","../src/parts/MenuEntries/MenuEntriesActivityBar.js","../src/parts/MenuEntries/MenuEntriesEdit.js","../src/parts/MenuEntries/MenuEntriesEditor.js","../src/parts/MenuEntries/MenuEntriesExplorer.js","../src/parts/MenuEntries/MenuEntriesFile.js","../src/parts/MenuEntries/MenuEntriesGo.js","../src/parts/MenuEntries/MenuEntriesHelp.js","../src/parts/MenuEntries/MenuEntriesManageExtension.js","../src/parts/MenuEntries/MenuEntriesOpenRecent.js","../src/parts/MenuEntries/MenuEntriesRun.js","../src/parts/MenuEntries/MenuEntriesSelection.js","../src/parts/MenuEntries/MenuEntriesSettings.js","../src/parts/MenuEntries/MenuEntriesTab.js","../src/parts/MenuEntries/MenuEntriesTerminal.js","../src/parts/MenuEntries/MenuEntriesTitleBar.js","../src/parts/MenuEntries/MenuEntriesView.js","../src/parts/MenuEntries/MenuEntriesActivityBarAdditionalViews.js","../src/parts/QuickPick/QuickPickEverything.js","../src/parts/QuickPick/QuickPickColorTheme.js","../src/parts/QuickPick/QuickPickOpenRecent.js","../src/parts/ExtensionHost/ExtensionHostCommands.js","../src/parts/QuickPick/QuickPickCommand.js","../src/parts/QuickPick/QuickPickSymbol.js","../src/parts/QuickPick/QuickPickWorkspaceSymbol.js","../src/parts/QuickPick/QuickPickGoToLine.js","../src/parts/QuickPick/QuickPickView.js","../src/parts/QuickPick/QuickPickFile.js"],"sourcesContent":["const MODULE_NOTIFICATION = 2\nconst MODULE_ACTIVITY_BAR = 11\nconst MODULE_WINDOW = 14\nconst MODULE_MAIN = 15\nconst MODULE_CONTEXT_MENU = 16\nconst MODULE_LAYOUT = 17\nconst MODULE_VIEWLET = 18\nconst MODULE_WORKBENCH = 19\nconst MODULE_VIEWLET_TERMINAL = 20\nconst MODULE_QUICK_PICK = 21\nconst MODULE_PANEL = 22\n// TODO rename to widgetFind and group together with other widgets (contextMenu, hover, tooltip)\nconst MODULE_FIND_WIDGET = 23\nconst MODULE_PREFERENCES = 25\nconst MODULE_DEVELOPER = 26\nconst MODULE_EDITOR_COMMAND = 27\nconst MODULE_EDITOR_COMPLETION = 28\nconst MODULE_KEY_BINDINGS = 29\nconst MODULE_EXTENSIONS = 30\nconst MODULE_VIEWLET_EXPLORER = 31\nconst MODULE_SOURCE_CONTROL = 32\nconst MODULE_COLOR_PICKER = 33\nconst MODULE_VIEWLET_EXTENSIONS = 34\nconst MODULE_TITLE_BAR = 35\nconst MODULE_CLIP_BOARD = 36\nconst MODULE_AJAX = 37\nconst MODULE_VIEWLET_SIDE_BAR = 38\nconst MODULE_STATUS_BAR = 39\nconst MODULE_FORMAT = 40\nconst MODULE_COLOR_THEME = 41\nconst MODULE_ICON_THEME = 42\nconst MODULE_MENU = 43\nconst MODULE_TITLE_BAR_MENU = 44\nconst MODULE_ERROR_HANDLING = 45\nconst MODULE_NAVIGATION = 46\nconst MODULE_CACHE_STORAGE = 47\nconst MODULE_LOCAL_STORAGE = 48\nconst MODULE_SESSION_STORAGE = 49\nconst MODULE_CALLBACK = 50\nconst MODULE_DIALOG = 51\nconst MODULE_COMMAND_INFO = 52\nconst MODULE_WORKSPACE = 53\nconst MODULE_COLOR_THEME_FROM_JSON = 54\nconst MODULE_RECENTLY_OPENED = 55\nconst MODULE_FILE_SYSTEM = 56\nconst MODULE_FIND_IN_WORKSPACE = 57\nconst MODULE_EDITOR_DIAGNOSTICS = 58\nconst MODULE_EDITOR_RENAME = 60\nconst MODULE_EDITOR_ERROR = 62\nconst MODULE_KEY_BINDINGS_INITIAL = 63\nconst MODULE_SAVE_STATE = 64\nconst MODULE_VIEWLET_SOURCE_CONTROL = 65\nconst MODULE_SERVICE_WORKER = 66\nconst MODULE_IMAGE_PREVIEW = 67\nconst MODULE_BASE_64 = 68\nconst MODULE_BLOB = 69\nconst MODULE_OPEN = 70\nconst MODULE_AUDIO = 71\nconst MODULE_VIEWLET_STATUS_BAR = 72\nconst MODULE_LISTENER = 73\nconst MODULE_VIEWLET_SEARCH = 74\nconst MODULE_VIEWLET_EDITOR_COMPLETION = 75\nconst MODULE_VIEWLET_Locations = 76\n\nexport const state = {\n commands: Object.create(null),\n pendingModules: Object.create(null),\n}\n\nconst loadModule = (moduleId) => {\n switch (moduleId) {\n case MODULE_NOTIFICATION:\n return import('../Notification/Notification.ipc.js')\n case MODULE_ACTIVITY_BAR:\n return import('../Viewlet/ViewletActivityBar.ipc.js')\n case MODULE_WINDOW:\n return import('../Window/Window.ipc.js')\n case MODULE_MAIN:\n return import('../Viewlet/ViewletMain.ipc.js')\n case MODULE_CONTEXT_MENU:\n return import('../ContextMenu/ContextMenu.ipc.js')\n case MODULE_LAYOUT:\n return import('../Layout/Layout.ipc.js')\n case MODULE_VIEWLET:\n return import('../Viewlet/Viewlet.ipc.js')\n case MODULE_WORKBENCH:\n return import('../Workbench/Workbench.ipc.js')\n case MODULE_QUICK_PICK:\n return import('../QuickPick/QuickPick.ipc.js')\n case MODULE_PANEL:\n return import('../Panel/Panel.ipc.js')\n case MODULE_FIND_WIDGET:\n return import('../FindWidget/FindWidget.ipc.js')\n case MODULE_PREFERENCES:\n return import('../Preferences/Preferences.ipc.js')\n case MODULE_DEVELOPER:\n return import('../Developer/Developer.ipc.js')\n case MODULE_EDITOR_COMMAND:\n return import('../EditorCommand/EditorCommand.ipc.js')\n case MODULE_KEY_BINDINGS:\n return import('../KeyBindings/KeyBindings.ipc.js')\n case MODULE_EXTENSIONS:\n return import('../Extensions/Extensions.ipc.js')\n case MODULE_VIEWLET_EXPLORER:\n return import('../Viewlet/ViewletExplorer.ipc.js')\n case MODULE_SOURCE_CONTROL:\n return import('../SourceControl/SourceControl.ipc.js')\n case MODULE_VIEWLET_TERMINAL:\n return import('../Viewlet/ViewletTerminal.ipc.js')\n case MODULE_COLOR_PICKER:\n return import('../ColorPicker/ColorPicker.ipc.js')\n case MODULE_VIEWLET_EXTENSIONS:\n return import('../Viewlet/ViewletExtensions.ipc.js')\n case MODULE_CLIP_BOARD:\n return import('../ClipBoard/ClipBoard.ipc.js')\n case MODULE_AJAX:\n return import('../Ajax/Ajax.ipc.js')\n case MODULE_FORMAT:\n return import('../Format/Format.ipc.js')\n case MODULE_COLOR_THEME:\n return import('../ColorTheme/ColorTheme.ipc.js')\n case MODULE_ICON_THEME:\n return import('../IconTheme/IconTheme.ipc.js')\n case MODULE_MENU:\n return import('../Menu/Menu.ipc.js')\n case MODULE_TITLE_BAR_MENU:\n return import('../TitleBarMenuBar/TitleBarMenuBar.ipc.js')\n case MODULE_ERROR_HANDLING:\n return import('../ErrorHandling/ErrorHandling.ipc.js')\n case MODULE_NAVIGATION:\n return import('../Navigation/Navigation.ipc.js')\n case MODULE_CACHE_STORAGE:\n return import('../CacheStorage/CacheStorage.ipc.js')\n case MODULE_LOCAL_STORAGE:\n return import('../LocalStorage/LocalStorage.ipc.js')\n case MODULE_SESSION_STORAGE:\n return import('../SessionStorage/SessionStorage.ipc.js')\n case MODULE_CALLBACK:\n return import('../Callback/Callback.ipc.js')\n case MODULE_COMMAND_INFO:\n return import('../CommandInfo/CommandInfo.ipc.js')\n case MODULE_DIALOG:\n return import('../Dialog/Dialog.ipc.js')\n case MODULE_WORKSPACE:\n return import('../Workspace/Workspace.ipc.js')\n case MODULE_COLOR_THEME_FROM_JSON:\n return import('../ColorThemeFromJson/ColorThemeFromJson.ipc.js')\n case MODULE_RECENTLY_OPENED:\n return import('../RecentlyOpened/RecentlyOpened.ipc.js')\n case MODULE_FILE_SYSTEM:\n return import('../FileSystem/FileSystem.ipc.js')\n case MODULE_FIND_IN_WORKSPACE:\n return import('../FindInWorkspace/FindInWorkspace.ipc.js')\n case MODULE_EDITOR_DIAGNOSTICS:\n return import('../EditorDiagnostics/EditorDiagnostics.ipc.js')\n case MODULE_EDITOR_RENAME:\n return import('../EditorRename/EditorRename.ipc.js')\n case MODULE_EDITOR_ERROR:\n return import('../EditorError/EditorError.ipc.js')\n case MODULE_KEY_BINDINGS_INITIAL:\n return import('../KeyBindingsInitial/KeyBindingsInitial.ipc.js')\n case MODULE_SAVE_STATE:\n return import('../SaveState/SaveState.ipc.js')\n case MODULE_VIEWLET_SOURCE_CONTROL:\n return import('../Viewlet/ViewletSourceControl.ipc.js')\n case MODULE_SERVICE_WORKER:\n return import('../ServiceWorker/ServiceWorker.ipc.js')\n case MODULE_IMAGE_PREVIEW:\n return import('../ImagePreview/ImagePreview.ipc.js')\n case MODULE_BASE_64:\n return import('../Base64/Base64.ipc.js')\n case MODULE_BLOB:\n return import('../Blob/Blob.ipc.js')\n case MODULE_OPEN:\n return import('../Open/Open.ipc.js')\n case MODULE_AUDIO:\n return import('../Audio/Audio.ipc.js')\n case MODULE_VIEWLET_SIDE_BAR:\n return import('../Viewlet/ViewletSideBar.ipc.js')\n case MODULE_VIEWLET_STATUS_BAR:\n return import('../Viewlet/ViewletStatusBar.ipc.js')\n case MODULE_LISTENER:\n return import('../Listener/Listener.ipc.js')\n case MODULE_VIEWLET_SEARCH:\n return import('../Viewlet/ViewletSearch.ipc.js')\n case MODULE_VIEWLET_EDITOR_COMPLETION:\n return import('../Viewlet/ViewletEditorCompletion.ipc.js')\n case MODULE_VIEWLET_Locations:\n return import('../Viewlet/ViewletLocations.ipc.js')\n default:\n throw new Error(`unknown module \"${moduleId}\"`)\n }\n}\n\nconst initializeModule = (module) => {\n return module.__initialize__()\n}\n\nconst getOrLoadModule = (moduleId) => {\n if (!state.pendingModules[moduleId]) {\n const importPromise = loadModule(moduleId)\n state.pendingModules[moduleId] = importPromise.then(initializeModule)\n }\n return state.pendingModules[moduleId]\n}\n\nconst getModuleId = (commandId) => {\n switch (commandId) {\n case 87:\n case 88:\n case 89:\n case 90:\n case 91:\n case 92:\n case 93:\n case 94:\n case 95:\n case 96:\n case 97:\n case 98:\n case 99:\n case 100:\n case 101:\n case 102:\n case 103:\n case 104:\n case 105:\n case 106:\n case 107:\n case 108:\n case 109:\n case 110:\n case 111:\n case 112:\n case 113:\n case 114:\n case 115:\n case 116:\n case 117:\n case 118:\n case 119:\n case 120:\n return MODULE_MAIN\n case 142:\n case 143:\n case 144:\n case 145:\n case 146:\n case 147:\n case 148:\n case 149:\n case 150:\n case 151:\n case 152:\n case 153:\n case 154:\n case 155:\n case 156:\n case 157:\n case 158:\n case 159:\n case 160:\n case 161:\n case 162:\n case 163:\n case 164:\n case 165:\n case 166:\n case 167:\n case 168:\n case 169:\n return MODULE_VIEWLET_EXPLORER\n case 232:\n return MODULE_COLOR_THEME_FROM_JSON\n case 240:\n case 241:\n case 242:\n case 243:\n case 244:\n case 245:\n case 246:\n case 247:\n case 248:\n return MODULE_CLIP_BOARD\n case 270:\n case 271:\n case 272:\n case 273:\n case 274:\n case 275:\n case 276:\n case 277:\n case 278:\n case 279:\n return MODULE_AJAX\n case 341:\n case 342:\n case 343:\n case 344:\n case 345:\n case 346:\n case 347:\n case 348:\n case 349:\n case 350:\n case 351:\n case 352:\n case 353:\n case 354:\n case 355:\n case 356:\n case 357:\n case 358:\n case 359:\n case 360:\n case 361:\n case 362:\n case 363:\n case 364:\n case 365:\n case 366:\n case 367:\n case 368:\n case 369:\n case 370:\n case 371:\n case 372:\n case 373:\n case 374:\n case 375:\n case 376:\n case 377:\n case 378:\n case 379:\n case 380:\n case 381:\n case 382:\n case 383:\n case 384:\n case 385:\n case 386:\n case 387:\n case 388:\n case 389:\n case 390:\n case 391:\n case 392:\n case 393:\n case 394:\n case 395:\n case 396:\n case 397:\n case 398:\n case 399:\n case 400:\n case 401:\n case 402:\n case 403:\n case 404:\n case 405:\n case 406:\n case 407:\n case 408:\n case 409:\n case 410:\n case 411:\n case 412:\n case 413:\n case 'ExtensionHost.start':\n case 415:\n case 416:\n case 417:\n case 'ExtensionHost.setWorkspaceRoot':\n case 419:\n case 420:\n case 421:\n case 422:\n case 423:\n case 424:\n case 425:\n case 426:\n return MODULE_EDITOR_COMMAND\n\n case 440:\n return MODULE_ERROR_HANDLING\n case 500:\n case 501:\n case 502:\n case 503:\n case 504:\n case 505:\n case 506:\n case 507:\n case 508:\n case 509:\n return MODULE_FILE_SYSTEM\n case 551:\n case 552:\n case 553:\n case 554:\n case 555:\n case 556:\n case 557:\n case 558:\n case 559:\n case 560:\n return MODULE_VIEWLET_SIDE_BAR\n case 600:\n case 601:\n case 602:\n case 603:\n case 604:\n case 605:\n return MODULE_STATUS_BAR\n case 711:\n case 712:\n case 713:\n return MODULE_PANEL\n case 820:\n case 821:\n case 822:\n case 823:\n case 824:\n case 825:\n case 826:\n case 827:\n case 828:\n case 829:\n case 830:\n case 831:\n case 832:\n case 833:\n case 834:\n case 835:\n case 836:\n case 837:\n case 838:\n case 839:\n return MODULE_DEVELOPER\n case 860:\n case 861:\n case 862:\n case 863:\n case 864:\n case 865:\n case 866:\n case 867:\n case 868:\n case 869:\n case 870:\n case 871:\n case 872:\n case 873:\n case 874:\n case 875:\n case 876:\n case 877:\n case 878:\n case 879:\n return MODULE_VIEWLET_EXTENSIONS\n case 900:\n case 901:\n case 902:\n case 903:\n case 904:\n case 905:\n case 906:\n case 907:\n case 908:\n return MODULE_NOTIFICATION\n case 950:\n case 951:\n case 952:\n case 953:\n case 954:\n case 955:\n case 956:\n case 957:\n case 958:\n case 959:\n case 960:\n case 961:\n case 962:\n case 963:\n case 964:\n return MODULE_CONTEXT_MENU\n case 982:\n case 983:\n case 984:\n case 985:\n case 986:\n case 987:\n return MODULE_VIEWLET_EDITOR_COMPLETION\n case 980:\n case 981:\n case 988:\n case 989:\n case 990:\n case 991:\n case 992:\n case 993:\n case 994:\n case 995:\n case 996:\n case 997:\n case 998:\n case 999:\n case 1000:\n case 1001:\n case 1002:\n case 1003:\n case 1004:\n case 1005:\n case 1006:\n case 1007:\n case 1008:\n case 1009:\n case 1010:\n case 1011:\n case 1012:\n case 1013:\n case 1014:\n case 1015:\n case 1016:\n case 1017:\n return MODULE_EDITOR_COMMAND\n case 1100:\n case 1101:\n case 1102:\n case 1103:\n case 1104:\n case 1105:\n case 1106:\n case 1107:\n case 1108:\n case 1109:\n case 1110:\n case 1111:\n case 1112:\n case 1113:\n case 1114:\n case 1115:\n case 1116:\n case 1117:\n case 1118:\n case 1119:\n return MODULE_LAYOUT\n case 1200:\n case 1201:\n case 1202:\n case 1203:\n case 1204:\n case 1205:\n case 1206:\n case 1207:\n case 1208:\n case 1209:\n case 1210:\n return MODULE_PREFERENCES\n case 1300:\n return MODULE_SOURCE_CONTROL\n case 1370:\n case 1371:\n case 1372:\n case 1373:\n return MODULE_OPEN\n case 1400:\n return MODULE_COLOR_PICKER\n case 1422:\n case 1423:\n return MODULE_KEY_BINDINGS\n case 1492:\n case 1493:\n case 1494:\n case 1495:\n case 1496:\n return MODULE_DIALOG\n case 1592:\n return MODULE_COMMAND_INFO\n case 2133:\n return MODULE_VIEWLET\n case 2260:\n return MODULE_VIEWLET_STATUS_BAR\n case 3030:\n case 3031:\n case 3032:\n case 3033:\n case 3034:\n case 3035:\n return MODULE_ICON_THEME\n case 3300:\n case 3301:\n case 3302:\n case 3303:\n case 3304:\n case 3305:\n case 3306:\n return MODULE_EDITOR_RENAME\n case 3380:\n return MODULE_FORMAT\n case 3444:\n return MODULE_LISTENER\n case 3900:\n return MODULE_EDITOR_ERROR\n case 4356:\n return MODULE_BLOB\n case 4444:\n case 4445:\n case 4446:\n case 4447:\n case 4448:\n return MODULE_AUDIO\n case 4510:\n case 4511:\n case 4512:\n case 4513:\n case 4514:\n case 4515:\n case 4516:\n case 4517:\n case 4518:\n case 4519:\n return MODULE_TITLE_BAR\n case 4610:\n case 4611:\n case 4612:\n case 4613:\n case 4614:\n case 4615:\n case 4616:\n case 4617:\n case 4618:\n case 4619:\n case 4620:\n case 4621:\n case 4622:\n case 4623:\n case 4624:\n case 4625:\n case 4627:\n case 4628:\n case 4629:\n return MODULE_TITLE_BAR_MENU\n case 4870:\n case 4871:\n return MODULE_VIEWLET_TERMINAL\n case 5200:\n case 5201:\n case 5202:\n case 5203:\n case 5204:\n case 5205:\n return MODULE_FIND_IN_WORKSPACE\n case 5430:\n case 5431:\n case 5432:\n case 5433:\n case 5434:\n case 5435:\n return MODULE_RECENTLY_OPENED\n case 5610:\n case 5611:\n case 5612:\n case 5613:\n case 5614:\n case 5615:\n case 5616:\n case 5617:\n case 5618:\n case 5619:\n case 5620:\n return MODULE_COLOR_THEME\n case 5740:\n case 5741:\n case 5742:\n case 5743:\n case 5744:\n case 5745:\n case 5746:\n case 5747:\n return MODULE_NAVIGATION\n case 5783:\n case 5784:\n case 5785:\n case 5786:\n case 5787:\n case 5788:\n case 5789:\n case 5790:\n return MODULE_SERVICE_WORKER\n case 6532:\n return MODULE_VIEWLET_SOURCE_CONTROL\n case 6661:\n return MODULE_SAVE_STATE\n case 6755:\n case 6756:\n case 6757:\n case 6758:\n case 6759:\n case 6770:\n return MODULE_SESSION_STORAGE\n case 6800:\n case 6801:\n case 6802:\n return MODULE_CACHE_STORAGE\n case 6900:\n case 6901:\n case 6902:\n return MODULE_LOCAL_STORAGE\n case 7100:\n case 7101:\n case 7102:\n case 7103:\n case 7104:\n case 7105:\n case 7106:\n case 7107:\n case 7108:\n case 7109:\n case 7110:\n case 7111:\n case 7112:\n case 7113:\n case 7114:\n case 7115:\n case 7116:\n case 7117:\n case 7118:\n case 7119:\n return MODULE_VIEWLET_Locations\n case 7400:\n case 7401:\n case 7402:\n case 7403:\n case 7404:\n case 7405:\n case 7406:\n case 7407:\n case 7408:\n case 7409:\n case 7410:\n return MODULE_MENU\n case 7633:\n case 7634:\n case 7635:\n case 7636:\n case 7637:\n case 7638:\n case 7639:\n return MODULE_WORKSPACE\n case 7650:\n case 7651:\n return MODULE_EXTENSIONS\n case 7890:\n return MODULE_BASE_64\n case 8000:\n case 8001:\n case 8002:\n case 8003:\n case 8004:\n case 8005:\n case 8006:\n case 8007:\n case 8008:\n case 8009:\n case 8010:\n case 8011:\n case 8012:\n case 8013:\n case 8014:\n case 8015:\n case 8016:\n case 8017:\n case 8018:\n case 8019:\n case 8020:\n case 8021:\n case 8022:\n return MODULE_ACTIVITY_BAR\n case 8080:\n case 8081:\n case 8082:\n case 8083:\n case 8084:\n case 8085:\n case 8086:\n case 8087:\n case 8088:\n case 8089:\n case 8090:\n case 8091:\n case 8092:\n case 8093:\n case 8094:\n case 8095:\n case 8096:\n case 8097:\n case 8098:\n case 8099:\n return MODULE_WINDOW\n case 8786:\n case 8787:\n case 8788:\n case 8789:\n case 8790:\n return MODULE_EDITOR_DIAGNOSTICS\n case 8961:\n case 8962:\n return MODULE_KEY_BINDINGS_INITIAL\n case 9081:\n case 9082:\n case 9083:\n case 9084:\n case 9085:\n return MODULE_IMAGE_PREVIEW\n case 9444:\n case 9445:\n case 9446:\n case 9447:\n case 9448:\n case 9449:\n case 9450:\n case 9451:\n case 9452:\n case 9453:\n case 9454:\n case 9455:\n case 9456:\n case 9457:\n case 9458:\n case 9459:\n case 9460:\n case 9461:\n case 9462:\n case 9463:\n case 9464:\n case 9465:\n case 9466:\n case 9467:\n case 9468:\n case 9469:\n return MODULE_VIEWLET_SEARCH\n case 47110:\n return MODULE_WORKBENCH\n case 67330:\n case 67331:\n return MODULE_CALLBACK\n case 71179:\n case 71178:\n case 71180:\n case 71181:\n case 7611:\n case 7612:\n case 18920:\n case 18921:\n case 18922:\n case 18923:\n case 18924:\n case 18925:\n case 18926:\n case 18927:\n case 18928:\n case 18929:\n case 18930:\n case 18931:\n case 18932:\n case 18933:\n case 18934:\n case 18935:\n return MODULE_QUICK_PICK\n case 212333:\n case 212334:\n case 4101:\n case 4102:\n return MODULE_FIND_WIDGET\n default:\n throw new Error(`command ${commandId} not found`)\n }\n}\n\nconst loadCommand = (command) => getOrLoadModule(getModuleId(command))\n\nexport const register = (commandId, listener) => {\n state.commands[commandId] = listener\n}\n\nconst hasThrown = new Set()\n\nexport const execute = (command, ...args) => {\n if (command in state.commands) {\n return state.commands[command](...args)\n }\n return (\n loadCommand(command)\n // TODO can skip then block in prod (only to prevent endless loop in dev)\n .then(() => {\n if (!(command in state.commands)) {\n if (hasThrown.has(command)) {\n return\n }\n hasThrown.add(command)\n throw new Error(`Command did not register \"${command}\"`)\n }\n return execute(command, ...args)\n })\n )\n}\n","export const state = {\n callbacks: Object.create(null),\n onceListeners: new Set(),\n id: 2,\n}\n\nexport const register = (resolve, reject) => {\n state.callbacks[++state.id] = {\n resolve,\n reject,\n }\n return state.id\n}\n\nexport const unregister = (id) => {\n delete state.callbacks[id]\n}\n\n// TODO merge resolve and resolveEmpty\nexport const resolve = (id, args) => {\n if (!(id in state.callbacks)) {\n console.log(args)\n console.warn(`callback ${id} may already be disposed`)\n return\n }\n state.callbacks[id].resolve(args)\n delete state.callbacks[id]\n}\n\nexport const resolveEmpty = (id) => {\n if (!(id in state.callbacks)) {\n console.warn(`callback ${id} may already be disposed`)\n return\n }\n state.callbacks[id].resolve()\n}\n\nexport const reject = (id, error) => {\n if (!(id in state.callbacks)) {\n console.warn(`callback ${id} may already be disposed`)\n return\n }\n state.callbacks[id].reject(error)\n}\n\nexport const isAllEmpty = () => {\n return (\n Object.keys(state.callbacks).length === 0 && state.onceListeners.size === 0\n )\n}\n","export const create = (url, baton) => {\n const webSocket = new WebSocket(url)\n const state = {\n webSocket,\n pendingMessages: [],\n }\n baton.send = (message) => {\n state.pendingMessages.push(message)\n }\n baton.dispose = () => {\n webSocket.close()\n }\n webSocket.onopen = () => {\n baton.send = (message) => {\n const stringifiedMessage = JSON.stringify(message)\n webSocket.send(stringifiedMessage)\n }\n for (const message of state.pendingMessages) {\n baton.send(message)\n }\n state.pendingMessages = []\n }\n webSocket.onmessage = ({ data }) => {\n const message = JSON.parse(data)\n baton.receive(message)\n }\n return state\n}\n","import * as Callback from '../Callback/Callback.js'\n\nexport const send = (transport, method, ...params) => {\n transport.send({\n jsonrpc: '2.0',\n method,\n params,\n })\n}\n\nexport const invoke = (transport, method, ...params) => {\n return new Promise((resolve, reject) => {\n // TODO use one map instead of two\n const callbackId = Callback.register(resolve, reject)\n transport.send({\n jsonrpc: '2.0',\n method,\n params,\n id: callbackId,\n })\n })\n}\n","/* istanbul ignore file */\nimport * as Callback from '../Callback/Callback.js'\nimport * as Command from '../Command/Command.js'\nimport * as WebSocket from '../WebSocket/WebSocket.js'\nimport * as JsonRpc from '../JsonRpc/JsonRpc.js'\n\n// TODO duplicate code with platform module\n/**\n * @returns {'electron'|'remote'|'web'|'test'}\n */\nconst getPlatform = () => {\n // TODO maybe use import.meta.env.PLATFORM\n // @ts-ignore\n if (typeof PLATFORM !== 'undefined') {\n // @ts-ignore\n return PLATFORM\n }\n if (typeof process !== 'undefined' && process.env.NODE_ENV === 'test') {\n return 'test'\n }\n\n // TODO don't use window here -> want to run renderer-worker as webworker\n if (\n // @ts-ignore\n typeof window !== 'undefined' &&\n // @ts-ignore\n window.myApi &&\n // @ts-ignore\n window.myApi.ipcConnect &&\n // @ts-ignore\n typeof window.myApi.ipcConnect === 'function'\n ) {\n return 'electron'\n }\n return 'remote'\n}\n\nexport const platform = getPlatform() // TODO tree-shake this out in production\n\nconst constructError = (message) => {\n if (message.startsWith('Error: ')) {\n return new Error(message.slice('Error: '.length))\n }\n if (message.startsWith('TypeError: ')) {\n return new TypeError(message.slice('TypeError: '.length))\n }\n if (message.startsWith('SyntaxError: ')) {\n return new SyntaxError(message.slice('SyntaxError: '.length))\n }\n return new Error(message)\n}\n\nconst preparePrettyError = (rawError) => {\n const error = constructError(rawError.message)\n if (rawError.data && rawError.data.stack) {\n // @ts-ignore\n error.originalStack = rawError.data.stack\n }\n if (rawError.data && rawError.data.codeFrame) {\n // @ts-ignore\n error.originalCodeFrame = rawError.data.codeFrame\n }\n if (rawError.data && rawError.data.category) {\n // @ts-ignore\n error.category = rawError.data.category\n }\n if (rawError.data && rawError.data.stderr) {\n // @ts-ignore\n error.stderr = rawError.data.stderr\n }\n return error\n}\n\n// TODO state is actually not needed here, only for testing because jest doesn't support mocking esm\nexport const state = {\n pendingMessages: [],\n send(message) {\n state.pendingMessages.push(message)\n },\n async receive(message) {\n if (message.method) {\n const result = await Command.execute(message.method, ...message.params)\n if (message.id) {\n state.send({\n jsonrpc: '2.0',\n id: message.id,\n result,\n })\n }\n } else {\n Callback.resolve(message.id, message)\n }\n },\n dispose() {},\n totalSent: 0,\n totalReceived: 0,\n retryCount: 0,\n}\n\nexport const listen = () => {\n console.assert(state.pendingMessages.length === 0)\n if (platform === 'web' || platform === 'remote') {\n // TODO replace this during build\n const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:'\n const wsUrl = `${wsProtocol}//${location.host}`\n const webSocket = WebSocket.create(wsUrl, state)\n } else if (platform === 'electron') {\n const handleMessage = (event) => {\n const port = event.ports[0]\n state.send = (message) => {\n port.postMessage(message)\n }\n port.onmessage = (event) => {\n const message = event.data\n state.receive(message)\n }\n for (const pendingMessage of state.pendingMessages) {\n state.send(pendingMessage)\n }\n // port.start()\n }\n if (\n // @ts-ignore\n typeof window !== 'undefined' &&\n // @ts-ignore\n window.myApi &&\n // @ts-ignore\n window.myApi.ipcConnect &&\n // @ts-ignore\n typeof window.myApi.ipcConnect === 'function'\n ) {\n // @ts-ignore\n window.addEventListener('message', handleMessage, { once: true })\n // @ts-ignore\n window.myApi.ipcConnect()\n } else {\n console.warn('api is not available')\n }\n }\n}\n\nexport const send = (method, ...params) => {\n if (platform === 'web') {\n console.warn('SharedProcess is not available on web')\n return\n }\n JsonRpc.send(state, method, ...params)\n}\n\nexport const invoke = async (method, ...params) => {\n if (platform === 'web') {\n console.warn('SharedProcess is not available on web')\n return\n }\n const responseMessage = await JsonRpc.invoke(state, method, ...params)\n if (responseMessage.error) {\n const prettyError = preparePrettyError(responseMessage.error)\n throw prettyError\n }\n return responseMessage.result\n}\n\nexport const dispose = () => {\n state.dispose()\n}\n\n// TODO when shared process crashes / connection is lost: reconnect or show notification\n","import * as SharedProcess from '../SharedProcess/SharedProcess.js'\n\n/* istanbul ignore file */\n\n// TODO this should always be completely tree shaken out during build, maybe need to be marked as @__Pure for terser to work\n\n// TODO treeshake this function out when targeting electron\n\nexport const state = {\n cachedIsMobileOrTablet: undefined,\n getPlatform() {\n // @ts-ignore\n if (typeof PLATFORM !== 'undefined') {\n // @ts-ignore\n return PLATFORM\n }\n if (typeof process !== 'undefined' && process.env.NODE_ENV === 'test') {\n return 'test'\n }\n\n // TODO don't use window here -> want to run renderer-worker as webworker\n if (\n typeof window !== 'undefined' &&\n window.myApi &&\n window.myApi.ipcConnect &&\n typeof window.myApi.ipcConnect === 'function'\n ) {\n return 'electron'\n }\n return 'remote'\n },\n getAssetDir() {\n // @ts-ignore\n if (typeof ASSET_DIR !== 'undefined') {\n // @ts-ignore\n return ASSET_DIR\n }\n if (this.getPlatform() === 'electron') {\n return '../../../../..'\n }\n return ''\n },\n isMobileOrTablet() {\n if (typeof process !== 'undefined' && process.env.NODE_ENV === 'test') {\n return false\n }\n // @ts-ignore\n const userAgentData = navigator.userAgentData\n if (userAgentData && userAgentData.mobile) {\n return true\n }\n // copied from https://stackoverflow.com/questions/11381673/detecting-a-mobile-browser\n let check = false\n ;(function (a) {\n if (\n /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(\n a\n ) ||\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[23]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(\n a.slice(0, 4)\n )\n ) {\n check = true\n }\n // @ts-ignore\n })(navigator.userAgent || navigator.vendor || window.opera)\n return check\n },\n getExtensionsPath() {\n return SharedProcess.invoke(\n /* Platform.getExtensionsPath */ 'Platform.getExtensionsPath'\n )\n },\n getBuiltinExtensionsPath() {\n return SharedProcess.invoke(\n /* Platform.getBuiltinExtensionsPath */ 'Platform.getBuiltinExtensionsPath'\n )\n },\n getDisabledExtensionsPath() {\n return SharedProcess.invoke(\n /* Platform.getDisabledExtensionsPath */ 'Platform.getDisabledExtensionsPath'\n )\n },\n getCachedExtensionsPath() {\n return SharedProcess.invoke(\n /* Platform.getCachedExtensionsPath */ 'Platform.getCachedExtensionsPath'\n )\n },\n getMarketPlaceUrl() {\n // TODO this should be configurable via settings\n // TODO in web this should be static\n return SharedProcess.invoke(\n /* Platform.getMarketPlaceUrl */ 'Platform.getMarketplaceUrl'\n )\n },\n getLogsDir() {\n return SharedProcess.invoke(/* Platform.getLogsDir */ 'Platform.getLogsDir')\n },\n getUserSettingsPath() {\n if (this.getPlatform() === 'web') {\n return 'settings'\n }\n return SharedProcess.invoke(\n /* Platform.getUserSettingsPath */ 'Platform.getUserSettingsPath'\n )\n },\n getRecentlyOpenedPath() {\n if (this.getPlatform() === 'web') {\n return 'recently-opened'\n }\n return SharedProcess.invoke(\n /* Platform.getRecentlyOpenedPath */ 'Platform.getRecentlyOpenedPath'\n )\n },\n getConfigPath() {\n return SharedProcess.invoke(\n /* Platform.getConfigDir */ 'Platform.getConfigDir'\n )\n },\n getCachePath() {\n return SharedProcess.invoke(\n /* Platform.getCacheDir */ 'Platform.getCacheDir'\n )\n },\n}\n\nexport const isMobileOrTablet = () => {\n if (state.cachedIsMobileOrTablet === undefined) {\n state.cachedIsMobileOrTablet = state.isMobileOrTablet()\n }\n return state.cachedIsMobileOrTablet\n}\n\nexport const getExtensionsPath = () => {\n return state.getExtensionsPath()\n}\n\nexport const getBuiltinExtensionsPath = () => {\n return state.getBuiltinExtensionsPath()\n}\n\nexport const getDisabledExtensionsPath = () => {\n return state.getDisabledExtensionsPath()\n}\n\nexport const getCachedExtensionsPath = () => {\n return state.getCachedExtensionsPath()\n}\n\nexport const getMarketPlaceUrl = () => {\n return state.getMarketPlaceUrl()\n}\n\nexport const getLogsDir = () => {\n return state.getLogsDir()\n}\n\nexport const getUserSettingsPath = () => {\n return state.getUserSettingsPath()\n}\n\n/**\n * @returns {'electron'|'remote'|'web'|'test'}\n */\nexport const getPlatform = () => {\n return state.getPlatform()\n}\n\nexport const getAssetDir = () => {\n return state.getAssetDir()\n}\n\nexport const getRecentlyOpenedPath = () => {\n return state.getRecentlyOpenedPath()\n}\n\nexport const getConfigPath = () => {\n return state.getConfigPath()\n}\n\nexport const getCachePath = () => {\n return state.getCachePath()\n}\n","import * as Platform from '../Platform/Platform.js'\nimport * as SharedProcess from '../SharedProcess/SharedProcess.js'\n\nexport const copy = (protocol, source, target) => {\n return SharedProcess.invoke(\n /* FileSystem.copy */ 'Filesystem.copy',\n /* source */ source,\n /* target */ target\n )\n}\n\nexport const readFile = (protocol, path) => {\n return SharedProcess.invoke(\n /* FileSystem.readFile */ 'FileSystem.readFile',\n /* path */ path\n )\n}\n\nexport const remove = (protocol, path) => {\n return SharedProcess.invoke(\n /* FileSystem.remove */ 'FileSystem.remove',\n /* path */ path\n )\n}\n\nexport const rename = (protocol, oldUri, newUri) => {\n return SharedProcess.invoke(\n /* FileSystem.rename */ 'FileSystem.rename',\n /* oldPath */ oldUri,\n /* newPath */ newUri\n )\n}\n\nexport const mkdir = (protocol, path) => {\n return SharedProcess.invoke(\n /* FileSystem.mkdir */ 'FileSystem.mkdir',\n /* path */ path\n )\n}\n\nexport const writeFile = async (protocol, path, content) => {\n await SharedProcess.invoke(\n /* FileSystem.writeFile */ 'FileSystem.writeFile',\n /* path */ path,\n /* content */ content\n )\n}\n\nexport const ensureFile = async () => {}\n\nexport const readDirWithFileTypes = (protocol, path) => {\n return SharedProcess.invoke(\n /* FileSystem.readDirWithFileTypes */ 'FileSystem.readDirWithFileTypes',\n /* path */ path\n )\n}\n\nexport const getBlobUrl = (protocol, path) => {\n return `/remote/${path}`\n}\n\nexport const getPathSeparator = (protocol) => {\n if (Platform.getPlatform() === 'web') {\n return '/'\n }\n return SharedProcess.invoke(\n /* FileSystem.getPathSeparator */ 'FileSystem.getPathSeparator'\n )\n}\n","// TODO global event bus is probably a bad idea\n// cons:\n// 1. it is not typesafe\n// 2. dependencies are unclear\n//\n// pros\n// 1. it decouples event emitter (e.g. Editor creation) from other module (Document syncing when editor was created)\n\nexport const state = {\n listenerMap: Object.create(null),\n}\n\nexport const emitEvent = async (event, ...args) => {\n const listeners = state.listenerMap[event] || []\n for (const listener of listeners) {\n await listener(...args)\n }\n}\n\nexport const addListener = (event, fn) => {\n state.listenerMap[event] ||= []\n if (state.listenerMap[event].includes(fn)) {\n return\n }\n state.listenerMap[event].push(fn)\n}\n\nexport const removeListener = (event, fn) => {\n const listeners = state.listenerMap[event]\n if (!listeners) {\n console.info(\n `[info] listener for event ${event} is not registered and cannot be unregistered`\n )\n return\n }\n const index = listeners.indexOf(fn)\n listeners.splice(index, 1)\n if (listeners.length === 0) {\n delete state.listenerMap[event]\n }\n}\n","/* istanbul ignore file */\nimport * as Callback from '../Callback/Callback.js'\nimport * as Command from '../Command/Command.js'\n\nexport const state = {\n pendingMessages: [],\n /**\n *\n * @param {any} message\n * @returns {void}\n */\n send(message) {\n throw new Error('not implemented')\n },\n // TODO renderer process should only be able send events\n // should not be able to invoke callbacks\n handleMessage(message) {\n switch (message[0]) {\n case 67330:\n case 67331:\n Callback.resolve(message[1], message[2])\n break\n default:\n Command.execute(...message)\n break\n }\n },\n sendAndTransfer(message, transferables) {},\n}\n\nconst handleMessageFromRendererProcess = (event) => {\n state.handleMessage(event.data)\n}\n\nconst listenModuleWorker = () => {\n onmessage = handleMessageFromRendererProcess\n state.send = (message) => postMessage(message)\n state.sendAndTransfer = (message, transferables) => {\n postMessage(message, transferables)\n }\n}\n\nconst listenMessagePort = () => {\n const messageChannel = new MessageChannel()\n messageChannel.port1.onmessage = handleMessageFromRendererProcess\n state.send = (message) => {\n messageChannel.port1.postMessage(message)\n }\n state.sendAndTransfer = (message, transferables) => {\n messageChannel.port1.postMessage(message, transferables)\n }\n globalThis.acceptPort(messageChannel.port2)\n}\n\nconst listenReferencePort = () => {\n const referencePort = {\n onmessage(message, transferables) {},\n postMessage: state.handleMessage,\n }\n // TODO get rid of extra data wrapper\n state.send = (message) => {\n referencePort.onmessage({ data: message })\n }\n state.sendAndTransfer = ({ data: message }, transferables) => {\n referencePort.onmessage(message, transferables)\n }\n globalThis.acceptReferencePort(referencePort)\n}\n\nexport const listen = () => {\n console.assert(state.pendingMessages.length === 0)\n // TODO tree-shake out if/else in prod\n if (globalThis.acceptPort) {\n listenMessagePort()\n } else if (globalThis.acceptReferencePort) {\n listenReferencePort()\n } else {\n listenModuleWorker()\n }\n}\n\n/**\n * @deprecated use invoke instead\n * @param {*} message\n */\nexport const send = (message) => {\n state.send(message)\n}\n\nexport const invoke = async (method, ...params) => {\n const responseMessage = await new Promise((resolve, reject) => {\n const callbackId = Callback.register(resolve, reject)\n state.send([\n /* RendererWorker.invoke */ 909090,\n /* callbackId */ callbackId,\n /* method */ method,\n /* params */ ...params,\n ])\n })\n if (responseMessage instanceof Error) {\n throw responseMessage\n }\n return responseMessage\n}\n\nexport const sendAndTransfer = (message, transferables) => {\n state.sendAndTransfer(message, transferables)\n}\n","import * as RendererProcess from '../RendererProcess/RendererProcess.js'\n\nexport const getPathName = () => {\n return RendererProcess.invoke(/* Location.getPathName */ 5611)\n}\n\nexport const setPathName = (pathName) => {\n return RendererProcess.invoke(\n /* Location.setPathName */ 5612,\n /* pathName */ pathName\n )\n}\n\nexport const hydrate = () => {\n return RendererProcess.invoke(/* Location.hydrate */ 5613)\n}\n","import * as Platform from '../Platform/Platform.js'\nimport * as RendererProcess from '../RendererProcess/RendererProcess.js'\nimport * as SharedProcess from '../SharedProcess/SharedProcess.js'\n\nexport const reload = async () => {\n if (Platform.getPlatform() === 'web' || Platform.getPlatform() === 'remote') {\n await RendererProcess.invoke(/* windowReload */ 8080)\n return\n }\n if (Platform.getPlatform() === 'electron') {\n // TODO should use invoke here\n SharedProcess.send(/* Electron.windowReload */ 'Electron.windowReload')\n }\n}\n\nexport const minimize = () => {\n if (Platform.getPlatform() === 'web') {\n return\n }\n SharedProcess.send(/* Electron.windowMinimize */ 'Electron.windowMinimize')\n}\n\nexport const maximize = () => {\n if (Platform.getPlatform() === 'web') {\n return\n }\n SharedProcess.send(/* Electron.windowMaximize */ 'Electron.windowMaximize')\n}\n\nexport const unmaximize = () => {\n if (Platform.getPlatform() === 'web') {\n return\n }\n SharedProcess.send(\n /* Electron.windowUnmaximize */ 'Electron.windowUnMaximize'\n )\n}\n\nexport const close = () => {\n if (Platform.getPlatform() === 'web') {\n return\n }\n SharedProcess.send(/* Electron.windowClose */ 'Electron.windowClose')\n}\n\nexport const exit = async () => {\n await SharedProcess.invoke(/* Electron.exit */ 'Electron.exit')\n}\n\nexport const setTitle = async (title) => {\n await RendererProcess.invoke(/* Window.setTitle */ 8085, /* title */ title)\n}\n\nexport const openNew = async () => {\n if (Platform.getPlatform() === 'web' || Platform.getPlatform() === 'remote') {\n return\n }\n await SharedProcess.invoke(\n /* Electron.windowOpenNew */ 'Electron.windowOpenNew'\n )\n}\n","import * as GlobalEventBus from '../GlobalEventBus/GlobalEventBus.js'\nimport * as Location from '../Location/Location.js'\nimport * as Platform from '../Platform/Platform.js'\nimport * as SharedProcess from '../SharedProcess/SharedProcess.js'\nimport * as Window from '../Window/Window.js'\nimport * as Command from '../Command/Command.js'\n\nexport const state = {\n workspacePath: '',\n homeDir: '',\n pathSeparator: '',\n workspaceUri: '',\n source: '',\n}\n\n/**\n * @param {string|undefined} path\n */\nexport const setPath = async (path) => {\n // TODO not in electron\n state.workspacePath = path\n await onWorkspaceChange()\n}\n\nexport const setUri = async (uri) => {\n const path = uri.slice('file://'.length)\n state.workspacePath = path\n state.workspaceUri = uri\n await onWorkspaceChange()\n}\n\nconst getResolvedRootFromSharedProcess = async () => {\n const resolvedRoot = await SharedProcess.invoke(\n /* Workspace.resolveRoot */ 'Workspace.resolveRoot'\n )\n return resolvedRoot\n}\n\nconst isValid = (resolvedRoot) => {\n return (\n resolvedRoot &&\n typeof resolvedRoot.path === 'string' &&\n typeof resolvedRoot.uri === 'string' &&\n typeof resolvedRoot.homeDir === 'string' &&\n typeof resolvedRoot.pathSeparator === 'string'\n )\n}\n\nconst getResolveRootFromSessionStorage = async () => {\n const resolvedRoot = await Command.execute(\n /* SessionStorage.getJson */ 6756,\n /* key */ 'workspace'\n )\n if (!isValid(resolvedRoot)) {\n return undefined\n }\n return resolvedRoot\n}\n\nconst getResolvedRootFromRendererProcess = async () => {\n const pathName = await Location.getPathName()\n if (pathName.startsWith('/github')) {\n return {\n path: `github://${pathName.slice('/github'.length + 1)}`,\n homeDir: '',\n pathSeparator: '/',\n source: 'renderer-process',\n }\n }\n if (Platform.getPlatform() === 'web') {\n const resolvedRoot = {\n path: 'web:///workspace',\n homeDir: '',\n pathSeparator: '/',\n source: 'renderer-process',\n }\n return resolvedRoot\n }\n return undefined\n}\n\nconst getResolvedRoot = async () => {\n if (Platform.getPlatform() === 'web') {\n return getResolvedRootFromRendererProcess()\n }\n if (Platform.getPlatform() === 'remote') {\n const resolvedRootFromRendererProcess =\n await getResolvedRootFromRendererProcess()\n if (resolvedRootFromRendererProcess) {\n return resolvedRootFromRendererProcess\n }\n }\n const resolvedRootFromSessionStorage =\n await getResolveRootFromSessionStorage()\n if (resolvedRootFromSessionStorage) {\n return resolvedRootFromSessionStorage\n }\n return getResolvedRootFromSharedProcess()\n}\n\nconst getTitle = (workspacePath) => {\n const pathSeparator = state.pathSeparator\n return workspacePath.slice(workspacePath.lastIndexOf(pathSeparator) + 1)\n}\n\nconst getPathName = (workspacePath) => {\n if (workspacePath.startsWith('github://')) {\n return '/github/' + workspacePath.slice('github://'.length)\n }\n return ''\n}\n\nconst onWorkspaceChange = async () => {\n const title = getTitle(state.workspacePath)\n await Window.setTitle(title)\n if (Platform.getPlatform() === 'web' || Platform.getPlatform() === 'remote') {\n const pathName = getPathName(state.workspacePath)\n await Location.setPathName(pathName)\n }\n await GlobalEventBus.emitEvent('workspace.change', state.workspacePath)\n}\n\nexport const hydrate = async () => {\n const resolvedRoot = await getResolvedRoot()\n // TODO why is this if statement here?\n if (state.homeDir !== resolvedRoot.homeDir) {\n state.homeDir = resolvedRoot.homeDir\n }\n // TODO how to check that path from renderer process is valid?\n // TODO also need to check whether it is a folder or file\n state.workspacePath = resolvedRoot.path\n state.homeDir = resolvedRoot.homeDir\n state.pathSeparator = resolvedRoot.pathSeparator\n state.workspaceUri = resolvedRoot.uri\n state.source = resolvedRoot.source\n await onWorkspaceChange()\n}\n\n/**\n * @deprecated use getWorkspaceUri instead\n * @returns\n */\nexport const getWorkspacePath = () => {\n return state.workspacePath\n}\n\nexport const getWorkspaceUri = () => {\n return state.workspaceUri\n}\n\nexport const getHomeDir = () => {\n return state.homeDir\n}\n\n// TODO this should be in FileSystem module\nexport const pathBaseName = (path) => {\n const pathSeparator = state.pathSeparator\n return path.slice(path.lastIndexOf(pathSeparator) + 1)\n}\n\n// TODO this should be in FileSystem module\nexport const pathDirName = (path) => {\n const pathSeparator = state.pathSeparator\n return path.slice(0, path.lastIndexOf(pathSeparator))\n}\n\nexport const getAbsolutePath = (relativePath) => {\n if (relativePath.startsWith('./')) {\n return `${state.workspacePath}/${relativePath.slice(2)}` // TODO support windows paths\n }\n return `${state.workspacePath}/${relativePath}` // TODO support windows paths\n}\n","// TODO treeshake out this whole module in production\n\nconst getType = (value) => {\n switch (typeof value) {\n case 'number':\n return 'number'\n case 'function':\n return 'function'\n case 'string':\n return 'string'\n case 'object':\n if (value === null) {\n return 'null'\n }\n if (Array.isArray(value)) {\n return 'array'\n }\n return 'object'\n case 'boolean':\n return 'boolean'\n default:\n return 'unknown'\n }\n}\n\nexport const object = (value) => {\n const type = getType(value)\n if (type !== 'object') {\n throw new Error('expected value to be of type object')\n }\n}\n\nexport const number = (value) => {\n const type = getType(value)\n if (type !== 'number') {\n throw new Error('expected value to be of type number')\n }\n if (isNaN(value)) {\n throw new Error('value is NaN')\n }\n}\n\nexport const array = (value) => {\n const type = getType(value)\n if (type !== 'array') {\n throw new Error('expected value to be of type array')\n }\n}\n\nexport const string = (value) => {\n const type = getType(value)\n if (type !== 'string') {\n throw new Error('expected value to be of type string')\n }\n}\n\nexport const null_ = (value) => {\n const type = getType(value)\n if (type !== 'null') {\n throw new Error('expected value to be of type null')\n }\n}\n\nexport const boolean = (value) => {\n const type = getType(value)\n if (type !== 'boolean') {\n throw new Error('expected value to be of type boolean')\n }\n}\n\nexport const fn = (value) => {\n const type = getType(value)\n if (type !== 'function') {\n throw new Error('expected value to be of type function')\n }\n}\n","import * as Command from '../Command/Command.js'\nimport * as Platform from '../Platform/Platform.js'\nimport * as FileSystemDisk from './FileSystemDisk.js'\nimport * as Workspace from '../Workspace/Workspace.js'\nimport * as Assert from '../Assert/Assert.js'\n\nconst readFileInternal = async (getPath) => {\n const path = await getPath()\n Assert.string(path)\n if (Platform.getPlatform() === 'web') {\n const settingsJsonContent = await Command.execute(\n /* LocalStorage.getText */ 6903,\n /* key */ path\n )\n if (settingsJsonContent) {\n return settingsJsonContent\n }\n const assetDir = Platform.getAssetDir()\n const url = `${assetDir}/config/defaultSettings.json`\n return Command.execute(/* Ajax.getText */ 271, /* url */ url)\n }\n // TODO handle enoent and other errors gracefully\n const userSettingsContent = await FileSystemDisk.readFile('file', path)\n return userSettingsContent\n}\n\n// TODO ask preferences module to do this\nconst readFileSettingsJson = async () => {\n return readFileInternal(Platform.getUserSettingsPath)\n}\n\nconst readFileRecentlyOpenedJson = async () => {\n return readFileInternal(Platform.getRecentlyOpenedPath)\n}\n\nexport const readFile = (protocol, path) => {\n switch (path) {\n case 'app://startup-performance':\n return Command.execute(/* Developer.getStartupPerformanceContent */ 820)\n case 'app://memory-usage':\n return Command.execute(/* Developer.getMemoryUsageContent */ 821)\n case 'app://settings.json':\n return readFileSettingsJson()\n case 'app://recently-opened.json':\n return readFileRecentlyOpenedJson()\n default:\n return ''\n }\n}\n\nconst writeFileInternal = async (getPath, content) => {\n const path = await getPath()\n Assert.string(path)\n if (Platform.getPlatform() === 'web') {\n await Command.execute(\n /* LocalStorage.setText */ 6904,\n /* key */ path,\n /* value */ content\n )\n return\n }\n // TODO handle enoent and other errors gracefully\n try {\n await FileSystemDisk.writeFile('file', path, content)\n } catch (error) {\n // TODO error should just have enoent code that could be checked\n\n if (error.message.includes('ENOENT')) {\n try {\n const dirname = Workspace.pathDirName(path)\n await FileSystemDisk.mkdir('file', dirname)\n await FileSystemDisk.writeFile('file', path, content)\n } catch (error) {\n error.message = `Failed to write ${path}: ${error.message}`\n throw error\n }\n } else {\n error.message = `Failed to write ${path}: ${error.message}`\n throw error\n }\n }\n}\n\nconst writeFileSettingsJson = (content) => {\n return writeFileInternal(Platform.getUserSettingsPath, content)\n}\n\nconst writeFileRecentlyOpenedJson = (content) => {\n return writeFileInternal(Platform.getRecentlyOpenedPath, content)\n}\n\nexport const writeFile = async (protocol, path, content) => {\n switch (path) {\n case 'app://settings.json':\n // TODO in web write to local storage, in electron write to config file\n return writeFileSettingsJson(content)\n case 'app://startup-performance':\n break\n case 'app://recently-opened.json':\n return writeFileRecentlyOpenedJson(content)\n default:\n break\n }\n}\n\nexport const readDirWithFileTypes = () => {\n return []\n}\n\nexport const rename = async (protocol, oldUri, newUri) => {\n throw new Error('not allowed')\n}\n\nexport const remove = async (protocol, path) => {\n throw new Error('not allowed')\n}\n\nexport const mkdir = async (protocol, path) => {\n throw new Error('not allowed')\n}\n\nexport const getPathSeparator = (protocol) => {\n return '/'\n}\n","// based on https://github.com/conwnet/github1s/blob/master/extensions/github1s/src/interfaces/github-api-rest.ts\n\nimport * as Command from '../Command/Command.js'\n\nconst encodeFilePath = (filePath) => {\n return filePath\n .split('/')\n .map((segment) => encodeURIComponent(segment))\n .join('/')\n}\n\nexport const readGitHubFile = async (owner, repo, fileSha) => {\n return 'Not implemented'\n}\n\nexport const readGithubFileWithUrl = (githubUrl) => {\n return Command.execute(/* Ajax.getJson */ 270, /* url */ githubUrl)\n}\n\nexport const readFile = (owner, repo, path) => {\n const url = `https://api.github.com/repos/${owner}/${repo}/contents/${path}`\n return Command.execute(/* Ajax.getJson */ 270, /* url */ url)\n}\n\nexport const readGitHubDirectory = (owner, repo, ref, path) => {\n const url = `https://api.github.com/repos/${owner}/${repo}/git/trees/${ref}${encodeFilePath(\n path\n ).replace(/^\\//, ':')}`\n return Command.execute(/* Ajax.getJson */ 270, /* url */ url)\n}\n","// based on https://github.com/conwnet/github1s/blob/master/extensions/github1s/src/interfaces/github-api-rest.ts\n\nimport * as GitHubRestApi from '../GitHubRestApi/GitHubRestApi.js'\nimport * as Command from '../Command/Command.js'\n\nexport const state = {\n cache: Object.create(null),\n}\n\nconst getGitHubFile = async (uri) => {\n const relativeUri = uri.slice('github://'.length)\n const parts = relativeUri.split('/')\n const [owner, repo, ...rest] = parts\n const relativePath = rest.join('/') // TODO many times split/join a bit unnecessary\n const githubFile = await GitHubRestApi.readFile(owner, repo, relativePath)\n // TODO what if it is not a file but a folder?\n return githubFile\n}\n\nexport const readFile = async (protocol, path) => {\n const githubFile = await getGitHubFile(path)\n if (githubFile.encoding !== 'base64') {\n throw new Error('unsupported encoding')\n }\n return Command.execute(\n /* Base64.decode */ 7890,\n /* encoded */ githubFile.content\n )\n}\n\nconst getType = (githubType) => {\n switch (githubType) {\n case 'tree':\n return 'folder'\n case 'blob':\n return 'file'\n default:\n return 'unknown'\n }\n}\n\nconst toDirent = (githubDirent) => {\n return {\n name: githubDirent.path,\n type: getType(githubDirent.type),\n }\n}\n\nconst toDirents = (githubResponse) => {\n return githubResponse.tree.map(toDirent)\n}\n\nexport const readDirWithFileTypes = async (protocol, path) => {\n const relativeUri = path.slice('github://'.length)\n const parts = relativeUri.split('/')\n const [owner, repo, ...rest] = parts\n const relativePath = '/' + rest.join('/') // TODO many times split/join a bit unnecessary\n // TODO handle reading real directory\n const githubDirents = await GitHubRestApi.readGitHubDirectory(\n owner,\n repo,\n 'HEAD',\n relativePath\n )\n state.cache[relativeUri] = githubDirents\n const dirents = toDirents(githubDirents)\n return dirents\n}\n\nexport const getBlobUrl = async (protocol, path) => {\n const githubFile = await getGitHubFile(path)\n return githubFile.download_url\n}\n\nexport const getPathSeparator = () => {\n return '/'\n}\n","import * as SharedProcess from '../SharedProcess/SharedProcess.js'\nimport * as Workspace from '../Workspace/Workspace.js'\n\nexport const STATUS_OFF = 0\nexport const STATUS_LOADING = 1\nexport const STATUS_RUNNING = 2\nexport const STATUS_ERROR = 3\n\nexport const state = {\n status: STATUS_OFF, // TODO should be an enum state\n /**\n * @type {any[]}\n */\n readyCallbacks: [],\n seenEvents: [],\n extensionPromiseCache: Object.create(null),\n /**\n * @type {Promise<void>|undefined}\n */\n extensionHostPromise: undefined,\n}\n\nexport const startExtensionHost = async () => {\n switch (state.status) {\n case STATUS_LOADING:\n case STATUS_RUNNING:\n throw new Error('extension host is already starting')\n }\n state.status = STATUS_LOADING\n await SharedProcess.invoke(/* ExtensionHost.start */ 'ExtensionHost.start')\n state.status = STATUS_RUNNING\n for (const readyCallback of state.readyCallbacks) {\n readyCallback()\n }\n state.readyCallbacks = []\n // TODO handle error\n await SharedProcess.invoke(\n /* ExtensionHost.setWorkspaceRoot */ 'ExtensionHost.setWorkspaceRoot',\n /* root */ Workspace.getWorkspacePath()\n )\n}\n\nexport const invoke = (...args) => {\n // console.log({ args })\n return SharedProcess.invoke(...args)\n}\n","import * as Platform from '../Platform/Platform.js'\nimport * as SharedProcess from '../SharedProcess/SharedProcess.js'\n\nexport const getExtensions = async () => {\n if (Platform.getPlatform() === 'web') {\n return []\n }\n const extensions = await SharedProcess.invoke(\n /* ExtensionManagement.getExtensions */ 'ExtensionManagement.getExtensions'\n )\n return extensions\n}\n","import * as Command from '../Command/Command.js'\nimport * as Platform from '../Platform/Platform.js'\nimport * as SharedProcess from '../SharedProcess/SharedProcess.js'\n\nconst getLanguagesFromExtensionHost = async () => {\n // TODO handle error\n const languages = await SharedProcess.invoke(\n /* ExtensionHost.getLanguages */ 'ExtensionHost.getLanguages'\n )\n return languages\n}\n\nconst getLanguagesFromStaticFolder = async () => {\n const assetDir = Platform.getAssetDir()\n const url = `${assetDir}/config/languages.json`\n // TODO handle error ?\n return Command.execute(/* Ajax.getJson */ 270, /* url */ url)\n}\n\nexport const getLanguages = () => {\n if (Platform.getPlatform() === 'web') {\n return getLanguagesFromStaticFolder()\n }\n return getLanguagesFromExtensionHost()\n}\n\nexport const getLanguageConfiguration = async (languageId) => {\n if (Platform.getPlatform() === 'web') {\n console.warn('get language configuration not yet supported on web')\n return\n }\n const languageConfiguration = await SharedProcess.invoke(\n /* ExtensionHost.getLanguageConfiguration */ 'ExtensionHost.getLanguageConfiguration',\n /* languageId */ languageId\n )\n return languageConfiguration\n}\n","// TODO merge all of this with extension host languages module\n\nimport * as Assert from '../Assert/Assert.js'\nimport * as ExtensionHostLanguages from '../ExtensionHost/ExtensionHostLanguages.js'\nimport * as GlobalEventBus from '../GlobalEventBus/GlobalEventBus.js'\n\nexport const state = {\n languages: [],\n loadState: false,\n isHydrating: false,\n}\n\nexport const getLanguageId = (path) => {\n Assert.string(path)\n const extension = path.slice(path.lastIndexOf('.'))\n for (const language of state.languages) {\n if (language.extensions && language.extensions.includes(extension)) {\n return language.id\n }\n }\n return 'unknown'\n}\n\nexport const getTokenizeFunctionPath = (languageId) => {\n for (const language of state.languages) {\n if (language.id === languageId && language.tokenize) {\n // TODO what if language.tokenize is not of type string? -> handle error gracefully\n return language.tokenize\n }\n }\n return ''\n}\n\nconst getLanguages = () => {\n // TODO handle error\n\n return ExtensionHostLanguages.getLanguages()\n}\n\nexport const hydrate = async () => {\n state.isHydrating = true\n // TODO handle error\n // TODO main parts should have nothing todo with shared process -> only sub components\n state.languages = await getLanguages()\n await GlobalEventBus.emitEvent('languages.changed')\n state.loaded = true\n}\n\nexport const hasLoaded = () => {\n return state.loaded\n}\n\nexport const waitForLoad = async () => {\n if (state.isHydrating) {\n await new Promise((resolve) => {\n const handleLanguageChange = (editor, languageId) => {\n resolve()\n }\n // TODO remove event listener when promise is resolved\n // TODO what if this event is never emitted (e.g. languages fail to load)\n GlobalEventBus.addListener('languages.changed', handleLanguageChange)\n })\n } else {\n await hydrate()\n }\n}\n\nexport const getLanguageConfiguration = async (editor) => {\n if (!hasLoaded()) {\n throw new Error(\n 'languages must be loaded before requesting language configuration'\n )\n }\n editor.languageId = getLanguageId(editor.uri)\n const languageConfiguration = ExtensionHostLanguages.getLanguageConfiguration(\n editor.languageId\n )\n return languageConfiguration\n}\n","import * as Command from '../Command/Command.js'\nimport * as ExtensionMeta from '../ExtensionMeta/ExtensionMeta.js'\nimport * as SharedProcess from '../SharedProcess/SharedProcess.js'\nimport * as ExtensionHostCore from './ExtensionHostCore.js'\nimport * as Languages from '../Languages/Languages.js'\n\nexport const state = {\n extensionPromiseCache: Object.create(null),\n}\n\nconst isActivatableExtension = (extension) => {\n return extension.main\n}\n\nconst toActivatableExtension = (extension) => {\n return {\n path: extension.path,\n id: extension.id,\n main: extension.main,\n }\n}\n\nconst activateExtension = async (extension) => {\n if (!extension.main) {\n return\n }\n if (!state.extensionPromiseCache[extension.id]) {\n const activatableExtension = toActivatableExtension(extension)\n state.extensionPromiseCache[extension.id] = SharedProcess.invoke(\n /* ExtensionHost.enableExtension */ 'ExtensionHost.enableExtension',\n /* activatableExtension */ activatableExtension\n )\n }\n // TODO what if activation fails or extension is restarted ot extension host is restarted?\n return state.extensionPromiseCache[extension.id]\n}\n\nexport const ensureExtensionHostIsStarted = async () => {\n switch (ExtensionHostCore.state.status) {\n case ExtensionHostCore.STATUS_OFF:\n ExtensionHostCore.state.extensionHostPromise =\n ExtensionHostCore.startExtensionHost()\n await ExtensionHostCore.state.extensionHostPromise\n await activateByEvent('onStartupFinished')\n break\n case ExtensionHostCore.STATUS_LOADING:\n await ExtensionHostCore.state.extensionHostPromise\n break\n case ExtensionHostCore.STATUS_RUNNING:\n break\n case ExtensionHostCore.STATUS_ERROR:\n throw new Error('extension host is broken')\n }\n}\n\nexport const activateByEvent = async (event) => {\n if (!Languages.hasLoaded()) {\n await Languages.waitForLoad()\n }\n // console.log('activate', event)\n await ensureExtensionHostIsStarted()\n // TODO this seems too inefficient -> leave extensions in shared process and just send activation event to shared process\n // TODO should not query extensions multiple times\n const extensions = await ExtensionMeta.getExtensions()\n // TODO if many (more than two?) extensions cannot be loaded,\n // it shouldn't should that many error messages\n for (const extension of extensions) {\n if (extension.status === 'rejected') {\n const message = extension.reason.message\n const codeFrame = extension.reason.jse_cause.codeFrame\n const stack = extension.reason.originalStack\n await Command.execute(\n /* Dialog.showMessage */ 1494,\n /* error */ { message, codeFrame, stack }\n )\n }\n }\n for (const extension of extensions) {\n if (extension.activation && extension.activation.includes(event)) {\n await activateExtension(extension)\n }\n }\n\n // TODO ask shared process to activate extension\n // TODO in web, create web worker extension host\n}\n","import * as ExtensionHost from './ExtensionHostCore.js'\nimport * as Assert from '../Assert/Assert.js'\nimport * as ExtensionHostManagement from './ExtensionHostManagement.js'\n\nexport const readFile = async (protocol, path) => {\n await ExtensionHostManagement.activateByEvent(`onFileSystem:${protocol}`)\n const content = await ExtensionHost.invoke(\n /* ExtensionHost.readFile */ 'ExtensionHostFileSystem.readFile',\n /* protocol */ protocol,\n /* path */ path\n )\n Assert.string(content)\n return content\n}\n\nexport const remove = async (protocol, path) => {\n await ExtensionHostManagement.activateByEvent(`onFileSystem:${protocol}`)\n return ExtensionHost.invoke(\n /* ExtensionHost.remove */ 'ExtensionHostFileSystem.remove',\n /* protocol */ protocol,\n /* path */ path\n )\n}\n\n/**\n *\n * @param {string} protocol\n * @param {string} oldPath\n * @param {string} newPath\n */\nexport const rename = async (protocol, oldPath, newPath) => {\n await ExtensionHostManagement.activateByEvent(`onFileSystem:${protocol}`)\n return ExtensionHost.invoke(\n /* ExtensionHost.rename */ 'ExtensionHostFileSystem.rename',\n /* protocol */ protocol,\n /* path */ oldPath,\n /* newPath */ newPath\n )\n}\n\nexport const mkdir = async (protocol, path) => {\n await ExtensionHostManagement.activateByEvent(`onFileSystem:${protocol}`)\n return ExtensionHost.invoke(\n /* ExtensionHost.mkdir */ -1,\n /* protocol */ protocol,\n /* path */ path\n )\n}\n\nexport const createFile = async (protocol, path) => {\n await ExtensionHostManagement.activateByEvent(`onFileSystem:${protocol}`)\n return ExtensionHost.invoke(\n /* ExtensionHost.writeFile */ 'ExtensionHostFileSystem.writeFile',\n /* protocol */ protocol,\n /* path */ path,\n /* content */ ''\n )\n}\n\nexport const createFolder = async (protocol, path) => {\n await ExtensionHostManagement.activateByEvent(`onFileSystem:${protocol}`)\n}\n\nexport const writeFile = async (protocol, path, content) => {\n await ExtensionHostManagement.activateByEvent(`onFileSystem:${protocol}`)\n return ExtensionHost.invoke(\n /* ExtensionHost.writeFile */ 'ExtensionHostFileSystem.writeFile',\n /* protocol */ protocol,\n /* path */ path,\n /* content */ content\n )\n}\n\nexport const readDirWithFileTypes = async (protocol, path) => {\n await ExtensionHostManagement.activateByEvent(`onFileSystem:${protocol}`)\n const dirents = await ExtensionHost.invoke(\n /* ExtensionHost.readDirWithFileTypes */ 'ExtensionHostFileSystem.readDirWithFileTypes',\n /* protocol */ protocol,\n /* path */ path\n )\n Assert.array(dirents)\n return dirents\n}\n\nexport const getPathSeparator = async (protocol) => {\n await ExtensionHostManagement.activateByEvent(`onFileSystem:${protocol}`)\n const pathSeparator = await ExtensionHost.invoke(\n /* ExtensionHost.getPathSeparator */ 'ExtensionHostFileSystem.getPathSeparator',\n /* protocol */ protocol\n )\n Assert.string(pathSeparator)\n return pathSeparator\n}\n","// TODO when it rejects, it should throw a custom error,\n// FileSystemError\n\nconst files = Object.create(null)\n\nfiles['/.gitkeep'] = ``\n\nfiles['/languages/index.dart'] = `void main() {\n print('Hello, World!');\n}`\n\nfiles['/languages/index.js'] = `const add = (a, b) => {\n return a + b;\n}`\n\nfiles['/languages/scrolling.txt'] = `line 1\nline 2\nline 3\nline 4\nline 5\nline 6\nline 7\nline 8\nline 9\nline 10\nline 11\nline 12\nline 13\nline 14\nline 15\nline 16\nline 17\nline 18\nline 19\nline 20\nline 21\nline 22\nline 23\nline 24\nline 25\nline 26\nline 27\nline 28\nline 29\nline 30\nline 31\nline 32\nline 33\nline 34\nline 35\nline 36\nline 37\nline 38\nline 39\nline 40\nline 41\nline 42\nline 43\nline 44\nline 45\nline 46\nline 47\nline 48\nline 49\nline 50\nline 51\nline 52\nline 53\nline 54\nline 55\nline 56\nline 57\nline 58\nline 59\nline 60\nline 61\nline 62\nline 63\nline 64\nline 65\nline 66\nline 67\nline 68\nline 69\nline 70\nline 71\nline 72\nline 73\nline 74\nline 75\nline 76\nline 77\nline 78\nline 79\nline 80\nline 81\nline 82\nline 83\nline 84\nline 85\nline 86\nline 87\nline 88\nline 89\nline 90\nline 91\nline 92\nline 93\nline 94\nline 95\nline 96\nline 97\nline 98\nline 99\nline 100\n`\n\nfiles['/languages/index.html'] = `<h1 class=\"abc\">hello world</h1>`\n\nfiles['/languages/index.css'] = `h1 {\n font-size: 24px;\n}\n\n.Editor {\n width: 100%;\n height: 100%;\n background: var(--MainBackground);\n color: white;\n outline: none;\n border: none;\n font-family: 'Fira Code', monospace;\n position: relative;\n white-space: pre;\n font-size: 15px;\n letter-spacing: 0.5px;\n contain: strict;\n tab-size: 2;\n}\n`\n\nfiles['/languages/index.ex'] = `defmodule RealWorld do\n @moduledoc \"\"\"\n RealWorld keeps the contexts that define your domain\n and business logic.\n Contexts are also responsible for managing your data, regardless\n if it comes from the database, an external API or others.\n \"\"\"\nend`\n\nfiles['/languages/index.jl'] = `function mandelbrot(a)\nz = 0\nfor i=1:50\nz = z^2 + a\nend\nreturn z\nend\n\nfor y=1.0:-0.05:-1.0\nfor x=-2.0:0.0315:0.5\nabs(mandelbrot(complex(x, y))) < 2 ? print(\"*\") : print(\" \")\nend\nprintln()\nend`\n\nfiles['/languages/index.perl'] = `#!/usr/bin/perl\n#\n# The traditional first program.\n\n# Strict and warnings are recommended.\nuse strict;\nuse warnings;\n\n# Print a message.\nprint \"Hello, World!\\n\";`\n\nfiles['/languages/index.kt'] = `fun main(args : Array<String>) {\n println(\"Hello, World!\")\n}`\n\nfiles['/languages/index.java'] = `class HelloWorld {\n public static void main(String[] args) {\n System.out.println(\"Hello, World!\");\n }\n}`\n\nfiles['/languages/index.cpp'] = `using namespace std;\n\ntemplate <class ANYTYPE>\nvoid thing(int a, Blah other_thing, double c=10, ANYTYPE f) {\n return;\n}\n\nint operator^(double a, double b) {\n cout << \"testing\";\n return 0;\n}\n\nint main(char arg_num, char** vargs) {\n if ( 1 and 0 ) cout << \"this is the and operator\\n\";\n if ( true and (c > 1) ) cout << \"this is the and operator\\n\";\n if ((true) and (c > 1) ) cout << \"this is still the and operator\\n\";\n\n #error I should be able to write single quotes in here: Don't make errors\n}`\n\nfiles['/languages/index.env'] = `KEY=42`\n\nfiles['/sample-folder/a.txt'] = ''\nfiles['/sample-folder/b.txt'] = ''\nfiles['/sample-folder/c.txt'] = ''\n\nexport const state = {\n watchers: Object.create(null),\n saveListeners: [],\n}\n\nconst getName = (path) => {\n return path.slice(path.lastIndexOf('/') + 1)\n}\n\nconst getRelativePath = (path) => {\n return path.slice('web:///workspace'.length)\n}\n\nexport const readFile = async (protocol, path) => {\n const relativePath = getRelativePath(path)\n const file = files[relativePath]\n if (file === undefined) {\n throw new Error('file not found')\n }\n return file\n}\n\nexport const remove = async (protocol, path) => {\n throw new Error('not implemented')\n}\n\nexport const rename = async (protocol, oldPath, newPath) => {\n throw new Error('not implemented')\n}\n\nexport const mkdir = async (protocol, path) => {\n throw new Error('not implemented')\n}\n\nexport const createFile = async (protocol, path) => {\n throw new Error('not implemented')\n}\n\nexport const createFolder = async (protocol, path) => {\n throw new Error('not implemented')\n}\n\nexport const writeFile = async (protocol, path, content) => {\n throw new Error('not implemented')\n}\n\nconst getDirent = (path, relativePath) => {\n const rest = path.slice(relativePath.length + 1)\n if (rest.includes('/')) {\n return {\n type: 'directory',\n name: rest.slice(0, rest.indexOf('/')),\n }\n }\n return {\n type: 'file',\n name: rest,\n }\n}\n\nexport const readDirWithFileTypes = (protocol, path) => {\n const relativePath = getRelativePath(path)\n const dirents = []\n for (const key in files) {\n if (key.startsWith(relativePath)) {\n const dirent = getDirent(key, relativePath)\n if (!dirents.find((otherDirent) => otherDirent.name === dirent.name))\n dirents.push(dirent)\n }\n }\n return dirents\n}\n\nexport const watch = async (protocol, path) => {\n throw new Error('not implemented')\n}\n\nexport const unwatch = (protocol, id) => {\n throw new Error('not implemented')\n}\n\nexport const unwatchAll = (protocol) => {\n throw new Error('not implemented')\n}\n\n// TODO should be in main/textDocument\nexport const onDidSave = (listener) => {\n throw new Error('not implemented')\n}\n\nexport const getPathSeparator = () => {\n return '/'\n}\n","export const copy = (protocol, source, target) => {\n throw new Error('not implemented')\n}\n\nexport const readFile = (protocol, path) => {\n return path.slice(protocol.length + 3)\n}\n\nexport const remove = (protocol, path) => {\n throw new Error('not implemented')\n}\n\nexport const rename = (protocol, oldUri, newUri) => {\n throw new Error('not implemented')\n}\n\nexport const mkdir = (protocol, path) => {\n throw new Error('not implemented')\n}\n\nexport const writeFile = async (protocol, path, content) => {\n throw new Error('not implemented')\n}\n\nexport const ensureFile = async () => {}\n\nexport const readDirWithFileTypes = (protocol, path) => {\n throw new Error('not implemented')\n}\n\nexport const getBlobUrl = (protocol, path) => {\n throw new Error('not implemented')\n}\n\nexport const getPathSeparator = (protocol) => {\n throw new Error('not implemented')\n}\n","// TODO file system providers should be lazy loaded (maybe)\n\nimport * as FileSystemApp from './FileSystemApp.js'\nimport * as FileSystemDisk from './FileSystemDisk.js'\nimport * as FileSystemGitHub from './FileSystemGitHub.js'\nimport * as FileSystemExtensionHost from '../ExtensionHost/ExtensionHostFileSystem.js'\nimport * as FileSystemWeb from './FileSystemWeb.js'\nimport * as FileSystemData from './FileSystemData.js'\n\n// TODO when it rejects, it should throw a custom error,\n// FileSystemError\n\n// TODO lazyload different file system providers\n\nconst RE_PROTOCOL = /^([a-z]+):\\/\\//\n\nconst getProtocol = (uri) => {\n const protocolMatch = uri.match(RE_PROTOCOL)\n if (protocolMatch) {\n return protocolMatch[1]\n }\n return 'file'\n}\n\nexport const state = {\n fileSystems: Object.create(null),\n}\n\n// TODO extension host should be able to register arbitrary protocols (except app, http, https, file, )\nstate.fileSystems['memfs'] = FileSystemExtensionHost\nstate.fileSystems['app'] = FileSystemApp\nstate.fileSystems['github'] = FileSystemGitHub\nstate.fileSystems['web'] = FileSystemWeb\nstate.fileSystems['data'] = FileSystemData\n\nconst getFileSystem = (protocol) => {\n return state.fileSystems[protocol] || FileSystemDisk\n}\n\nexport const readFile = (uri) => {\n const protocol = getProtocol(uri)\n const fileSystem = getFileSystem(protocol)\n return fileSystem.readFile(protocol, uri)\n}\n\nexport const remove = async (uri) => {\n const protocol = getProtocol(uri)\n const fileSystem = getFileSystem(protocol)\n await fileSystem.remove(protocol, uri)\n}\n\nexport const rename = async (oldUri, newUri) => {\n const protocol = getProtocol(oldUri)\n const fileSystem = getFileSystem(protocol)\n await fileSystem.rename(protocol, oldUri, newUri)\n}\n\nexport const mkdir = async (uri) => {\n const protocol = getProtocol(uri)\n const fileSystem = getFileSystem(protocol)\n await fileSystem.mkdir(protocol, uri)\n}\n\nexport const writeFile = async (uri, content) => {\n const protocol = getProtocol(uri)\n const fileSystem = getFileSystem(protocol)\n await fileSystem.writeFile(protocol, uri, content)\n}\n\nexport const readDirWithFileTypes = (uri) => {\n const protocol = getProtocol(uri)\n const fileSystem = getFileSystem(protocol)\n return fileSystem.readDirWithFileTypes(protocol, uri)\n}\n\nexport const unwatch = (id) => {\n throw new Error('not implemented')\n}\n\nexport const unwatchAll = () => {\n throw new Error('not implemented')\n}\n\nexport const getBlobUrl = (uri) => {\n const protocol = getProtocol(uri)\n const fileSystem = getFileSystem(protocol)\n return fileSystem.getBlobUrl(protocol, uri)\n}\n\nexport const copy = (source, target) => {\n // TODO what if it is not the same file system?\n const protocol = getProtocol(source)\n const fileSystem = getFileSystem(protocol)\n return fileSystem.copy(protocol, source, target)\n}\n\nexport const getPathSeparator = (uri) => {\n const protocol = getProtocol(uri)\n const fileSystem = getFileSystem(protocol)\n return fileSystem.getPathSeparator(protocol)\n}\n","export const stringify = (value) => {\n return JSON.stringify(value, null, 2) + '\\n'\n}\n\nexport const parse = (content) => {\n // TODO use better json parse to throw more helpful error messages if json is invalid\n try {\n return JSON.parse(content)\n } catch (error) {\n throw new Error('failed to parse json', { cause: error })\n }\n}\n","import * as Command from '../Command/Command.js'\nimport * as Platform from '../Platform/Platform.js'\nimport * as SharedProcess from '../SharedProcess/SharedProcess.js'\nimport * as FileSystem from '../FileSystem/FileSystem.js'\nimport * as Json from '../Json/Json.js'\nimport * as RendererProcess from '../RendererProcess/RendererProcess.js'\n\nexport const state = Object.create(null)\n\nexport const openSettingsJson = async () => {\n await Command.execute(/* Main.openUri */ 97, /* uri */ 'app://settings.json')\n}\n\nexport const openKeyBindingsJson = async () => {\n await Command.execute(\n /* Main.openUri */ 97,\n /* uri */ 'app://keyBindings.json'\n )\n}\n\n// TODO command for opening workspace settings\n\nconst getPreferencesJson = async () => {\n if (Platform.getPlatform() === 'web') {\n const cachedPreferences = await Command.execute(\n /* LocalStorage.getJson */ 6902,\n /* key */ 'preferences'\n )\n if (cachedPreferences) {\n return cachedPreferences\n }\n const assetDir = Platform.getAssetDir()\n const url = `${assetDir}/config/defaultSettings.json`\n return Command.execute(/* Ajax.getJson */ 270, /* url */ url)\n }\n return SharedProcess.invoke(/* Preferences.getAll */ 'Preferences.getAll')\n}\n\nconst getPreferences = async () => {\n // TODO cache preferences, but they should not be stale\n const preferences = getPreferencesJson()\n return preferences\n}\n\nexport const hydrate = async () => {\n // TODO should configuration be together with all other preferences (e.g. selecting color theme code is not needed on startup)\n // TODO probably not all preferences need to be kept in memory\n const preferences = await getPreferences()\n Object.assign(state, preferences)\n\n const styles = []\n const fontSize = preferences['editor.fontSize']\n if (fontSize) {\n styles.push(` --EditorFontSize: ${fontSize}px;`)\n }\n const fontFamily = preferences['editor.fontFamily']\n if (fontFamily) {\n styles.push(` --EditorFontFamily: ${fontFamily};`)\n }\n const lineHeight = preferences['editor.lineHeight']\n if (lineHeight) {\n styles.push(` --EditorLineHeight: ${lineHeight}px;`)\n }\n const letterSpacing = preferences['editor.letterSpacing']\n if (letterSpacing) {\n styles.push(` --EditorLetterSpacing: ${letterSpacing}px;`)\n }\n const css = `:root {\n${styles.join('\\n')}\n}`\n await RendererProcess.invoke(\n /* Css.setInlineStyle */ 4551,\n /* id */ 'Settings',\n /* css */ css\n )\n}\n\nexport const get = (key) => {\n return state[key]\n}\n\nexport const set = async (key, value) => {\n state[key] = value\n if (Platform.getPlatform() === 'web') {\n const preferences = { ...state, [key]: value }\n await Command.execute(\n /* LocalStorage.setJson */ 6901,\n /* key */ 'preferences',\n /* value */ preferences\n )\n return\n }\n const content = Json.stringify(state)\n await FileSystem.writeFile(`app://settings.json`, content)\n}\n","import * as Command from '../Command/Command.js'\nimport * as Platform from '../Platform/Platform.js'\nimport * as Preferences from '../Preferences/Preferences.js'\nimport * as RendererProcess from '../RendererProcess/RendererProcess.js'\nimport * as SharedProcess from '../SharedProcess/SharedProcess.js'\n\n// TODO by default color theme should come from local storage, session storage, cache storage, indexeddb or blob url -> fast initial load\n// actual color theme can be computed after workbench has loaded (most times will be the same and doesn't need to be computed)\n\nconst FALLBACK_COLOR_THEME_ID = 'slime'\n\nconst getColorThemeJsonFromSharedProcess = async (colorThemeId) => {\n // const extensions = await ExtensionMeta.getExtensions()\n // for(const extension of extensions){\n // if(extension.status==='rejected'){\n // continue\n // }\n // if(!extension.colorThemes){\n // continue\n // }\n // for(const colorTheme of extension.colorThemes){\n // if(colorTheme.id !== colorThemeId){\n // continue\n // }\n // const absolutePath = `${extension.path}/${colorTheme.path}`\n // }\n // }\n return SharedProcess.invoke(\n /* ExtensionHost.getColorThemeJson */ 'ExtensionHost.getColorThemeJson',\n /* colorThemeId */ colorThemeId\n )\n}\n\nconst getColorThemeJsonFromStaticFolder = (colorThemeId) => {\n const assetDir = Platform.getAssetDir()\n const url = `${assetDir}/themes/${colorThemeId}.json`\n // TODO handle error ?\n return Command.execute(/* Ajax.getJson */ 270, /* url */ url)\n}\n\nconst getFallbackColorTheme = async () => {\n const assetDir = Platform.getAssetDir()\n const url = `${assetDir}/themes/fallback_theme.json`\n return Command.execute(/* Ajax.getJson */ 270, /* url */ url)\n}\n\n// TODO json parsing should also happen in renderer worker\n// so that all validation is here (json parsing errors, invalid shape, ...)\n\nconst getColorThemeJson = (colorThemeId) => {\n if (Platform.getPlatform() === 'web') {\n return getColorThemeJsonFromStaticFolder(colorThemeId)\n }\n return getColorThemeJsonFromSharedProcess(colorThemeId)\n}\n\nexport const getColorThemeCss = async (colorThemeId, colorThemeJson) => {\n const colorThemeCss = await Command.execute(\n /* ColorThemeFromJson.createColorThemeFromJson */ 232,\n /* colorThemeId */ colorThemeId,\n /* colorThemeJson */ colorThemeJson\n )\n return colorThemeCss\n // TODO generate color theme from jsonc\n}\n\nconst getMetaThemeColor = (colorThemeJson) => {\n return (\n colorThemeJson &&\n colorThemeJson.colors &&\n colorThemeJson.colors.TitleBarBackground\n )\n}\nconst applyColorTheme = async (colorThemeId) => {\n try {\n const colorThemeJson = await getColorThemeJson(colorThemeId)\n const colorThemeCss = await getColorThemeCss(colorThemeId, colorThemeJson)\n await RendererProcess.invoke(\n /* Css.setInlineStyle */ 4551,\n /* id */ 'ContributedColorTheme',\n /* css */ colorThemeCss\n )\n if (Platform.getPlatform() === 'web') {\n const themeColor = getMetaThemeColor(colorThemeJson) || ''\n await RendererProcess.invoke(\n /* Meta.setThemeColor */ 11122,\n /* color */ themeColor\n )\n }\n } catch (error) {\n throw new Error(`Failed to apply color theme \"${colorThemeId}\": ${error}`)\n }\n}\n\nexport const setColorTheme = async (colorThemeId) => {\n await applyColorTheme(colorThemeId)\n // TODO should preferences throw errors or should it call handleError directly?\n await Preferences.set('workbench.colorTheme', colorThemeId)\n}\n\n// TODO test this, and also the error case\n// TODO have icon theme, color theme together (maybe)\nexport const hydrate = async () => {\n const colorThemeId = Preferences.get('workbench.colorTheme')\n try {\n await applyColorTheme(colorThemeId)\n } catch (error) {\n if (colorThemeId === FALLBACK_COLOR_THEME_ID) {\n throw error\n }\n console.warn(error)\n await applyColorTheme(FALLBACK_COLOR_THEME_ID)\n }\n}\n","import * as Command from '../Command/Command.js'\nimport * as GlobalEventBus from '../GlobalEventBus/GlobalEventBus.js'\nimport * as Languages from '../Languages/Languages.js'\nimport * as Platform from '../Platform/Platform.js'\nimport * as Preferences from '../Preferences/Preferences.js'\nimport * as RendererProcess from '../RendererProcess/RendererProcess.js'\nimport * as SharedProcess from '../SharedProcess/SharedProcess.js'\n\nconst CACHE_KEY = '/icon-theme.css'\n\nexport const state = {\n seenFiles: [],\n seenFolders: [],\n hasWarned: [],\n iconTheme: undefined,\n}\n\nconst getIconThemeJson = async (iconThemeId) => {\n if (Platform.getPlatform() === 'web') {\n const assetDir = Platform.getAssetDir()\n const url = `${assetDir}/icon-themes/${iconThemeId}.json`\n const json = await Command.execute(/* Ajax.getJson */ 270, /* url */ url)\n return {\n json,\n }\n }\n return SharedProcess.invoke(\n /* ExtensionHost.getIconThemeJson */ 'ExtensionHost.getIconThemeJson',\n /* iconThemeId */ iconThemeId\n )\n}\n\nconst getExtension = (file) => {\n return file.slice(file.lastIndexOf('.') + 1)\n}\n\nexport const getFileIcon = (file) => {\n const iconTheme = state.iconTheme\n if (!iconTheme) {\n return ''\n }\n const fileNameIcon = iconTheme.fileNames[file.name.toLowerCase()]\n if (fileNameIcon) {\n return fileNameIcon\n }\n const languageId = Languages.getLanguageId(file.name)\n const languageIcon = iconTheme.languageIds[languageId]\n if (languageIcon) {\n return languageIcon\n }\n const extension = getExtension(file.name)\n const extensionIcon = iconTheme.fileExtensions[extension]\n if (extensionIcon) {\n return extensionIcon\n }\n return '_file'\n}\n\nexport const getFolderIcon = (folder) => {\n const iconTheme = state.iconTheme\n if (!iconTheme || !iconTheme.folderNames) {\n return ''\n }\n const folderIcon = iconTheme.folderNames[folder.name.toLowerCase()]\n if (folderIcon) {\n return folderIcon\n }\n return '_folder'\n}\n\nconst getFolderIconExpanded = (folder) => {\n const iconTheme = state.iconTheme\n if (!iconTheme) {\n return ''\n }\n if (!iconTheme.folderNamesExpanded) {\n return '_folder_open'\n }\n const folderName = iconTheme.folderNamesExpanded[folder.name.toLowerCase()]\n if (folderName) {\n return folderName\n }\n return '_folder_open'\n}\n\nexport const getIcon = (dirent) => {\n switch (dirent.type) {\n case 'file':\n return getFileIcon(dirent)\n case 'directory':\n case 'folder':\n return getFolderIcon(dirent)\n case 'folder-expanded':\n case 'directory-expanded':\n return getFolderIconExpanded(dirent)\n default:\n console.warn(`unsupported type ${dirent.type}`)\n return ''\n }\n}\n\nconst getBackgroundUrl = (extensionPath, value) => {\n if (Platform.getPlatform() === 'web') {\n return `/file-icons/${value.slice(7)}`\n }\n // TODO what if the file in on linux and includes a backslash?\n if (extensionPath.includes('\\\\')) {\n const extensionUri = extensionPath.replaceAll('\\\\', '/')\n return `/remote/${extensionUri}/${value}`\n }\n return `/remote${extensionPath}/${value}`\n}\n\nconst getIconThemeCss2 = (iconTheme) => {\n const rules = []\n for (const [key, value] of Object.entries(iconTheme.json.iconDefinitions)) {\n const backgroundUrl = getBackgroundUrl(iconTheme.extensionPath, value)\n rules.push(\n `.Icon${key}::before { background-image: url(${backgroundUrl}) }`\n )\n }\n const rulesCss = rules.join('\\n')\n return rulesCss\n}\n\nexport const hydrate = async () => {\n try {\n // TODO icon theme css can be really large (3000+ lines)\n // and slow down recalculate style by 5x (e.g. rendering text in editor: 1.42ms normal, 7.42ms with icon theme)\n // icon theme should not slow down editor.\n // maybe set applied css only to actual used icons\n // for example, when a js file is in explorer, only generate the css for the js icon\n // that way there would be much less rules, but when a new file type appears (which should not happen often)\n // the css must be recalculated again\n // const iconThemeCss = await getIconThemeCss()\n // await RendererProcess.invoke(\n // /* Css.setInlineStyle */ 4551,\n // /* id */ 'ContributedIconTheme',\n // /* css */ iconThemeCss\n // )\n\n const iconThemeId = Preferences.get('icon-theme') || 'vscode-icons'\n const iconTheme = await getIconThemeJson(iconThemeId)\n state.iconTheme = iconTheme.json\n state.extensionPath = iconTheme.extensionPath\n\n const iconThemeCss = getIconThemeCss2(iconTheme)\n await RendererProcess.invoke(\n /* Css.setInlineStyle */ 4551,\n /* id */ 'ContributedIconTheme',\n /* css */ iconThemeCss\n )\n\n await GlobalEventBus.emitEvent('iconTheme.change')\n // GlobalEventBus.addListener('dirents.update', handleDirentsUpdate)\n // GlobalEventBus.addListener('languages.changed', handleLanguagesUpdate)\n } catch (error) {\n // TODO\n console.info(`[info] ${error.message}`)\n // console.error(error)\n }\n}\n","import * as Command from '../Command/Command.js'\n\n// TODO use https://github.com/stack-tools-js/stack-tools to print error\n\nconst enhanceErrorMessage = (error) => {\n if (!error) {\n return {\n message: `Error: ${error}`,\n stack: undefined,\n codeFrame: undefined,\n }\n }\n let message = `${error}`\n while (error.cause) {\n error = error.cause\n message += `: ${error}`\n }\n console.log({ error })\n return {\n message,\n stack: error.originalStack,\n codeFrame: error.originalCodeFrame,\n category: error.category,\n stderr: error.stderr,\n }\n}\n\n// const getErrorMessage = (error) => {\n// let message = ``\n// if (error && error.message) {\n// message += error.message\n// }\n// if (error && error.stack) {\n// message += `\\n${error.stack}`\n// }\n// if (error && error.cause) {\n// message += getErrorMessage(error.cause)\n// }\n// return message\n// }\n\n// const printError = (error) => {\n// const message = getErrorMessage(error)\n// console.error(message)\n// }\n\nconst printError = (error) => {\n console.error(error)\n if (error && error.cause) {\n console.error('caused by')\n printError(error.cause)\n }\n}\n\n// TODO state is not needed here but because jest doesn't support mocking for esm yet this is a workaround\nexport const state = {\n async handleError(error) {\n printError(error)\n const enhancedErrorMessage = enhanceErrorMessage(error)\n await Command.execute(\n /* Notification.create */ 900,\n /* type */ 'error',\n /* text */ enhancedErrorMessage\n )\n },\n async showErrorDialog(error) {\n const enhancedErrorMessage = enhanceErrorMessage(error)\n await Command.execute(\n /* Dialog.showErrorMessage */ 1494,\n /* message */ enhancedErrorMessage\n )\n },\n seenWarnings: [],\n}\n\nexport const handleError = async (error) => {\n await state.handleError(error)\n}\n\nexport const showErrorDialog = async (error) => {\n await state.showErrorDialog(error)\n}\n\nexport const warn = (...args) => {\n const stringified = JSON.stringify(args)\n if (state.seenWarnings.includes(stringified)) {\n return\n }\n state.seenWarnings.push(stringified)\n console.warn(...args)\n}\n","import * as Command from '../Command/Command.js'\nimport * as ErrorHandling from '../ErrorHandling/ErrorHandling.js'\nimport * as RendererProcess from '../RendererProcess/RendererProcess.js'\nimport * as SharedProcess from '../SharedProcess/SharedProcess.js'\n\nconst getKeyBindings = async () => {\n return Command.execute(/* KeyBindingsInitial.getKeyBindings */ 8961)\n}\n\nexport const hydrate = async () => {\n try {\n const keyBindings = await getKeyBindings()\n await RendererProcess.invoke(\n /* KeyBindings.hydrate */ 755,\n /* keyBindings */ keyBindings\n )\n } catch (error) {\n ErrorHandling.handleError(\n // @ts-ignore\n new Error('Failed to load KeyBindings', {\n cause: error,\n })\n )\n }\n}\n\n// TODO where to store keybindings? need them here and in renderer process\n// how to avoid duplicate loading / where to store them and keep them in sync?\nexport const lookupKeyBinding = (commandId) => {\n switch (commandId) {\n case 'scm.acceptInput':\n return 'Ctrl+Enter'\n default:\n return ''\n }\n}\n\nexport const handleKeyBinding = async (keyBinding) => {\n if (typeof keyBinding.command === 'number') {\n Command.execute(\n /* command */ keyBinding.command,\n // TODO should args always be defined? (probably yes -> monomorphism & simpler code since all objects are the same)\n ...(keyBinding.args || [])\n )\n } else if (typeof keyBinding.command === 'string') {\n // TODO should calling command be async ? (actually don't care if it resolves -> can just send error event in case of error)\n await SharedProcess.invoke(\n /* ExtensionHost.executeCommand */ 'ExtensionHost.executeCommand',\n /* commandId */ keyBinding.command,\n ...(keyBinding.args || [])\n )\n }\n}\n","import * as RendererProcess from '../RendererProcess/RendererProcess.js'\nimport * as GlobalEventBus from '../GlobalEventBus/GlobalEventBus.js'\nimport * as Command from '../Command/Command.js'\nimport * as Assert from '../Assert/Assert.js'\n\nexport const state = {\n instances: Object.create(null),\n modules: Object.create(null),\n}\n\n/**\n * @deprecated\n */\nexport const focus = (id) => {\n // if(state.instances[id]){\n // }\n // console.log('focus', { id })\n // // TODO open if it is not already open\n // RendererProcess.send([/* viewletFocus */ 3027, /* id */ id])\n}\n// export const createOrFocus = async id=>{\n// const instance = state.instances[id] || await create(id)\n// }\n\n/**\n * @deprecated\n */\nexport const refreshInstance = async (instance, id) => {\n if (!instance) {\n return\n }\n if (instance.status === 'refreshing' || instance.status === 'disposed') {\n return\n }\n instance.status = 'refreshing'\n try {\n await instance.factory.refresh(instance.state)\n } catch (error) {\n // TODO use ErrorHandling.handleError\n // TODO show notification maybe\n console.error(error)\n instance.status = 'error'\n return\n }\n instance.status = 'refreshed'\n}\n\n// TODO should refresh instance?\n/**\n * @deprecated\n */\nexport const refresh = async (id) => {\n const instance = state.instances[id]\n if (!instance) {\n return\n }\n await refreshInstance(instance, id)\n}\n\n/**\n * @deprecated\n */\nexport const send = (id, method, ...args) => {\n const instance = state.instances[id]\n if (!instance) {\n console.info('instance disposed', { id, method, args })\n console.info(state.instances)\n return\n }\n const fn = instance.factory[method]\n Assert.fn(fn)\n fn(instance.state, ...args)\n}\n\n/**\n * @deprecated\n */\nexport const dispose = async (id) => {\n if (!id) {\n console.warn('no instance to dispose')\n return\n }\n const instance = state.instances[id]\n if (!instance) {\n console.info('instance may already be disposed')\n return\n }\n // TODO status should have enum\n instance.status = 'disposing'\n try {\n if (!instance.factory) {\n throw new Error(`${id} is missing a factory function`)\n }\n instance.factory.dispose(instance.state)\n await RendererProcess.invoke(/* Viewlet.dispose */ 3026, /* id */ id)\n } catch (error) {\n console.error(error)\n // TODO use Error.cause once proper stack traces are supported by chrome\n throw new Error(`Failed to dispose viewlet ${id}: ${error}`)\n }\n instance.status = 'disposed'\n delete state.instances[id]\n delete state.modules[id]\n await GlobalEventBus.emitEvent(`Viewlet.dispose.${id}`)\n}\n\n/**\n * @deprecated\n */\nexport const replace = () => {}\n\n// TODO maybe wrapViewletCommand should accept module instead of id string\n// then check if instance.factory matches module -> only compare reference (int) instead of string\n// should be faster\nexport const wrapViewletCommand = (id, fn) => {\n const wrappedViewletCommand = async (...args) => {\n // TODO get actual focused instance\n const activeInstance = state.instances[id]\n if (!activeInstance) {\n console.info(`no active instance for ${id}`)\n return\n }\n if (activeInstance.factory && activeInstance.factory.hasFunctionalRender) {\n const oldState = activeInstance.state\n const newState = await fn(oldState, ...args)\n if (!newState) {\n console.log({ fn })\n }\n Assert.object(newState)\n // console.log({ fn, newState })\n if (oldState === newState) {\n return\n }\n if (newState.disposed) {\n await dispose(id)\n console.log('DISPOSED')\n return\n }\n const commands = activeInstance.factory.render(oldState, newState)\n RendererProcess.send([\n /* Viewlet.sendMultiple */ 3032,\n /* commands */ commands,\n ])\n state.instances[id].state = newState\n } else {\n return fn(activeInstance.state, ...args)\n }\n }\n return wrappedViewletCommand\n}\n\nexport const resize = (id, dimensions) => {\n const instance = state.instances[id]\n if (!instance || !instance.factory || !instance.factory.resize) {\n console.warn('cannot resize', id)\n return []\n }\n const oldState = instance.state\n const { newState, commands } = instance.factory.resize(oldState, dimensions)\n Assert.object(newState)\n Assert.array(commands)\n state.instances[id].state = newState\n if (instance.factory.hasFunctionalRender) {\n return instance.factory.render(oldState, newState)\n }\n return commands\n}\n\nexport const getState = (id) => {\n const instance = state.instances[id]\n return instance.state\n}\n\nexport const setState = (id, newState) => {\n const instance = state.instances[id]\n if (instance && instance.factory && instance.factory.hasFunctionalRender) {\n const oldState = instance.state\n const commands = instance.factory.render(oldState, newState)\n RendererProcess.send([\n /* Viewlet.sendMultiple */ 3032,\n /* commands */ commands,\n ])\n instance.state = newState\n }\n}\n","import * as RendererProcess from '../RendererProcess/RendererProcess.js'\nimport * as Viewlet from '../Viewlet/Viewlet.js'\n\nexport const modules = Object.create(null)\n\nconst VIEWLET_STATE_DEFAULT = 0\nconst VIEWLET_STATUS_MODULE_LOADED = 1\nconst VIEWLET_STATE_CONTENT_LOADED = 2\nconst VIEWLET_STATE_RENDERER_PROCESS_VIEWLET_LOADED = 3\nconst VIEWLET_STATE_CONTENT_RENDERED = 4\nconst VIEWLET_STATE_APPENDED = 5\n\nexport const getModule = (id) => {\n console.assert(typeof id === 'string')\n switch (id) {\n // TODO use numeric identifier instead\n case 'Explorer':\n return import('../Viewlet/ViewletExplorer.js')\n case 'Run and Debug':\n return import('../Viewlet/ViewletRunAndDebug.js')\n case 'Search':\n return import('../Viewlet/ViewletSearch.js')\n case 'Source Control':\n return import('../Viewlet/ViewletSourceControl.js')\n case 'Terminal':\n return import('../Viewlet/ViewletTerminal.js')\n case 'Debug Console':\n return import('../Viewlet/ViewletDebugConsole.js')\n case 'Extensions':\n return import('../Viewlet/ViewletExtensions.js')\n case 'Output':\n return import('../Viewlet/ViewletOutput.js')\n case 'Problems':\n return import('../Viewlet/ViewletProblems.js')\n case 'Noop':\n return import('../Viewlet/ViewletNoop.js')\n case 'EditorText':\n return import('../Viewlet/ViewletEditorText.js')\n case 'EditorPlainText':\n return import('../Viewlet/ViewletEditorPlainText.js')\n case 'EditorImage':\n return import('../Viewlet/ViewletEditorImage.js')\n case 'Clock':\n return import('../Viewlet/ViewletClock.js')\n case 'ActivityBar':\n return import('../Viewlet/ViewletActivityBar.js')\n case 'Panel':\n return import('../Viewlet/ViewletPanel.js')\n case 'SideBar':\n return import('../Viewlet/ViewletSideBar.js')\n case 'TitleBar':\n return import('../Viewlet/ViewletTitleBar.js')\n case 'StatusBar':\n return import('../Viewlet/ViewletStatusBar.js')\n case 'Main':\n return import('../Viewlet/ViewletMain.js')\n case 'EditorCompletion':\n return import('../Viewlet/ViewletEditorCompletion.js')\n case 'References':\n return import('../Viewlet/ViewletReferences.js')\n case 'Implementations':\n return import('../Viewlet/ViewletImplementations.js')\n default:\n // TODO use ErrorHandling.handleError instead\n throw new Error(`unknown viewlet: \"${id}\", ${id === 'Output'}`)\n }\n}\n\n/**\n *\n * @param {()=>any} getModule\n * @returns\n */\nexport const create = (\n getModule,\n id,\n parentId,\n uri,\n left,\n top,\n width,\n height\n) => {\n console.assert(typeof getModule === 'function')\n console.assert(typeof id === 'string')\n console.assert(typeof parentId === 'string')\n console.assert(typeof uri === 'string')\n console.assert(typeof left === 'number')\n console.assert(typeof top === 'number')\n console.assert(typeof width === 'number')\n console.assert(typeof height === 'number')\n return {\n type: 0,\n getModule,\n id,\n parentId,\n uri,\n left,\n top,\n width,\n height,\n }\n}\n\n// TODO add lots of unit tests for this\n/**\n *\n * @param {{getModule:()=>any, type:number, id:string, disposed:boolean }} viewlet\n * @returns\n */\nexport const load = async (viewlet, focus = false) => {\n // console.time(`load/${viewlet.id}`)\n if (viewlet.type !== 0) {\n console.log('viewlet must be empty')\n throw new Error('viewlet must be empty')\n }\n let state = VIEWLET_STATE_DEFAULT\n try {\n viewlet.type = 1\n if (viewlet.disposed) {\n return\n }\n\n const module = await viewlet.getModule(viewlet.id)\n if (viewlet.disposed) {\n return\n }\n state = VIEWLET_STATUS_MODULE_LOADED\n const viewletState = module.create(\n viewlet.id,\n viewlet.uri,\n viewlet.left,\n viewlet.top,\n viewlet.width,\n viewlet.height\n )\n\n const oldVersion =\n viewletState.version === undefined ? undefined : ++viewletState.version\n let newState = await module.loadContent(viewletState)\n if (viewletState.version !== oldVersion) {\n newState = viewletState\n console.log('version mismatch')\n // TODO not sure if Object.assign is a good idea\n // Object.assign(viewletState, newState)\n }\n if (viewlet.disposed) {\n return\n }\n state = VIEWLET_STATE_CONTENT_LOADED\n\n Viewlet.state.instances[viewlet.id] = { state: newState, factory: module }\n\n await RendererProcess.invoke(/* Viewlet.load */ 3030, /* id */ viewlet.id)\n if (viewlet.disposed) {\n // TODO unload the module from renderer process\n return\n }\n // TODO race condition: viewlet state may have been updated again in the mean time\n state = VIEWLET_STATE_RENDERER_PROCESS_VIEWLET_LOADED\n if (viewletState !== newState) {\n await module.contentLoaded(newState)\n }\n\n if (module.hasFunctionalRender) {\n const commands = module.render(viewletState, newState)\n for (const command of commands) {\n RendererProcess.send(command)\n }\n }\n\n if (module.contentLoadedEffects) {\n module.contentLoadedEffects(newState)\n }\n if (viewlet.disposed) {\n // TODO unload the module from renderer process\n return\n }\n state = VIEWLET_STATE_CONTENT_RENDERED\n if (viewlet.parentId) {\n await RendererProcess.invoke(\n /* Viewlet.append */ 3029,\n /* parentId */ viewlet.parentId,\n /* id */ viewlet.id,\n /* focus */ focus\n )\n }\n state = VIEWLET_STATE_APPENDED\n\n if (viewlet.disposed) {\n // TODO unload the module from renderer process\n return\n }\n } catch (error) {\n viewlet.type = 4\n console.error(error)\n try {\n if (state < VIEWLET_STATE_RENDERER_PROCESS_VIEWLET_LOADED) {\n await RendererProcess.invoke(\n /* Viewlet.load */ 3030,\n /* id */ viewlet.id\n )\n }\n if (state < VIEWLET_STATE_APPENDED && viewlet.parentId) {\n await RendererProcess.invoke(\n /* Viewlet.append */ 3029,\n /* parentId */ viewlet.parentId,\n /* id */ viewlet.id\n )\n }\n await RendererProcess.invoke(\n /* viewlet.handleError */ 3031,\n /* id */ viewlet.id,\n /* parentId */ viewlet.parentId,\n /* message */ error.message\n )\n } catch (error) {\n console.error(error)\n // this is really bad\n // probably can only show an alert at this point\n }\n }\n // console.timeEnd(`load/${viewlet.id}`)\n}\n\nexport const dispose = async (id) => {\n state[id].disposed = true\n delete Viewlet.state.instances[id]\n delete state[id]\n await RendererProcess.invoke(/* Viewlet.dispose */ 3026, /* id */ id)\n}\n\nexport const mutate = async (id, fn) => {\n // TODO handle race conditions here\n const viewletState = state[id]\n await fn(state)\n}\n","import * as Command from '../Command/Command.js'\nimport * as RendererProcess from '../RendererProcess/RendererProcess.js'\nimport * as Viewlet from '../Viewlet/Viewlet.js'\nimport * as ViewletManager from '../ViewletManager/ViewletManager.js'\n\n// TODO where to force rendering of contents (need to call sidebar.openViewlet somewhere)\n\nexport const state = {\n activityBarLeft: 0,\n activityBarTop: 0,\n activityBarWidth: 48,\n activityBarHeight: 0,\n activityBarVisible: true,\n mainLeft: 0,\n mainTop: 0,\n mainWidth: 0,\n mainHeight: 0,\n mainVisible: true,\n panelLeft: 0,\n panelTop: 0,\n panelWidth: 0,\n panelHeight: 160,\n panelVisible: false,\n sideBarLeft: 0,\n sideBarTop: 0,\n sideBarWidth: 240,\n sideBarHeight: 0,\n sideBarVisible: true,\n statusBarLeft: 0,\n statusBarTop: 0,\n statusBarWidth: 0,\n statusBarHeight: 0,\n statusBarVisible: true,\n titleBarLeft: 0,\n titleBarTop: 0,\n titleBarWidth: 0,\n titleBarHeight: 0,\n titleBarVisible: true,\n windowWidth: 0,\n windowHeight: 0,\n}\n\nconst SIDE_BAR_MIN_WIDTH = 170\nconst SIDE_BAR_MAX_WIDTH = Infinity\nconst PANEL_MIN_HEIGHT = 150\nconst PANEL_MAX_HEIGHT = 600\n\nconst clamp = (min, max, value) => {\n if (value < min) {\n return min\n }\n if (value > max) {\n return max\n }\n return value\n}\n\nexport const getPoints = (layout, bounds) => {\n const windowWidth = bounds.windowWidth\n const windowHeight = bounds.windowHeight\n const titleBarHeight = bounds.titleBarHeight || 20\n\n const activityBarVisible = layout.activityBarVisible\n const panelVisible = layout.panelVisible\n const sideBarVisible = layout.sideBarVisible\n const statusBarVisible = layout.statusBarVisible\n const titleBarVisible = layout.titleBarVisible\n\n const activityBarWidth = 48 // TODO put magic numbers somewhere\n const sideBarWidth = clamp(\n SIDE_BAR_MIN_WIDTH,\n SIDE_BAR_MAX_WIDTH,\n layout.sideBarWidth\n )\n\n const panelHeight = clamp(\n PANEL_MIN_HEIGHT,\n PANEL_MAX_HEIGHT,\n layout.panelHeight\n ) // TODO check that it is in bounds of window\n const statusBarHeight = 20\n\n const p1 = /* Top */ 0\n let p2 = /* End of Title Bar */ 0\n let p3 = /* End of Main */ 0\n let p4 = /* End of Panel */ 0\n const p5 = /* End of StatusBar */ windowHeight\n\n const p6 = /* Left */ 0\n let p7 = /* End of Main */ windowWidth - activityBarWidth\n let p8 = /* End of SideBar */ windowWidth\n const p9 = /* End of ActivityBar */ windowWidth\n if (titleBarVisible) {\n p2 = titleBarHeight\n }\n if (statusBarVisible) {\n p4 = windowHeight - statusBarHeight\n }\n p3 = panelVisible ? p4 - panelHeight : p4\n if (activityBarVisible) {\n p8 = windowWidth - activityBarWidth\n }\n if (sideBarVisible) {\n p7 = p8 - sideBarWidth\n }\n return {\n activityBarLeft: p8,\n activityBarTop: p2,\n activityBarWidth: 48,\n activityBarHeight: p4 - p2,\n activityBarVisible,\n mainLeft: p6,\n mainTop: p2,\n mainWidth: p7 - p6,\n mainHeight: p3 - p2,\n mainVisible: true,\n panelLeft: p6,\n panelTop: p3,\n panelWidth: p8 - p6,\n panelHeight: p4 - p3,\n panelVisible,\n sideBarLeft: p7,\n sideBarTop: p2,\n sideBarWidth: p8 - p7,\n sideBarHeight: p3 - p2,\n sideBarVisible,\n statusBarLeft: p1,\n statusBarTop: p4,\n statusBarWidth: windowWidth,\n statusBarHeight: 20,\n statusBarVisible,\n titleBarLeft: p6,\n titleBarTop: p1,\n titleBarWidth: windowWidth,\n titleBarHeight,\n titleBarVisible: true,\n windowWidth,\n windowHeight,\n }\n}\n\nexport const updateLayout = async (layout) => {\n const points = getPoints(layout, state)\n Object.assign(state, points)\n RendererProcess.invoke(/* Layout.update */ 1100, /* points */ points)\n await Command.execute(\n /* LocalStorage.setJson */ 6901,\n /* key */ 'layout',\n /* value */ state\n )\n}\n\nconst getDimensions = (state, id) => {\n switch (id) {\n case 'Main':\n return {\n top: state.mainTop,\n left: state.mainLeft,\n width: state.mainWidth,\n height: state.mainHeight,\n }\n case 'SideBar':\n return {\n top: state.sideBarTop,\n left: state.sideBarLeft,\n width: state.sideBarWidth,\n height: state.sideBarHeight,\n }\n case 'TitleBar':\n return {\n top: state.titleBarTop,\n left: state.titleBarLeft,\n width: state.titleBarWidth,\n height: state.titleBarHeight,\n }\n case 'Panel':\n return {\n top: state.panelTop,\n left: state.panelLeft,\n width: state.panelWidth,\n height: state.panelHeight,\n }\n case 'StatusBar':\n return {\n top: state.statusBarTop,\n left: state.statusBarLeft,\n width: state.statusBarWidth,\n height: state.statusBarHeight,\n }\n case 'ActivityBar':\n return {\n top: state.activityBarTop,\n left: state.activityBarLeft,\n width: state.activityBarWidth,\n height: state.activityBarHeight,\n }\n default:\n throw new Error('unexpected component')\n }\n}\n\nconst show = async (key, id) => {\n updateLayout({\n ...state,\n [key]: true,\n })\n const dimensions = getDimensions(state, id)\n const instance = ViewletManager.create(\n ViewletManager.getModule,\n id,\n '',\n 'builtin://',\n dimensions.left,\n dimensions.top,\n dimensions.width,\n dimensions.height\n )\n return ViewletManager.load(instance)\n}\n\nconst hide = async (key, id) => {\n updateLayout({\n ...state,\n [key]: false,\n })\n await Viewlet.dispose(id)\n}\n\nconst toggle = async (key, id) => {\n if (state[key]) {\n await hide(key, id)\n } else {\n await show(key, id)\n }\n}\n\n// TODO replace with one method in renderer process: setSideBarVisibility(true|false)\nexport const showSideBar = async () => {\n await show('sideBarVisible', 'SideBar')\n}\n\nexport const hideSideBar = async () => {\n await hide('sideBarVisible', 'SideBar')\n}\n\nexport const toggleSideBar = async () => {\n await toggle('sideBarVisible', 'SideBar')\n}\n\n// TODO replace with one method in renderer process: setPanelVisible(true|false)\n\nexport const showPanel = async () => {\n await show('panelVisible', 'Panel')\n}\n\nexport const hidePanel = async () => {\n await hide('panelVisible', 'Panel')\n}\n\nexport const togglePanel = async () => {\n await toggle('panelVisible', 'Panel')\n}\n\nexport const showMain = async () => {\n await show('mainVisible', 'Main')\n}\n\nexport const togglePart = (partId) => {\n switch (partId) {\n case /* SideBar */ 1:\n toggleSideBar()\n break\n case /* Panel */ 2:\n togglePanel()\n break\n default:\n break\n }\n}\n\nexport const isPanelVisible = () => {\n return state.panelVisible\n}\n\nexport const isSideBarVisible = () => {\n return state.sideBarVisible\n}\n\nexport const isVisible = (partId) => {\n switch (partId) {\n case /* SideBar */ 1:\n return isSideBarVisible()\n case /* Panel */ 2:\n return isPanelVisible()\n default:\n return false\n }\n}\n\n// TODO replace with one method in renderer process: setActivityBarVisible(true|false)\n\nexport const showActivityBar = async () => {\n await show('activityBarVisible', 'ActivityBar')\n}\n\nexport const hideActivityBar = async () => {\n await hide('activityBarVisible', 'ActivityBar')\n}\n\nexport const toggleActivityBar = async () => {\n await toggle('activityBarVisible', 'ActivityBar')\n}\n\nexport const showStatusBar = async () => {\n await show('statusBarVisible', 'StatusBar')\n}\n\nexport const hideStatusBar = async () => {\n await hide('statusBarVisible', 'StatusBar')\n}\n\nexport const toggleStatusBar = async () => {\n await toggle('statusBarVisible', 'StatusBar')\n}\n\nexport const showTitleBar = async () => {\n await show('titleBarVisible', 'TitleBar')\n}\n\nexport const hideTitleBar = async () => {\n await hide('titleBarVisible', 'TitleBar')\n}\n\nexport const toggleTitleBar = async () => {\n await toggle('titleBarVisible', 'TitleBar')\n}\n\nconst getBounds = async () => {\n return RendererProcess.invoke(/* Layout.getBounds */ 1111)\n}\n\nconst getInitialLayout = async () => {\n // TODO this is very similar to state\n const cachedLayout = await Command.execute(\n /* LocalStorage.getItem */ 6902,\n /* key */ 'layout'\n )\n if (cachedLayout) {\n return cachedLayout\n }\n return state\n}\n\nexport const hydrate = async () => {\n const windowBounds = await getBounds()\n const initialLayout = await getInitialLayout()\n const points = getPoints(initialLayout, windowBounds)\n Object.assign(state, points)\n await RendererProcess.invoke(/* Layout.show */ 1109, /* points */ points)\n}\n\nconst isChild = (id) => {\n return (\n id === 'Main' ||\n id === 'SideBar' ||\n id === 'ActivityBar' ||\n id === 'Panel' ||\n id === 'TitleBar'\n )\n}\n\n// TODO make this functional\nexport const handleSashSideBarMove = async (x) => {\n const newSideBarWidth = state.windowWidth - state.activityBarWidth - x\n if (newSideBarWidth <= SIDE_BAR_MIN_WIDTH / 2) {\n state.sideBarVisible = false\n state.mainWidth = state.windowWidth - state.activityBarWidth\n } else if (newSideBarWidth <= SIDE_BAR_MIN_WIDTH) {\n state.sideBarVisible = true\n state.sideBarWidth = SIDE_BAR_MIN_WIDTH\n state.mainWidth =\n state.windowWidth - state.activityBarWidth - SIDE_BAR_MIN_WIDTH\n state.sideBarLeft =\n state.windowWidth - state.activityBarWidth - SIDE_BAR_MIN_WIDTH\n } else {\n state.sideBarVisible = true\n state.mainWidth = x\n state.sideBarLeft = x\n state.sideBarWidth = newSideBarWidth\n }\n await updateLayout(state)\n}\n\n// TODO a bit unnecessary to send the same layout very often, but it avoids keeping state in renderer process\nexport const handleResize = async (bounds) => {\n const points = getPoints(state, bounds)\n Object.assign(state, points)\n await RendererProcess.invoke(/* Layout.update */ 1100, /* points */ points)\n const ids = ['Main', 'ActivityBar', 'SideBar', 'TitleBar', 'StatusBar']\n const resizeInstance = (id) => {\n const dimensions = getDimensions(state, id)\n return Viewlet.resize(id, dimensions)\n }\n const commands = ids.flatMap(resizeInstance)\n if (commands.length === 0) {\n return\n }\n // TODO send the whole batch at once\n for (const command of commands) {\n RendererProcess.send(command)\n }\n}\n","export const state = {\n listenerMap: Object.create(null),\n phase: 0,\n}\n\nexport const PHASE_ZERO = 0\nexport const PHASE_ONE = 1\nexport const PHASE_TWO = 2\nexport const PHASE_THREE = 3\nexport const PHASE_FOUR = 4\nexport const PHASE_FIVE = 5\nexport const PHASE_SIX = 6\nexport const PHASE_SEVEN = 7\nexport const PHASE_EIGHT = 8\nexport const PHASE_NINE = 9\nexport const PHASE_TEN = 10\nexport const PHASE_ELEVEN = 11\nexport const PHASE_TWELVE = 12\nexport const PHASE_THIRTEEN = 13\nexport const PHASE_FOURTEEN = 14\nexport const PHASE_FIFTEEN = 15\nexport const PHASE_SIXTEEN = 16\nexport const PHASE_SEVENTEEN = 17\n\nexport const once = (event, listener) => {\n if (state.phase >= event) {\n listener()\n } else {\n // TODO could also statically allocate listenermap at start as array[13]\n state.listenerMap[event] ||= []\n state.listenerMap[event].push(listener)\n }\n}\n\nexport const mark = (event) => {\n const listeners = state.listenerMap[event] || []\n for (const listener of listeners) {\n listener()\n }\n state.phase = event\n if (event === PHASE_TWELVE) {\n state.listenerMap = Object.create(null)\n }\n}\n","export const mark = (id) => {\n performance.mark(id)\n}\n\nexport const measure = (measureName, start, end) => {\n performance.measure(measureName, start, end)\n}\n","import * as GlobalEventBus from '../GlobalEventBus/GlobalEventBus.js'\nimport * as Viewlet from '../Viewlet/Viewlet.js'\n// import * as Main from '../Main/Main.js'\nimport * as Workspace from '../Workspace/Workspace.js'\nimport * as Json from '../Json/Json.js'\nimport * as Preferences from '../Preferences/Preferences.js'\n\nconst getStateToSave = () => {\n const instances = Viewlet.state.instances\n // const mainEditors = Main.state.editors\n return {\n instances,\n mainEditors: [],\n workspace: {\n path: Workspace.state.workspacePath,\n homeDir: Workspace.state.homeDir,\n pathSeparator: Workspace.state.pathSeparator,\n uri: Workspace.state.workspaceUri,\n },\n }\n}\n\nexport const hydrate = () => {\n // TODO should set up listener in renderer process\n if (!Preferences.get('workbench.saveStateOnVisibilityChange')) {\n // console.info(\n // '[info] not saving state on visibility change - disabled by settings'\n // )\n return\n }\n document.addEventListener('visibilitychange', () => {\n console.log('visibility changed')\n if (document.visibilityState === 'hidden') {\n const stateToSave = getStateToSave()\n localStorage.setItem('stateToSave', Json.stringify(stateToSave))\n sessionStorage.setItem('workspace', Json.stringify(stateToSave.workspace))\n }\n })\n}\n","import * as Platform from '../Platform/Platform.js'\nimport * as Preferences from '../Preferences/Preferences.js'\nimport * as RendererProcess from '../RendererProcess/RendererProcess.js'\n\nconst SERVICE_WORKER_URL = '/serviceWorker.js'\n\nexport const hydrate = async () => {\n if (Platform.getPlatform() === 'electron') {\n return\n }\n if (!Preferences.get('serviceWorker.enabled')) {\n return\n }\n try {\n await RendererProcess.invoke(\n /* ServiceWorker.register */ 43725,\n /* url */ SERVICE_WORKER_URL\n )\n } catch (error) {\n if (error.message === 'A Service Worker has been blocked for this domain') {\n // ignore\n } else {\n console.info(`service worker could not be registered: ${error}`)\n }\n }\n}\n\nexport const uninstall = async () => {\n if (Platform.getPlatform() === 'electron') {\n return\n }\n try {\n await RendererProcess.invoke(/* ServiceWorker.uninstall */ 42726)\n } catch (error) {\n console.info(`service worker could not be unregistered: ${error}`)\n }\n}\n","import * as FileSystem from '../FileSystem/FileSystem.js'\nimport * as GlobalEventBus from '../GlobalEventBus/GlobalEventBus.js'\nimport * as Json from '../Json/Json.js'\nimport * as Workspace from '../Workspace/Workspace.js'\n\n// TODO maybe put this together with workspace\n\nconst isValid = (recentlyOpened) => {\n return recentlyOpened && Array.isArray(recentlyOpened)\n}\n\nexport const getRecentlyOpened = async () => {\n try {\n const content = await FileSystem.readFile('app://recently-opened.json')\n const parsed = Json.parse(content)\n if (!isValid(parsed)) {\n return []\n }\n // TODO handle error gracefully if this is not an array of strings\n return parsed\n } catch (error) {\n // TODO should check for error.code\n if (error.message.includes('ENOENT')) {\n // ignore\n } else if (error.message.includes('failed to parse json')) {\n // ignore\n } else {\n error.message = `Failed to read recently opened: ${error.message}`\n console.warn(error)\n }\n return []\n }\n}\n\nconst setRecentlyOpened = async (newRecentlyOpened) => {\n const stringified = Json.stringify(newRecentlyOpened)\n await FileSystem.writeFile('app://recently-opened.json', stringified)\n}\n\nexport const clearRecentlyOpened = async () => {\n await setRecentlyOpened([])\n}\n\nconst getNewRecentlyOpened = (recentlyOpened, path) => {\n const index = recentlyOpened.indexOf(path)\n if (index === -1) {\n return [path, ...recentlyOpened]\n }\n return [\n path,\n ...recentlyOpened.slice(0, index),\n ...recentlyOpened.slice(index + 1),\n ]\n}\n\nexport const addToRecentlyOpened = async (path) => {\n const recentlyOpened = await getRecentlyOpened()\n const newRecentlyOpened = getNewRecentlyOpened(recentlyOpened, path)\n await setRecentlyOpened(newRecentlyOpened)\n}\n\nconst addWorkspacePathToRecentlyOpened = async () => {\n const workspacePath = Workspace.getWorkspacePath()\n if (!workspacePath) {\n return\n }\n // TODO add event listener that listens for workspace changes\n try {\n await addToRecentlyOpened(workspacePath)\n } catch {\n // ignore\n }\n}\n\n// TODO if it is somehow possible to make this more efficient\nexport const hydrate = async () => {\n await addWorkspacePathToRecentlyOpened()\n GlobalEventBus.addListener(\n 'workspace.change',\n addWorkspacePathToRecentlyOpened\n )\n}\n","import * as ColorTheme from '../ColorTheme/ColorTheme.js'\nimport * as IconTheme from '../IconTheme/IconTheme.js'\nimport * as KeyBindings from '../KeyBindings/KeyBindings.js'\nimport * as Layout from '../Layout/Layout.js'\nimport * as LifeCycle from '../LifeCycle/LifeCycle.js'\nimport * as Performance from '../Performance/Performance.js'\nimport * as Preferences from '../Preferences/Preferences.js'\nimport * as RendererProcess from '../RendererProcess/RendererProcess.js'\nimport * as SaveState from '../SaveState/SaveState.js'\nimport * as ServiceWorker from '../ServiceWorker/ServiceWorker.js'\nimport * as SharedProcess from '../SharedProcess/SharedProcess.js'\nimport * as Workspace from '../Workspace/Workspace.js'\nimport * as RecentlyOpened from '../RecentlyOpened/RecentlyOpened.js'\nimport * as Location from '../Location/Location.js'\n\n// TODO lazyload parts one by one (Main, SideBar, ActivityBar, TitleBar, StatusBar)\nexport const startup = async (config) => {\n LifeCycle.mark(LifeCycle.PHASE_ZERO)\n\n Performance.mark('willStartupWorkbench')\n RendererProcess.listen()\n SharedProcess.listen()\n\n LifeCycle.mark(LifeCycle.PHASE_ONE)\n\n Performance.mark('code/willLoadPreferences')\n await Preferences.hydrate()\n Performance.mark('code/didLoadPreferences')\n\n LifeCycle.mark(LifeCycle.PHASE_TWO)\n\n Performance.mark('code/willOpenWorkspace')\n await Workspace.hydrate()\n Performance.mark('code/didOpenWorkspace')\n\n LifeCycle.mark(LifeCycle.PHASE_THREE)\n\n Performance.mark('code/willLoadColorTheme')\n await ColorTheme.hydrate()\n Performance.mark('code/didLoadColorTheme')\n\n LifeCycle.mark(LifeCycle.PHASE_FOUR)\n\n Performance.mark('code/willShowLayout')\n await Layout.hydrate()\n Performance.mark('code/didShowLayout')\n\n LifeCycle.mark(LifeCycle.PHASE_FIVE)\n\n Performance.mark('code/willLoadMain')\n await Layout.showMain()\n Performance.mark('code/didLoadMain')\n\n LifeCycle.mark(LifeCycle.PHASE_SIX)\n\n Performance.mark('code/willLoadKeyBindings')\n await KeyBindings.hydrate()\n Performance.mark('code/didLoadKeyBindings')\n\n LifeCycle.mark(LifeCycle.PHASE_SEVEN)\n\n Performance.mark('code/willLoadSideBar')\n if (Layout.state.sideBarVisible) {\n await Layout.showSideBar()\n }\n Performance.mark('code/didLoadSideBar')\n\n LifeCycle.mark(LifeCycle.PHASE_EIGHT)\n\n Performance.mark('code/willLoadPanel')\n if (Layout.state.panelVisible) {\n await Layout.showPanel()\n }\n Performance.mark('code/didLoadPanel')\n\n LifeCycle.mark(LifeCycle.PHASE_NINE)\n\n Performance.mark('code/willLoadActivityBar')\n if (Layout.state.activityBarVisible) {\n await Layout.showActivityBar()\n }\n Performance.mark('code/didLoadActivityBar')\n\n LifeCycle.mark(LifeCycle.PHASE_TEN)\n\n Performance.mark('code/willLoadStatusBar')\n if (Layout.state.statusBarVisible) {\n await Layout.showStatusBar()\n }\n Performance.mark('code/didLoadStatusBar')\n\n LifeCycle.mark(LifeCycle.PHASE_ELEVEN)\n\n Performance.mark('code/willLoadIconTheme')\n // TODO check preferences if icon theme is enabled\n await IconTheme.hydrate()\n Performance.mark('code/didLoadIconTheme')\n\n LifeCycle.mark(LifeCycle.PHASE_TWELVE)\n\n LifeCycle.mark(LifeCycle.PHASE_THIRTEEN)\n\n LifeCycle.mark(LifeCycle.PHASE_FOURTEEN)\n\n Performance.mark('code/willLoadTitleBar')\n if (Layout.state.titleBarVisible) {\n await Layout.showTitleBar()\n }\n Performance.mark('code/didLoadTitleBar')\n\n LifeCycle.mark(LifeCycle.PHASE_FIFTEEN)\n\n Performance.mark('code/willLoadSaveState')\n await SaveState.hydrate()\n Performance.mark('code/didLoadSaveState')\n\n LifeCycle.mark(LifeCycle.PHASE_SIXTEEN)\n\n Performance.mark('code/willLoadRecentlyOpened')\n await RecentlyOpened.hydrate()\n Performance.mark('code/didLoadRecentlyOpened')\n\n // TODO tree shake out service worker in electron build\n\n Performance.mark('code/willLoadServiceWorker')\n await ServiceWorker.hydrate()\n Performance.mark('code/didLoadServiceWorker')\n\n Performance.mark('code/willLoadLocation')\n await Location.hydrate()\n Performance.mark('code/didLoadLocation')\n\n Performance.measure(\n 'code/loadKeyBindings',\n 'code/willLoadKeyBindings',\n 'code/didLoadKeyBindings'\n )\n Performance.measure(\n 'code/openWorkspace',\n 'code/willOpenWorkspace',\n 'code/didOpenWorkspace'\n )\n Performance.measure('code/loadMain', 'code/willLoadMain', 'code/didLoadMain')\n Performance.measure(\n 'code/loadSideBar',\n 'code/willLoadSideBar',\n 'code/didLoadSideBar'\n )\n Performance.measure(\n 'code/showLayout',\n 'code/willShowLayout',\n 'code/didShowLayout'\n )\n Performance.measure(\n 'code/loadPanel',\n 'code/willLoadPanel',\n 'code/didLoadPanel'\n )\n Performance.measure(\n 'code/loadActivityBar',\n 'code/willLoadActivityBar',\n 'code/didLoadActivityBar'\n )\n Performance.measure(\n 'code/loadStatusBar',\n 'code/willLoadStatusBar',\n 'code/didLoadStatusBar'\n )\n Performance.measure(\n 'code/loadPreferences',\n 'code/willLoadPreferences',\n 'code/didLoadPreferences'\n )\n Performance.measure(\n 'code/loadColorTheme',\n 'code/willLoadColorTheme',\n 'code/didLoadColorTheme'\n )\n Performance.measure(\n 'code/loadIconTheme',\n 'code/willLoadIconTheme',\n 'code/didLoadIconTheme'\n )\n}\n","import * as Workbench from './parts/Workbench/Workbench.js'\n\nconst main = async () => {\n await Workbench.startup({})\n}\n\nmain()\n","import * as RendererProcess from '../RendererProcess/RendererProcess.js'\n\nexport const state = {\n notifications: [],\n}\n\nexport const create = async (type, text) => {\n state.notifications.push({ type, text })\n await RendererProcess.invoke(\n /* Notification.create */ 991,\n /* type */ type,\n /* text */ text\n )\n}\n\nexport const showWithOptions = async (type, text, options) => {\n state.notifications.push({ type, text, options })\n console.log({ type, text, options })\n await RendererProcess.invoke(\n /* Notification.createWithOptions */ 993,\n /* type */ type,\n /* text */ text,\n /* options */ options\n )\n}\n\nexport const handleClick = (index) => {\n console.log('handle click')\n const notification = state.notifications[0]\n if (!notification.options) {\n throw new Error('notification has no options that can be clicked')\n }\n const option = notification.options[index]\n console.log({ notification, index, option })\n}\n\nexport const dispose = async (id) => {\n await RendererProcess.invoke(/* Notification.dispose */ 992, /* id */ id)\n}\n","import * as Command from '../Command/Command.js'\nimport * as Notification from './Notification.js'\n\nexport const __initialize__ = () => {\n Command.register(900, Notification.create)\n Command.register(901, Notification.dispose)\n Command.register(902, Notification.showWithOptions)\n Command.register(903, Notification.handleClick)\n}\n","import * as Command from '../Command/Command.js'\nimport * as RendererProcess from '../RendererProcess/RendererProcess.js'\nimport * as GlobalEventBus from '../GlobalEventBus/GlobalEventBus.js'\nimport * as Layout from '../Layout/Layout.js'\nimport * as Viewlet from './Viewlet.js'\n\nconst ACTIVITY_BAR_ITEM_HEIGHT = 48\n\nexport const name = 'ActivityBar'\n\n// TODO rename viewlet parameter to something else (e.g. clicking settings opens context menu not settings viewlet)\n// TODO should just pass index\n// then if item is viewlet -> open viewlet\n// else if item is settings -> open settings\n\n// TODO this should be create\n// TODO unregister listeners when hidden\n\nconst getNumberOfVisibleItems = (state) => {\n const numberOfVisibleItemsTop = Math.floor(\n state.height / ACTIVITY_BAR_ITEM_HEIGHT\n )\n return numberOfVisibleItemsTop\n}\n\nexport const getHiddenItems = (state) => {\n const numberOfVisibleItems = getNumberOfVisibleItems(state)\n const items = state.activityBarItems\n if (numberOfVisibleItems >= items.length) {\n return []\n }\n return state.activityBarItems.slice(numberOfVisibleItems - 2, -1)\n}\n\nconst getVisibleActivityBarItems = (state) => {\n const numberOfVisibleItems = getNumberOfVisibleItems(state)\n const items = state.activityBarItems\n if (numberOfVisibleItems >= items.length) {\n return items\n }\n const showMoreItem = {\n id: 'Additional Views',\n icon: 'icons/ellipsis.svg',\n enabled: true,\n flags: /* Button */ 2,\n keyShortCuts: '',\n }\n const visibleItems = [\n ...items.slice(0, numberOfVisibleItems - 2),\n showMoreItem,\n items.at(-1),\n ]\n return visibleItems\n}\n\nexport const create = (id, uri, left, top, width, height) => {\n return {\n // TODO declarative event api is good, but need to bind\n // listeners to state somehow\n // also the use of global event bus is not good\n // and this api is not strongly typed\n events: {\n 'SourceControl.changeBadgeCount': 8012,\n 'Layout.hideSideBar': 8014,\n 'SideBar.viewletChange': 8013,\n },\n activityBarItems: [],\n focusedIndex: -1,\n selectedIndex: -1,\n left,\n top,\n width,\n height,\n }\n}\n\nconst getActivityBarItems = () => {\n return [\n // Top\n {\n id: 'Explorer',\n icon: 'icons/files.svg',\n enabled: true,\n flags: /* Tab */ 1,\n keyShortcuts: 'Control+Shift+E',\n },\n {\n id: 'Search',\n icon: 'icons/search.svg',\n enabled: true,\n flags: /* Tab */ 1,\n keyShortcuts: 'Control+Shift+F',\n },\n {\n id: 'Source Control',\n icon: 'icons/source-control.svg',\n enabled: true,\n flags: /* Tab */ 1,\n keyShortcuts: 'Control+Shift+G',\n },\n {\n id: 'Run and Debug',\n icon: 'icons/debug-alt-2.svg',\n enabled: true,\n flags: /* Tab */ 1,\n keyShortcuts: 'Control+Shift+D',\n },\n {\n id: 'Extensions',\n icon: 'icons/extensions.svg',\n enabled: true,\n flags: /* Tab */ 1,\n keyShortcuts: 'Control+Shift+X',\n },\n // Bottom\n {\n id: 'Settings',\n icon: 'icons/settings-gear.svg',\n enabled: true,\n flags: /* Button */ 2,\n keyShortcuts: '',\n },\n ]\n}\n\nexport const loadContent = async (state) => {\n const activityBarItems = getActivityBarItems()\n const sideBar = Viewlet.state.instances.SideBar\n const viewletId =\n sideBar && sideBar.state ? sideBar.state.currentViewletId : ''\n const selectedIndex = findIndex(activityBarItems, viewletId)\n return {\n ...state,\n selectedIndex,\n activityBarItems,\n }\n}\n\nexport const contentLoaded = async (state) => {}\n\nexport const contentLoadedEffects = (state) => {\n // TODO\n GlobalEventBus.addListener(\n 'SourceControl.changeBadgeCount',\n updateSourceControlCount\n )\n GlobalEventBus.addListener('Layout.hideSideBar', handleSideBarHidden)\n GlobalEventBus.addListener('SideBar.viewletChange', (id) =>\n handleSideBarViewletChange(state, id)\n )\n}\n\nexport const dispose = () => {\n GlobalEventBus.removeListener(\n 'SourceControl.changeBadgeCount',\n updateSourceControlCount\n )\n GlobalEventBus.removeListener('Layout.hideSideBar', handleSideBarHidden)\n GlobalEventBus.removeListener(\n 'SideBar.viewletChange',\n handleSideBarViewletChange\n )\n}\n\nconst findIndex = (activityBarItems, id) => {\n for (let i = 0; i < activityBarItems.length; i++) {\n if (activityBarItems[i].id === id) {\n return i\n }\n }\n return -1\n}\n\nexport const handleClick = async (state, index, x, y) => {\n const viewletId = state.activityBarItems[index].id\n switch (viewletId) {\n case 'Settings':\n console.log('is settings')\n await Command.execute(\n /* ContextMenu.show */ 951,\n /* x */ x,\n /* y */ y,\n /* id */ 'settings'\n )\n break\n case 'Additional Views':\n await Command.execute(\n /* ContextMenu.show */ 951,\n /* x */ x,\n /* y */ y,\n /* id */ 'activity-bar-additional-views'\n )\n break\n default:\n if (Layout.isSideBarVisible()) {\n await Command.execute(\n /* SideBar.showOrHideViewlet */ 553,\n /* id */ viewletId\n )\n } else {\n // TODO should show side bar with viewletId\n await Layout.showSideBar()\n }\n break\n }\n return state\n}\n\nexport const handleSideBarViewletChange = async (state, id, ...args) => {\n const index = findIndex(state.activityBarItems, id)\n const oldIndex = state.selectedIndex\n state.selectedIndex = index\n await RendererProcess.invoke(\n /* Viewlet.invoke */ 3024,\n /* id */ 'ActivityBar',\n /* method */ 'selectIndex',\n /* oldIndex */ oldIndex,\n /* newIndex */ index\n )\n}\n\nexport const handleSideBarHidden = async (state) => {\n const oldIndex = state.focusedIndex\n state.focusedIndex = -1\n await RendererProcess.invoke(\n /* Viewlet.invoke */ 3024,\n /* id */ 'ActivityBar',\n /* method */ 'selectIndex',\n /* oldIndex */ oldIndex,\n /* newIndex */ -1\n )\n}\n\nexport const updateSourceControlCount = async (state, count) => {\n if (count === 0) {\n return\n }\n const index = state.activityBarItems.findIndex(\n (item) => item.id === 'Source Control'\n )\n if (index === -1) {\n return\n }\n await RendererProcess.invoke(\n /* Viewlet.invoke */ 3024,\n /* id */ 'ActivityBar',\n /* method */ 'setBadgeCount',\n /* index */ index,\n /* count */ count\n )\n\n // TODO send count to renderer process (if activity bar is visible)\n}\n\nexport const toggleItem = (context, item) => {\n // const item = activityBarFindItem(id)\n}\n\nconst isEnabled = (activityBarItem) => {\n return activityBarItem.enabled\n}\n\nexport const toggleActivityBarItem = async (state, item) => {\n const activityBarItem = state.activityBarItems.find(\n (activityBarItem) => activityBarItem.id === item.label\n )\n activityBarItem.enabled = !activityBarItem.enabled\n await RendererProcess.invoke(\n /* Viewlet.invoke */ 3024,\n /* id */ 'ActivityBar',\n /* method */ 'setItems',\n /* items */ state.activityBarItems.filter(isEnabled),\n /* index */ state.selectedIndex\n )\n}\n\nexport const handleContextMenu = async (state, x, y) => {\n await Command.execute(\n /* ContextMenu.show */ 951,\n /* x */ x,\n /* y */ y,\n /* id */ 'activityBar'\n )\n return state\n}\n\nexport const focusIndex = (state, index) => {\n return {\n ...state,\n focusedIndex: index,\n }\n}\n\nexport const focus = (state) => {\n const indexToFocus = state.focusedIndex === -1 ? 0 : state.focusedIndex\n return focusIndex(state, indexToFocus)\n}\n\nexport const focusNext = (state) => {\n // TODO can never be -1 -> always set when sidebar changes\n if (state.focusedIndex === state.activityBarItems.length - 1) {\n return state\n }\n return focusIndex(state, state.focusedIndex + 1)\n}\n\nexport const focusPrevious = (state) => {\n if (state.focusedIndex === 0) {\n return state\n }\n return focusIndex(state, state.focusedIndex - 1)\n}\n\nexport const focusFirst = (state) => {\n return focusIndex(state, 0)\n}\n\nexport const focusLast = (state) => {\n return focusIndex(state, state.activityBarItems.length - 1)\n}\n\nconst getPosition = (state, index) => {\n if (index > state.activityBarItems.length - 2) {\n // at bottom\n return {\n x: state.left,\n y:\n state.top +\n state.height -\n (state.activityBarItems.length - 1 - index) * ACTIVITY_BAR_ITEM_HEIGHT,\n }\n } else {\n // at top\n return {\n x: state.left,\n y: state.top + index * ACTIVITY_BAR_ITEM_HEIGHT,\n }\n }\n}\n\nexport const selectCurrent = async (state) => {\n if (state.focusedIndex === -1) {\n return\n }\n const position = getPosition(state, state.focusedIndex)\n await handleClick(state, state.focusedIndex, position.x, position.y)\n}\n\nexport const resize = (state, dimensions) => {\n const newState = {\n ...state,\n ...dimensions,\n }\n const visibleItems = getVisibleActivityBarItems(newState)\n const commands = [\n [\n /* Viewlet.send */ 3024,\n /* id */ 'ActivityBar',\n /* method */ 'setItems',\n /* items */ visibleItems,\n /* selectedIndex */ newState.selectedIndex,\n ],\n ]\n return {\n newState,\n commands,\n }\n}\n\nexport const render = (oldState, newState) => {\n const changes = []\n if (oldState === newState) {\n return changes\n }\n if (\n oldState.activityBarItems !== newState.activityBarItems ||\n oldState.height !== newState.height\n ) {\n const visibleItems = getVisibleActivityBarItems(newState)\n changes.push([\n /* Viewlet.send */ 3024,\n /* id */ 'ActivityBar',\n /* method */ 'setItems',\n /* items */ visibleItems,\n ])\n }\n if (oldState.focusedIndex !== newState.focusedIndex) {\n changes.push([\n /* Viewlet.send */ 3024,\n /* id */ 'ActivityBar',\n /* method */ 'setFocusedIndex',\n /* unFocusIndex */ oldState.focusedIndex,\n /* focusIndex */ newState.focusedIndex,\n ])\n }\n return changes\n}\n\nexport const hasFunctionalRender = true\n","import * as Command from '../Command/Command.js'\nimport * as Viewlet from '../Viewlet/Viewlet.js'\nimport * as ActivityBar from './ViewletActivityBar.js'\n\nexport const __initialize__ = () => {\n Command.register(8000, Viewlet.wrapViewletCommand('ActivityBar', ActivityBar.toggleItem))\n Command.register(8001, Viewlet.wrapViewletCommand('ActivityBar', ActivityBar.handleClick))\n Command.register(8002, Viewlet.wrapViewletCommand('ActivityBar', ActivityBar.handleContextMenu))\n Command.register(8003, Viewlet.wrapViewletCommand('ActivityBar', ActivityBar.focus))\n Command.register(8004, Viewlet.wrapViewletCommand('ActivityBar', ActivityBar.focusNext))\n Command.register(8005, Viewlet.wrapViewletCommand('ActivityBar', ActivityBar.focusPrevious))\n Command.register(8006, Viewlet.wrapViewletCommand('ActivityBar', ActivityBar.focusFirst))\n Command.register(8007, Viewlet.wrapViewletCommand('ActivityBar', ActivityBar.focusLast))\n Command.register(8008, Viewlet.wrapViewletCommand('ActivityBar', ActivityBar.selectCurrent))\n Command.register(8010, Viewlet.wrapViewletCommand('ActivityBar', ActivityBar.getItems))\n Command.register(8011, Viewlet.wrapViewletCommand('ActivityBar', ActivityBar.getHiddenItems))\n Command.register(8012, Viewlet.wrapViewletCommand('ActivityBar', ActivityBar.updateSourceControlCount))\n Command.register(8013, Viewlet.wrapViewletCommand('ActivityBar', ActivityBar.handleSideBarViewletChange))\n Command.register(8014, Viewlet.wrapViewletCommand('ActivityBar', ActivityBar.handleSideBarHidden))\n}\n","import * as Command from '../Command/Command.js'\nimport * as Window from './Window.js'\n\nexport const __initialize__ = () => {\n Command.register(8080, Window.reload)\n Command.register(8081, Window.minimize)\n Command.register(8082, Window.maximize)\n Command.register(8083, Window.unmaximize)\n Command.register(8084, Window.close)\n Command.register(8085, Window.makeScreenshot)\n Command.register(8086, Window.openNew)\n Command.register(8087, Window.exit)\n}\n","import * as Command from '../Command/Command.js'\nimport * as Languages from '../Languages/Languages.js'\nimport * as LifeCycle from '../LifeCycle/LifeCycle.js'\nimport * as Platform from '../Platform/Platform.js'\nimport * as RendererProcess from '../RendererProcess/RendererProcess.js'\nimport * as SharedProcess from '../SharedProcess/SharedProcess.js'\nimport * as ViewletManager from '../ViewletManager/ViewletManager.js'\nimport * as Workspace from '../Workspace/Workspace.js'\nimport * as Viewlet from './Viewlet.js'\nimport * as Assert from '../Assert/Assert.js'\n\nconst COLUMN_WIDTH = 9 // TODO compute this automatically once\n\n// interface Editor {\n// readonly uri: string\n// readonly type: string\n// }\n\n// interface EditorLazy {\n// readonly type: 'lazy'\n// }\n\n// interface EditorText extends Editor {\n// readonly textDocument: TextDocument\n// readonly type: 'text'\n// }\n\n// interface EditorIframe extends Editor {\n// readonly srcdoc: string\n// readonly type: 'iframe'\n// }\n\n// interface EditorImage extends Editor {\n// readonly src: string\n// readonly type: 'image'\n// }\n\n// interface EditorVideo extends Editor {\n// readonly src: string\n// readonly type: 'video'\n// }\n\nconst getMainEditor = (state) => {\n if (\n !state ||\n !state.instances ||\n !state.instances.EditorText ||\n !state.instances.EditorText.state\n ) {\n return undefined\n }\n // TODO check that type is string (else runtime error occurs and page is blank)\n return state.instances.EditorText.state\n}\n\nconst restoreEditors = async (state) => {\n // // TODO have mapping that loads custom editor module on demand\n // // file:// -> import text editor\n // // perf://startup-performance -> show startup performance\n // // perf://memory-usage -> show memory usage\n // // svg://my-file.svg -> show svg\n // // image://my-image.png -> show image\n // // video://my-video.png -> show video\n // // also editor title can be shown while content is still loading\n // if (restoredEditor.uri.startsWith('perf://')) {\n // Command.execute(/* Developer.openPerf */ 820)\n // return\n // }\n await openUri(state, restoredEditor.uri)\n}\n\nconst handleTokenizeChange = (languageId) => {\n const instances = Viewlet.state.instances\n if (instances.EditorText) {\n const instance = instances.EditorText\n }\n // for (const editor of state.editors) {\n // if (editor.languageId === languageId) {\n // Editor.handleTokenizeChange(editor)\n // }\n // }\n}\n\nconst hydrateLazy = async () => {\n // TODO main should not know about languages\n await Languages.hydrate()\n // TODO this should be in extension host\n await Command.execute(/* EditorDiagnostics.hydrate */ 8786)\n}\n\nexport const name = 'Main'\n\nexport const create = (id, uri, left, top, width, height) => {\n return {\n editors: [],\n activeIndex: -1,\n focusedIndex: -1,\n left,\n top,\n width,\n height,\n }\n}\n\n// const showEditor = async (uri, languageId, content) => {\n// if (state.activeEditor) {\n// // TODO duplicate code in if/else\n// // state.editors = [state.activeEditor]\n// // Editor.replaceOne(state.activeEditor, uri, languageId, content)\n// // TODO replace editor\n// } else {\n// // state.activeEditor = Editor.create(1, uri, languageId, content)\n// // state.editors = [state.activeEditor]\n// // Editor.openOne(state.activeEditor)\n// // TODO create editor group and new editor\n// }\n\n// // TODO send type of editor\n// // 1 normal\n// // 2 side by side (settings.json, git diff, preview)\n// // 3 image\n// // 4 video\n// // 5 iframe (maybe 3/4 could also be iframe)\n// // Editor.initialSync(state.activeEditor)\n\n// // TODO use idlecallback maybe (after 350ms or something)\n// // TODO maybe use indexeddb instead\n// // TODO store all open editors\n// // await Command.execute(/* LocalStorage.setJson */ 6901, 'Main.editors', [uri])\n// }\n\n// TODO there is also openEditor function\n\nconst getTabTitle = (uri) => {\n const homeDir = Workspace.getHomeDir()\n // TODO tree shake this out in web\n if (homeDir && uri.startsWith(homeDir)) {\n return `~${uri.slice(homeDir.length)}`\n }\n return uri\n}\n\nconst findEditorWithUri = (editors, uri) => {\n for (const [i, editor] of editors.entries()) {\n if (editor.uri === uri) {\n return i\n }\n }\n return -1\n}\n\nconst TAB_HEIGHT = 35\nconst id = 'EditorText'\n\nconst getRestoredEditors = async () => {\n const savedState = await Command.execute(\n /* LocalStorage.getItem */ 6902,\n /* key */ 'stateToSave'\n )\n const restoredEditor = getMainEditor(savedState)\n if (!restoredEditor) {\n return []\n }\n return [restoredEditor]\n}\n\nexport const loadContent = async (state) => {\n const editors = await getRestoredEditors()\n LifeCycle.once(LifeCycle.PHASE_TWELVE, hydrateLazy)\n return {\n ...state,\n editors,\n }\n}\n\nexport const contentLoaded = async (state) => {\n if (state.editors.length === 0) {\n return\n }\n const editor = state.editors[0]\n const top = state.top + TAB_HEIGHT\n const left = state.left\n const width = state.width\n const height = state.height - TAB_HEIGHT\n const instance = ViewletManager.create(\n ViewletManager.getModule,\n id,\n 'Main',\n editor.uri,\n left,\n top,\n width,\n height\n )\n const tabLabel = Workspace.pathBaseName(editor.uri)\n const tabTitle = getTabTitle(editor.uri)\n RendererProcess.send([\n /* Viewlet.send */ 3024,\n /* id */ 'Main',\n /* method */ 'openViewlet',\n /* id */ id,\n /* tabLabel */ tabLabel,\n /* tabTitle */ tabTitle,\n ])\n // TODO race condition: Viewlet may have been resized before it has loaded\n await ViewletManager.load(instance)\n}\n\nexport const openUri = async (state, uri) => {\n Assert.object(state)\n Assert.string(uri)\n const top = state.top + TAB_HEIGHT\n const left = state.left\n const width = state.width\n const height = state.height - TAB_HEIGHT\n\n for (const editor of state.editors) {\n if (editor.uri === uri) {\n const instance = ViewletManager.create(\n ViewletManager.getModule,\n id,\n 'Main',\n uri,\n left,\n top,\n width,\n height\n )\n await ViewletManager.load(instance)\n return\n }\n }\n const instance = ViewletManager.create(\n ViewletManager.getModule,\n id,\n 'Main',\n uri,\n left,\n top,\n width,\n height\n )\n const oldActiveIndex = state.activeIndex\n state.editors.push({ uri })\n state.activeIndex = state.editors.length - 1\n const tabLabel = Workspace.pathBaseName(uri)\n const tabTitle = getTabTitle(uri)\n RendererProcess.send([\n /* Viewlet.send */ 3024,\n /* id */ 'Main',\n /* method */ 'openViewlet',\n /* id */ id,\n /* tabLabel */ tabLabel,\n /* tabTitle */ tabTitle,\n /* oldActiveIndex */ oldActiveIndex,\n ])\n return ViewletManager.load(instance)\n}\n\nexport const save = () => {\n // TODO handle different types of editors / custom editors / webviews\n Command.execute(/* EditorSave.editorSave */ 378)\n}\n\n// const getEditor = (uri) => {\n// const protocol = 'file://' + uri.slice(0, 0)\n// switch (protocol) {\n// case 'file://':\n// // TODO open normal editor\n// break\n// case 'performance://monitor':\n// return import('../EditorPerformance.js')\n// case 'performance://startup':\n// return import('../EditorPerformanceStartup.js')\n// default:\n// // ask extension host for custom editor\n// break\n// }\n// }\n\nexport const openEditorWithType = async (file) => {\n // TODO resolve custom editors from extension host\n // then open extension host custom editor or normal editor\n}\n\nexport const saveWithoutFormatting = async () => {\n console.warn('not implemented')\n}\n\nexport const handleDrop = async () => {\n console.log(['main drop'])\n const clipBoardText = await SharedProcess.invoke(\n /* ClipBoard.read */ 'ClipBoard.read'\n )\n console.log({ clipBoardText })\n}\n\nexport const closeActiveEditor = (state) => {\n if (!state.activeEditor) {\n }\n}\n\nexport const closeAllEditors = (state) => {\n RendererProcess.send([\n /* Viewlet.send */ 3024,\n /* id */ 'Main',\n /* method */ 'dispose',\n ])\n state.editors = []\n state.focusedIndex = -1\n state.selectedIndex = -1\n // TODO should call dispose method, but only in renderer-worker\n delete Viewlet.state.instances.EditorText\n}\n\nexport const dispose = () => {}\n\nexport const closeEditor = async (state, index) => {\n if (state.editors.length === 1) {\n closeAllEditors(state)\n return\n }\n const top = state.top\n const left = state.left\n const width = state.width\n const height = state.height\n if (index === state.activeIndex) {\n const oldActiveIndex = state.activeIndex\n state.editors.splice(index, 1)\n const newActiveIndex = index === 0 ? index : index - 1\n Viewlet.dispose('EditorText')\n state.activeIndex = newActiveIndex\n state.focusedIndex = newActiveIndex\n // const instance = Viewlet.create(id, 'uri', left, top, width, height)\n // TODO ideally content would load synchronously and there would be one layout and one paint for opening the new tab\n // except in the case where the content takes long (>100ms) to load, then it should show the tab\n // and for the content a loading spinner or (preferred) a progress bar\n // that it replaced with the actual content once it has been loaded\n // await instance.factory.refresh(instance.state, {\n // uri: previousEditor.uri,\n // top: instance.state.top,\n // left: instance.state.left,\n // height: instance.state.height,\n // columnWidth: COLUMN_WIDTH,\n // })\n RendererProcess.send([\n /* Main.closeOneTab */ 2164,\n /* closeIndex */ oldActiveIndex,\n /* focusIndex */ newActiveIndex,\n ])\n return\n }\n RendererProcess.send([\n /* Viewlet.send */ 3024,\n /* id */ 'Main',\n /* method */ 'closeOneTabOnly',\n /* closeIndex */ index,\n ])\n state.editors.splice(index, 1)\n if (index < state.activeIndex) {\n state.activeIndex--\n }\n state.focusedIndex = state.activeIndex\n\n // TODO just close the tab\n}\n\nexport const closeFocusedTab = (state) => {\n closeEditor(state.focusedIndex)\n}\n\nexport const handleTabContextMenu = async (state, index, x, y) => {\n state.focusedIndex = index\n await Command.execute(\n /* ContextMenu.show */ 951,\n /* x */ x,\n /* y */ y,\n /* id */ 'tab'\n )\n}\n\nexport const focusIndex = (state, index) => {\n if (index === state.activeIndex) {\n console.log('index', index, ' is already active index')\n return\n }\n const oldActiveIndex = state.activeIndex\n state.activeIndex = index\n\n const editor = state.editors[index]\n const top = state.top + TAB_HEIGHT\n const left = state.left\n const width = state.width\n const height = state.height - TAB_HEIGHT\n\n const viewlet = ViewletManager.create(\n ViewletManager.getModule,\n id,\n 'Main',\n editor.uri,\n left,\n top,\n width,\n height\n )\n\n // TODO race condition\n RendererProcess.send([\n /* Viewlet.send */ 3024,\n /* id */ 'Main',\n /* method */ 'focusAnotherTab',\n /* unFocusIndex */ oldActiveIndex,\n /* focusIndex */ state.activeIndex,\n ])\n return ViewletManager.load(viewlet)\n}\n\nexport const focusFirst = (state) => {\n return focusIndex(state, 0)\n}\n\nexport const focusLast = (state) => {\n return focusIndex(state, state.editors.length - 1)\n}\n\nexport const focusPrevious = (state) => {\n const previousIndex =\n state.activeIndex === 0 ? state.editors.length - 1 : state.activeIndex - 1\n return focusIndex(state, previousIndex)\n}\n\nexport const focusNext = (state) => {\n const nextIndex =\n state.activeIndex === state.editors.length - 1 ? 0 : state.activeIndex + 1\n return focusIndex(state, nextIndex)\n}\n\nexport const handleTabClick = (state, index) => {\n console.log('focus index', index)\n return focusIndex(state, index)\n}\n\nexport const closeOthers = async (state) => {\n if (state.focusedIndex === state.activeIndex) {\n // view is kept the same, only tabs are closed\n RendererProcess.send([\n /* Viewlet.send */ 3024,\n /* id */ 'Main',\n /* method */ 'closeOthers',\n /* keepIndex */ state.focusedIndex,\n /* focusIndex */ state.focusedIndex,\n ])\n } else {\n // view needs to be switched to focused index\n RendererProcess.send([\n /* Viewlet.send */ 3024,\n /* id */ 'Main',\n /* method */ 'closeOthers',\n /* keepIndex */ state.focusedIndex,\n /* focusIndex */ state.focusedIndex,\n ])\n }\n state.editors = [state.editors[state.focusedIndex]]\n state.activeIndex = 0\n state.focusedIndex = 0\n}\n\nexport const closeTabsRight = async (state) => {\n if (state.focusedIndex >= state.activeIndex) {\n // view is kept the same, only tabs are closed\n RendererProcess.send([\n /* Viewlet.send */ 3024,\n /* id */ 'Main',\n /* method */ 'closeTabsRight',\n /* index */ state.focusedIndex,\n ])\n } else {\n // view needs to be switched to focused index\n RendererProcess.send([\n /* Viewlet.send */ 3024,\n /* id */ 'Main',\n /* method */ 'closeTabsRight',\n /* index */ state.focusedIndex,\n ])\n }\n state.editors = state.editors.slice(0, state.focusedIndex + 1)\n state.activeIndex = state.focusedIndex\n}\n\nexport const closeTabsLeft = async (state) => {\n if (state.focusedIndex <= state.activeIndex) {\n // view is kept the same, only tabs are closed\n RendererProcess.send([\n /* Viewlet.send */ 3024,\n /* id */ 'Main',\n /* method */ 'closeTabsLeft',\n /* index */ state.focusedIndex,\n ])\n } else {\n // view needs to be switched to focused index\n RendererProcess.send([\n /* Viewlet.send */ 3024,\n /* id */ 'Main',\n /* method */ 'closeTabsLeft',\n /* index */ state.focusedIndex,\n ])\n }\n state.editors = state.editors.slice(state.focusedIndex)\n state.activeIndex = state.focusedIndex\n}\n\nexport const resize = (state, dimensions) => {\n const top = dimensions.top + TAB_HEIGHT\n const left = dimensions.left\n const width = dimensions.width\n const height = dimensions.height - TAB_HEIGHT\n const childDimensions = {\n top,\n left,\n width,\n height,\n }\n const commands = Viewlet.resize('EditorText', childDimensions)\n return {\n newState: {\n ...state,\n ...dimensions,\n },\n commands,\n }\n}\n","import * as Command from '../Command/Command.js'\nimport * as Viewlet from '../Viewlet/Viewlet.js'\nimport * as ViewletMain from './ViewletMain.js'\n\nexport const __initialize__ = () => {\n Command.register(89, Viewlet.wrapViewletCommand('Main', ViewletMain.save))\n Command.register(92, Viewlet.wrapViewletCommand('Main', ViewletMain.handleDrop))\n Command.register(93, Viewlet.wrapViewletCommand('Main', ViewletMain.closeActiveEditor))\n Command.register(94, Viewlet.wrapViewletCommand('Main', ViewletMain.closeAllEditors))\n Command.register(95, Viewlet.wrapViewletCommand('Main', ViewletMain.handleTabContextMenu))\n Command.register(96, Viewlet.wrapViewletCommand('Main', ViewletMain.hydrate))\n Command.register(97, Viewlet.wrapViewletCommand('Main', ViewletMain.openUri))\n Command.register(99, Viewlet.wrapViewletCommand('Main', ViewletMain.closeEditor))\n Command.register(100, Viewlet.wrapViewletCommand('Main', ViewletMain.handleTabClick))\n Command.register(101, Viewlet.wrapViewletCommand('Main', ViewletMain.focusFirst))\n Command.register(102, Viewlet.wrapViewletCommand('Main', ViewletMain.focusLast))\n Command.register(103, Viewlet.wrapViewletCommand('Main', ViewletMain.focusPrevious))\n Command.register(104, Viewlet.wrapViewletCommand('Main', ViewletMain.focusNext))\n Command.register(105, Viewlet.wrapViewletCommand('Main', ViewletMain.closeFocusedTab))\n Command.register(106, Viewlet.wrapViewletCommand('Main', ViewletMain.closeOthers))\n Command.register(107, Viewlet.wrapViewletCommand('Main', ViewletMain.closeTabsRight))\n Command.register(108, Viewlet.wrapViewletCommand('Main', ViewletMain.closeTabsLeft))\n}\n","const getModule = (id) => {\n switch (id) {\n case 'activityBar':\n return import('./MenuEntriesActivityBar.js')\n case 'edit':\n return import('./MenuEntriesEdit.js')\n case 'editor':\n return import('./MenuEntriesEditor.js')\n case 'explorer':\n return import('./MenuEntriesExplorer.js')\n case 'file':\n return import('./MenuEntriesFile.js')\n case 'go':\n return import('./MenuEntriesGo.js')\n case 'help':\n return import('./MenuEntriesHelp.js')\n case 'manageExtension':\n return import('./MenuEntriesManageExtension.js')\n case 'openRecent':\n return import('./MenuEntriesOpenRecent.js')\n case 'run':\n return import('./MenuEntriesRun.js')\n case 'selection':\n return import('./MenuEntriesSelection.js')\n case 'settings':\n return import('./MenuEntriesSettings.js')\n case 'tab':\n return import('./MenuEntriesTab.js')\n case 'terminal':\n return import('./MenuEntriesTerminal.js')\n case 'titleBar':\n return import('./MenuEntriesTitleBar.js')\n case 'view':\n return import('./MenuEntriesView.js')\n case 'activity-bar-additional-views':\n return import('./MenuEntriesActivityBarAdditionalViews.js')\n default:\n throw new Error(`module not found \"${id}\"`)\n }\n}\n\nexport const getMenuEntries = async (id) => {\n const module = await getModule(id)\n return module.getMenuEntries()\n}\n","import * as RendererProcess from '../RendererProcess/RendererProcess.js'\nimport * as Command from '../Command/Command.js'\n// TODO lazyload menuEntries and use Command.execute (maybe)\nimport * as MenuEntries from '../MenuEntries/MenuEntries.js'\nimport * as Layout from '../Layout/Layout.js'\n\nexport const state = {\n menus: [],\n latestTimeStamp: 0,\n enterTimeout: -1,\n}\n\nconst MENU_WIDTH = 150\n\nconst CONTEXT_MENU_ITEM_HEIGHT = 28\nconst CONTEXT_MENU_SEPARATOR_HEIGHT = 6\nconst CONTEXT_MENU_PADDING = 20\nconst CONTEXT_MENU_WIDTH = 250\n\nexport const getMenuWidth = () => {\n return CONTEXT_MENU_WIDTH\n}\n\nexport const getMenuHeight = (items) => {\n let height = CONTEXT_MENU_PADDING\n for (const item of items) {\n switch (item.flags) {\n case /* ContextMenuItemSeparator */ 1:\n height += CONTEXT_MENU_SEPARATOR_HEIGHT\n break\n default:\n height += CONTEXT_MENU_ITEM_HEIGHT\n break\n }\n }\n return height\n}\n\nconst getCurrentMenu = () => {\n if (state.menus.length === 0) {\n console.warn('menu not available')\n }\n return state.menus.at(-1)\n}\n\nexport const addMenuInternal = (menu) => {\n if (state.menus.length > 5) {\n throw new Error('too many menus')\n }\n state.menus.push(menu)\n return menu\n}\n\nexport const addRootMenuInternal = (menu) => {\n state.menus = [menu]\n return menu\n}\n\nconst getMenuBounds = (x, y, items) => {\n const menuWidth = CONTEXT_MENU_WIDTH\n const menuHeight = getMenuHeight(items)\n\n const windowWidth = Layout.state.windowWidth\n const windowHeight = Layout.state.windowHeight\n // TODO maybe only send labels and keybindings to ui (id not needed on ui)\n // TODO what about separators?\n\n if (x + menuWidth > windowWidth) {\n x -= menuWidth\n }\n if (y + menuHeight > windowHeight) {\n y -= menuHeight\n }\n\n return {\n x,\n y,\n width: menuWidth,\n height: menuHeight,\n }\n}\n\nexport const show = async (x, y, id, mouseBlocking = false) => {\n const items = await MenuEntries.getMenuEntries(id)\n const bounds = getMenuBounds(x, y, items)\n const menu = addMenuInternal({\n id,\n items,\n focusedIndex: -1,\n level: state.menus.length,\n x: bounds.x,\n y: bounds.y,\n })\n await RendererProcess.invoke(\n /* Menu.show */ 7905,\n /* x */ bounds.x,\n /* y */ bounds.y,\n /* width */ bounds.width,\n /* height */ bounds.height,\n /* items */ menu.items,\n /* level */ menu.level,\n /* parentIndex */ -1,\n /* mouseBlocking */ mouseBlocking\n )\n}\n\nexport const closeSubMenu = () => {\n const menu = state.menus.pop()\n const parentMenu = state.menus.at(-1)\n RendererProcess.send([\n /* Menu.hideSubMenu */ 7903,\n /* parentIndex */ parentMenu.focusedIndex,\n ])\n}\n\nconst showSubMenuAtEnter = async (level, index, enterX, enterY) => {\n // TODO delete old menus\n state.menus = state.menus.slice(0, level + 1)\n const parentMenu = state.menus[level]\n const item = parentMenu.items[index]\n const subMenuItems = await MenuEntries.getMenuEntries(item.id)\n const subMenu = addMenuInternal({\n id: item.id,\n items: subMenuItems,\n focusedIndex: -1,\n level: state.menus.length,\n y: parentMenu.y + index * 25,\n x: parentMenu.x + MENU_WIDTH,\n enterX,\n enterY,\n })\n const width = getMenuWidth()\n const height = getMenuHeight(subMenuItems)\n RendererProcess.send([\n /* Menu.showMenu */ 7905,\n /* x */ subMenu.x,\n /* y */ subMenu.y,\n /* width */ width,\n /* height */ height,\n /* items */ subMenu.items,\n /* level */ subMenu.level,\n /* parentIndex */ index,\n ])\n}\n\nexport const showSubMenu = async (level, index) => {\n await showSubMenuAtEnter(level, index, -1, -1)\n}\n\nexport const selectIndex = async (level, index) => {\n const menu = state.menus[level]\n menu.focusedIndex = index\n const item = menu.items[menu.focusedIndex]\n switch (item.flags) {\n case /* None */ 0:\n if (!item.command) {\n console.warn('item has missing command', item)\n return\n }\n const args = item.args || []\n await Promise.all([hide(), Command.execute(item.command, ...args)])\n break\n case /* SubMenu */ 4:\n if (menu.focusedIndex === index) {\n return\n }\n await showSubMenu(menu.level, menu.focusedIndex)\n break\n default:\n break\n }\n}\n\nexport const selectCurrent = async (level) => {\n const menu = state.menus[level]\n await selectIndex(level, menu.focusedIndex)\n}\n\nexport const hide = async () => {\n if (state.menus.length === 0) {\n return\n }\n state.menus = []\n await RendererProcess.invoke(/* Menu.hide */ 7901)\n}\n\n// TODO difference between focusing with mouse or keyboard\n// with mouse -> open submenu\n// with keyboard -> don't open submenu, only focus\n\nconst hideSubMenus = async (level) => {\n if (level < state.menus.length) {\n state.menus = state.menus.slice(0, level + 1)\n await RendererProcess.invoke(\n /* Menu.hideSubMenu */ 7904,\n /* level */ level + 1\n )\n }\n}\n\nconst MENU_DELAY_TRIANGLE = 300\n\nconst resolveAfterTimeout = (fn) => {\n setTimeout(fn, MENU_DELAY_TRIANGLE)\n}\n\nexport const handleMouseEnter = async (\n level,\n index,\n enterX,\n enterY,\n enterTimeStamp\n) => {\n state.latestTimeStamp = enterTimeStamp\n if (level >= state.menus.length) {\n return\n }\n const menu = state.menus[level]\n if (menu.focusedIndex === index) {\n return\n }\n if (level < state.menus.length - 1) {\n const subMenu = state.menus[level + 1]\n const subMenuEnterX = subMenu.enterX\n // TODO should check for triangle position here\n if (enterX >= subMenuEnterX) {\n await new Promise(resolveAfterTimeout)\n if (state.latestTimeStamp !== enterTimeStamp) {\n return\n }\n }\n }\n const item = menu.items[index]\n await focusIndex(menu, index)\n switch (item.flags) {\n case /* SubMenu */ 4:\n await showSubMenuAtEnter(menu.level, index, enterX, enterY)\n break\n default:\n await hideSubMenus(menu.level)\n break\n }\n}\n\nexport const focusIndex = async (menu, index) => {\n if (menu.items.length === 0) {\n return\n }\n const oldFocusedIndex = menu.focusedIndex\n menu.focusedIndex = index\n await RendererProcess.invoke(\n /* Menu.focusIndex */ 7902,\n /* level */ menu.level,\n /* oldFocusedIndex */ oldFocusedIndex,\n /* newFocusedIndex */ index\n )\n}\n\nexport const getIndexToFocusNextStartingAt = (items, startIndex) => {\n for (let i = startIndex; i < startIndex + items.length; i++) {\n const index = i % items.length\n const item = items[index]\n if (canBeFocused(item)) {\n return index\n }\n }\n console.log({ startIndex, items })\n return -1\n}\n\nexport const focusFirst = async () => {\n const menu = getCurrentMenu()\n if (menu.items.length === 0) {\n return\n }\n const indexToFocus = getIndexToFocusNextStartingAt(menu.items, 0)\n console.log({ first: indexToFocus })\n await focusIndex(menu, indexToFocus)\n}\n\nexport const focusLast = async () => {\n const menu = getCurrentMenu()\n const indexToFocus = getIndexToFocusPreviousStartingAt(\n menu.items,\n menu.items.length - 1\n )\n await focusIndex(menu, indexToFocus)\n}\n\n// TODO this code seems a bit too complicated, maybe it can be simplified\nconst getIndexToFocusPreviousStartingAt = (items, startIndex) => {\n for (let i = startIndex; i > startIndex - items.length; i--) {\n const index = (i + items.length) % items.length\n const item = items[index]\n if (canBeFocused(item)) {\n return index\n }\n }\n return -1\n}\n\nconst getIndexToFocusPrevious = (menu) => {\n const startIndex =\n menu.focusedIndex === -1 ? menu.items.length - 1 : menu.focusedIndex - 1\n return getIndexToFocusPreviousStartingAt(menu.items, startIndex)\n}\n\nexport const focusPrevious = async () => {\n const menu = getCurrentMenu()\n if (menu.items.length === 0) {\n return\n }\n const indexToFocus = getIndexToFocusPrevious(menu)\n await focusIndex(menu, indexToFocus)\n}\n\nconst canBeFocused = (item) => {\n return item.flags !== /* Separator */ 1 && item.flags !== /* Disabled */ 5\n}\n\nconst getIndexToFocusNext = (menu) => {\n const startIndex = menu.focusedIndex + 1\n return getIndexToFocusNextStartingAt(menu.items, startIndex)\n}\n\nexport const focusNext = async () => {\n const menu = getCurrentMenu()\n if (menu.items.length === 0) {\n return\n }\n const indexToFocus = getIndexToFocusNext(menu)\n await focusIndex(menu, indexToFocus)\n}\n\nexport const resetFocusedIndex = (menu) => {\n menu.focusedIndex = -1\n}\n\n// TODO handle printable letter and focus item that starts with that letter\n\n// TODO pageup / pagedown keys\n\n// TODO more tests\n","import * as Menu from '../Menu/Menu.js'\nimport * as Assert from '../Assert/Assert.js'\n\nexport const show = async (x, y, id) => {\n Assert.number(x)\n Assert.number(y)\n Assert.string(id)\n\n await Menu.hide()\n // TODO handle error\n // TODO race condition\n await Menu.show(x, y, id, /* mouseBlocking */ true)\n // TODO maybe only send labels and keybindings to ui (id not needed on ui)\n // TODO what about separators?\n}\n","import * as Command from '../Command/Command.js'\nimport * as ContextMenu from './ContextMenu.js'\n\nexport const __initialize__ = () => {\n Command.register(950, ContextMenu.select)\n Command.register(951, ContextMenu.show)\n Command.register(952, ContextMenu.hide)\n Command.register(953, ContextMenu.focusFirst)\n Command.register(954, ContextMenu.focusLast)\n Command.register(955, ContextMenu.focusNext)\n Command.register(956, ContextMenu.focusPrevious)\n Command.register(957, ContextMenu.selectCurrent)\n Command.register(958, ContextMenu.noop)\n}\n","import * as Command from '../Command/Command.js'\nimport * as Layout from './Layout.js'\n\nexport const __initialize__ = () => {\n Command.register(1100, Layout.showSideBar)\n Command.register(1101, Layout.hideSideBar)\n Command.register(1102, Layout.toggleSideBar)\n Command.register(1103, Layout.showPanel)\n Command.register(1104, Layout.hidePanel)\n Command.register(1105, Layout.togglePanel)\n Command.register(1106, Layout.showActivityBar)\n Command.register(1107, Layout.hideActivityBar)\n Command.register(1108, Layout.toggleActivityBar)\n Command.register(1109, Layout.hydrate)\n Command.register(1110, Layout.hide)\n Command.register(1111, Layout.handleResize)\n Command.register(1112, Layout.handleSashSideBarMove)\n}\n","import * as Command from '../Command/Command.js'\nimport * as Viewlet from './Viewlet.js'\n\nexport const __initialize__ = () => {\n Command.register(2133, Viewlet.send)\n}\n","import * as Command from '../Command/Command.js'\nimport * as Workbench from './Workbench.js'\n\nexport const __initialize__ = () => {\n Command.register(47110, Workbench.unload)\n}\n","// based on https://github.com/bevacqua/fuzzysearch/blob/master/index.js\n\nexport const fuzzySearch = (needle, haystack) => {\n needle = needle.toLowerCase()\n haystack = haystack.toLowerCase()\n const hlen = haystack.length\n const nlen = needle.length\n if (nlen > hlen) {\n return false\n }\n if (nlen === hlen) {\n return needle === haystack\n }\n outer: for (let i = 0, j = 0; i < nlen; i++) {\n const nch = needle.charCodeAt(i)\n while (j < hlen) {\n if (haystack.charCodeAt(j++) === nch) {\n continue outer\n }\n }\n return false\n }\n return true\n}\n","export const name = 'noop'\n\nexport const getPlaceholder = () => {\n return ''\n}\n\nexport const getHelpEntries = () => {\n return []\n}\n\nexport const getNoResults = () => {\n return 'No Results'\n}\n\nexport const getPicks = async (value) => {\n return []\n}\n\nexport const selectPick = async (item) => {\n return {\n command: 'hide',\n }\n}\n\nexport const getFilterValue = (value) => {\n return value\n}\n","import * as RendererProcess from '../RendererProcess/RendererProcess.js'\nimport * as FuzzySearch from '../FuzzySearch/FuzzySearch.js'\nimport * as QuickPickNoop from './QuickPickNoop.js'\nimport * as Assert from '../Assert/Assert.js'\nimport * as Command from '../Command/Command.js'\n// TODO send open signal to renderer process before items are ready\n// that way user can already type while items are still loading\n\n// TODO cache quick pick items -> don't send every time from renderer worker to renderer process\n// maybe cache by id opening commands -> has all commands cached\n// when filtering -> sends all indices (uint16Array) to renderer process instead of filtered/sorted command objects\n\nconst RECENT_PICKS_MAX_SIZE = 3\nconst ITEM_HEIGHT = 22\n\n// state:\n// 1. default\n// 2. creating (input is ready, but there are no items yet)\n// 3. finished\n\nconst STATE_DEFAULT = 0\nconst STATE_CREATING = 1\nconst STATE_FINISHED = 2\n\nexport const state = {\n state: STATE_DEFAULT,\n picks: [],\n filteredPicks: [],\n recentPicks: [],\n recentPickIds: new Map(), // TODO use object.create(null) instead\n versionId: 0,\n provider: QuickPickNoop,\n focusedIndex: 0,\n warned: [],\n visiblePicks: [],\n minLineY: 0,\n maxLineY: 0,\n maxVisibleItems: 10,\n}\n\n// TODO naming for provider.getNoResults is a bit weird\n\nconst filterPicks = (picks, exclude, value) => {\n // TODO every pick should have label\n const filterPick = (pick) => {\n if (exclude.has(pick.id)) {\n return false\n }\n if (!pick.label && !state.warned.includes(JSON.stringify(pick))) {\n console.warn('[QuickPick] item has missing label', pick)\n state.warned.push(JSON.stringify(pick))\n return false\n }\n const labelMatch = FuzzySearch.fuzzySearch(value, pick.label || pick.id)\n if (labelMatch) {\n return labelMatch\n }\n // TODO also filtering for aliases might be expensive\n // TODO maybe only filter for aliases if prefix is longer than 4-5 characters\n // otherwise both will be found anyway\n // e.g. \"Relo\" matches \"Window Reload\" and \"Reload Window\"\n // But \"Reload Win\" only matches \"Reload Window\"\n if (pick.aliases) {\n for (const alias of pick.aliases) {\n if (FuzzySearch.fuzzySearch(value, alias)) {\n return true\n }\n }\n }\n return false\n }\n const filteredPicks = picks.filter(filterPick)\n return filteredPicks\n}\n\nconst slicePicks = (filteredPicks) => {\n return filteredPicks.slice(0, 10)\n}\n\nconst toDisplayPicks = (picks) => {\n const toDisplayPick = (pick, index) => {\n return {\n label: pick.label,\n posInSet: index + 1,\n setSize: picks.length,\n }\n }\n return picks.map(toDisplayPick)\n}\n\nconst getVisiblePicks = (picks, filterValue) => {\n const filteredPicks = filterPicks(picks, state.recentPickIds, filterValue)\n state.filteredPicks = filteredPicks\n state.state = STATE_FINISHED\n const slicedPicks = slicePicks(filteredPicks)\n return toDisplayPicks(slicedPicks)\n}\n\n// TODO have lazy loadable provider as argument\nexport const show = async (value, provider) => {\n state.provider = provider\n if (state.state === STATE_FINISHED) {\n const version = ++state.versionId\n // TODO if provider is immutable, don't necessarily need to get new picks\n const newPicks = await provider.getPicks(value)\n Assert.array(newPicks)\n if (version !== state.versionId) {\n return\n }\n const filterValue = provider.getFilterValue(value)\n const visiblePicks = getVisiblePicks(newPicks, filterValue)\n const placeholder = provider.getPlaceholder()\n const label = provider.getLabel()\n RendererProcess.send([\n /* Viewlet.send */ 3024,\n /* id */ 'QuickPick',\n /* method */ 'updateValueAndPicksAndPlaceholder',\n /* value */ value,\n /* picks */ visiblePicks,\n /* focusIndex */ 0,\n /* unFocusIndex */ state.focusedIndex,\n /* placeholder */ placeholder,\n /* label */ label,\n ])\n state.picks = newPicks\n state.visiblePicks = visiblePicks\n state.focusedIndex = 0\n state.state = STATE_FINISHED\n state.minLineY = 0\n state.maxLineY = Math.min(\n state.minLineY + state.maxVisibleItems,\n newPicks.length - 1\n )\n return\n }\n state.state = STATE_CREATING\n const version = ++state.versionId\n // TODO also pass initial value here\n await RendererProcess.invoke(/* Viewlet.load */ 3030, /* id */ 'QuickPick')\n const newPicks = await provider.getPicks(value)\n Assert.array(newPicks)\n if (version !== state.versionId) {\n return\n }\n if (newPicks.length === 0) {\n const noResults = await provider.getNoResults()\n RendererProcess.send([\n /* Viewlet.send */ 3024,\n /* id */ 'QuickPick',\n /* method */ 'showNoResults',\n /* noResults */ noResults,\n /* unfocusIndex */ state.focusedIndex,\n ])\n return\n }\n const filterValue = provider.getFilterValue(value)\n const visiblePicks = getVisiblePicks(newPicks, filterValue)\n const placeholder = provider.getPlaceholder()\n const label = provider.getLabel()\n RendererProcess.send([\n /* Viewlet.send */ 3024,\n /* id */ 'QuickPick',\n /* method */ 'updateValueAndPicksAndPlaceholder',\n /* value */ value,\n /* picks */ visiblePicks,\n /* focusIndex */ 0,\n /* unFocusIndex */ -1,\n /* placeholder */ placeholder,\n /* label */ label,\n ])\n state.picks = newPicks\n state.visiblePicks = visiblePicks\n state.focusedIndex = 0\n state.state = STATE_FINISHED\n state.minLineY = 0\n state.maxLineY = Math.min(\n state.minLineY + state.maxVisibleItems,\n newPicks.length - 1\n )\n}\n\nexport const dispose = () => {\n switch (state.state) {\n case STATE_DEFAULT:\n case STATE_CREATING:\n break\n case STATE_FINISHED:\n state.state = STATE_DEFAULT\n RendererProcess.send([/* Viewlet.dispose */ 3026, /* id */ 'QuickPick'])\n break\n default:\n break\n }\n}\n\nexport const handleBlur = async () => {\n switch (state.state) {\n case STATE_DEFAULT:\n case STATE_CREATING:\n break\n case STATE_FINISHED:\n await dispose()\n break\n default:\n break\n }\n}\n\nconst getPick = (state, index) => {\n // if (index < state.recentPicks.length) {\n // return state.recentPicks[index]\n // }\n // index -= state.recentPicks.length\n if (index < state.filteredPicks.length) {\n return state.filteredPicks[index]\n }\n console.warn('no pick matching index', index)\n}\n\nexport const selectIndex = async (index, button = /* left */ 0) => {\n const pick = getPick(state, index)\n const versionBefore = state.versionId\n const selectPickResult = await state.provider.selectPick(pick, index, button)\n Assert.object(selectPickResult)\n Assert.string(selectPickResult.command)\n const { command } = selectPickResult\n const versionAfter = state.versionId\n if (versionBefore !== versionAfter) {\n // selecting a pick might have opened another quick pick\n // so there is no need to hide the quick pick\n return\n }\n switch (command) {\n case 'hide':\n dispose()\n break\n default:\n break\n }\n\n // TODO recent picks should be per provider\n // if (!state.recentPickIds.has(pick.id)) {\n // state.recentPicks.unshift(pick)\n // state.recentPickIds.add(pick.id)\n // }\n // if (state.recentPicks.length > RECENT_PICKS_MAX_SIZE) {\n // const last = state.recentPicks.pop()\n // state.recentPickIds.delete(last.id)\n // }\n}\n\nexport const selectCurrentIndex = async () => {\n await selectIndex(state.focusedIndex)\n}\n\n// TODO when user types letters -> no need to query provider again -> just filter existing results\nexport const handleInput = async (value) => {\n if (state.state === STATE_DEFAULT) {\n return\n }\n state.state = STATE_CREATING\n const version = ++state.versionId\n // TODO if provider is immutable, don't necessarily need to get new picks\n const newPicks = await state.provider.getPicks(value)\n if (version !== state.versionId) {\n return\n }\n const filterValue = state.provider.getFilterValue(value)\n const visiblePicks = getVisiblePicks(newPicks, filterValue)\n\n RendererProcess.send([\n /* Viewlet.send */ 3024,\n /* id */ 'QuickPick',\n /* method */ 'updatePicks',\n /* picks */ visiblePicks,\n /* unFocusIndex */ state.focusedIndex,\n ])\n state.picks = newPicks\n state.visiblePicks = visiblePicks\n state.focusedIndex = 0\n state.state = STATE_FINISHED\n}\n\n// TODO use reactive Programming\n// https://angular-2-training-book.rangle.io/http/search_with_switchmap\n\n// searchField.valuesChanges.debounceTime(400).switchMap(term => search(term)).subscribe(result => {\n// sendRendererProcess(result)\n// })\n// merge(openStream, closeStream, updateStream).switchMap(state => {\n// switch(state){\n// case 'default':\n//\n// }\n//\n// })\n\nexport const focusIndex = async (index) => {\n console.log({ index, maxLineY: state.maxLineY })\n if (index < state.minLineY) {\n state.minLineY = index\n state.maxLineY = Math.min(\n index + state.maxVisibleItems,\n state.filteredPicks.length - 1\n )\n const slicedPicks = state.filteredPicks.slice(\n state.minLineY,\n state.maxLineY\n )\n const displayPicks = toDisplayPicks(slicedPicks)\n const relativeFocusIndex = index - state.minLineY\n const relativeUnFocusIndex = state.focusedIndex - state.minLineY\n RendererProcess.send([\n /* Viewlet.send */ 3024,\n /* id */ 'QuickPick',\n /* method */ 'updateValueAndPicks', // TODO don't need to update value, just picks and focus\n /* value */ state.value,\n /* visiblePicks */ displayPicks,\n /* focusIndex */ relativeFocusIndex,\n /* unFocusIndex */ relativeUnFocusIndex,\n ])\n // TODO need to scroll up\n } else if (index > state.maxLineY) {\n // TODO need to scroll down\n state.minLineY = Math.max(0, index - state.maxVisibleItems)\n state.maxLineY = Math.min(\n index + state.maxVisibleItems - 1,\n state.filteredPicks.length - 1\n )\n const slicedPicks = state.filteredPicks.slice(\n state.minLineY,\n state.maxLineY\n )\n console.log(\n 'scroll down',\n index,\n state.minLineY,\n state.maxLineY,\n slicedPicks\n )\n const displayPicks = toDisplayPicks(slicedPicks)\n const relativeFocusIndex = index - state.minLineY\n const relativeUnFocusIndex = state.focusedIndex - state.minLineY\n console.log({\n relativeFocusIndex,\n relativeUnFocusIndex,\n })\n RendererProcess.send([\n /* Viewlet.send */ 3024,\n /* id */ 'QuickPick',\n /* method */ 'updateValueAndPicks', // TODO don't need to update value, just picks and focus\n /* value */ state.value,\n /* visiblePicks */ displayPicks,\n /* focusIndex */ relativeFocusIndex,\n /* unFocusIndex */ relativeUnFocusIndex,\n ])\n } else {\n RendererProcess.send([\n /* Viewlet.send */ 3024,\n /* id */ 'QuickPick',\n /* method */ 'focusIndex',\n /* unFocusIndex */ state.focusedIndex,\n /* index */ index,\n ])\n }\n\n state.focusedIndex = index\n // TODO get types working\n // @ts-ignore\n if (state.provider.focusPick) {\n // @ts-ignore\n await state.provider.focusPick(state.filteredPicks[index])\n }\n}\n\nexport const focusFirst = async () => {\n await focusIndex(0)\n}\n\nexport const focusLast = async () => {\n await focusIndex(state.filteredPicks.length - 1)\n}\n\nexport const focusPrevious = async () => {\n const previousIndex =\n state.focusedIndex === 0\n ? state.filteredPicks.length - 1\n : state.focusedIndex - 1\n await focusIndex(previousIndex)\n}\n\nexport const focusNext = async () => {\n const nextIndex = (state.focusedIndex + 1) % state.filteredPicks.length\n await focusIndex(nextIndex)\n}\n\n// TODO not sure these should be in this file\nexport const openCommandPalette = async () => {\n const QuickPickEverything = await import('./QuickPickEverything.js')\n await show('>', QuickPickEverything)\n}\n\nexport const openEverythingQuickPick = async () => {\n const QuickPickEverything = await import('./QuickPickEverything.js')\n await show('', QuickPickEverything)\n}\n\nexport const openGoToLine = async () => {\n const QuickPickEverything = await import('./QuickPickEverything.js')\n await show(':', QuickPickEverything)\n}\n\nexport const openView = async () => {\n await show('view ')\n}\n\nexport const openColorTheme = async () => {\n const QuickPickColorTheme = await import('./QuickPickColorTheme.js')\n await show('', QuickPickColorTheme)\n}\n\nexport const fileOpenRecent = async () => {\n const QuickPickOpenRecent = await import('./QuickPickOpenRecent.js')\n await show('', QuickPickOpenRecent)\n}\n\nexport const showExtensionsQuickPick = async (items) => {\n Assert.array(items)\n // TODO handle error, promise swallows error\n const provider = {\n getPicks() {\n return items\n },\n async selectPick(item, index) {\n const ExtensionHost = await import('../ExtensionHost/ExtensionHostCore.js')\n await ExtensionHost.invoke(\n /* ExtensionHostQuickPick.handleQuickPickResult */ 424,\n /* index */ index\n )\n return {\n command: 'hide',\n }\n },\n getFilterValue(value) {\n return value\n },\n getPlaceholder() {\n return ''\n },\n getLabel() {\n return 'extension pick'\n },\n }\n await show('', provider)\n}\n","import * as Command from '../Command/Command.js'\nimport * as QuickPick from './QuickPick.js'\n\nexport const __initialize__ = () => {\n Command.register(71179, QuickPick.openEverythingQuickPick)\n Command.register(71178, QuickPick.dispose)\n Command.register(71180, QuickPick.selectCurrentIndex)\n Command.register(71181, QuickPick.handleInput)\n Command.register(71182, QuickPick.selectIndex)\n // TODO should this be inside quickpick?\n Command.register(7611, QuickPick.openCommandPalette)\n Command.register(7612, QuickPick.openView)\n Command.register(18920, QuickPick.focusFirst)\n Command.register(18921, QuickPick.focusLast)\n Command.register(18922, QuickPick.focusPrevious)\n Command.register(18923, QuickPick.focusNext)\n Command.register(18924, QuickPick.openGoToLine)\n Command.register(18925, QuickPick.openColorTheme)\n Command.register(18926, QuickPick.fileOpenRecent)\n Command.register(18927, QuickPick.handleBlur)\n Command.register(18928, QuickPick.showExtensionsQuickPick)\n}\n","import * as Command from '../Command/Command.js'\nimport * as RendererProcess from '../RendererProcess/RendererProcess.js'\nimport * as Viewlet from './Viewlet.js'\nimport * as ViewletManager from '../ViewletManager/ViewletManager.js'\n\nexport const name = 'Panel'\n\nexport const create = () => {\n return {\n currentId: '',\n currentViewlet: undefined,\n views: [],\n disposed: false,\n focusedIndex: -1,\n selectedIndex: -1,\n }\n}\n\nexport const loadContent = async (state) => {\n const cachedViewlet = await getCachedViewlet()\n return {\n ...state,\n views: ['Problems', 'Output', 'Debug Console', 'Terminal'],\n currentViewlet: cachedViewlet,\n }\n}\n\nexport const contentLoaded = async (state) => {\n await RendererProcess.invoke(\n /* Viewlet.send */ 3024,\n /* id */ 'Panel',\n /* method */ 'setTabs',\n /* tabs */ state.views\n )\n await openViewlet(state, state.currentViewlet)\n}\n\nexport const dispose = (state) => {\n return {\n ...state,\n disposed: true,\n }\n}\n\nconst getCachedViewlet = async () => {\n const cachedViewlet = await Command.execute(\n /* LocalStorage.getItem */ 6902,\n /* key */ 'panelViewlet'\n )\n return cachedViewlet\n}\n\n// TODO this function is a bit messy\nexport const openViewlet = async (state, id) => {\n if (!id) {\n return\n }\n // TODO pending state\n if (state.currentId === id) {\n return\n }\n // TODO current viewlet should be disposed if it exists\n state.currentId = id\n const child = ViewletManager.create(\n ViewletManager.getModule,\n id,\n 'Panel',\n '',\n 0,\n 0,\n 0,\n 0\n )\n await ViewletManager.load(child)\n}\n\nexport const tabsHandleClick = async (state, index) => {\n console.log({ index })\n await openViewlet(state, state.views[index])\n const oldSelectedIndex = state.selectedIndex\n\n state.selectedIndex = index\n RendererProcess.send([\n /* Viewlet.send */ 3024,\n /* id */ 'Panel',\n /* method */ 'selectTab',\n /* oldSelectedIndex */ oldSelectedIndex,\n /* newSelectedIndex */ index,\n ])\n}\n","import * as Command from '../Command/Command.js'\nimport * as Panel from '../Viewlet/ViewletPanel.js'\nimport * as Viewlet from '../Viewlet/Viewlet.js'\n\nexport const __initialize__ = () => {\n Command.register(711, Viewlet.wrapViewletCommand('Panel', Panel.tabsHandleClick))\n Command.register(712, Viewlet.wrapViewletCommand('Panel', Panel.openViewlet))\n Command.register(713, Panel.create)\n}\n","export const state = {\n id: 0,\n}\n\nexport const create = () => {\n return ++state.id\n}\n","import * as RendererProcess from '../RendererProcess/RendererProcess.js'\nimport * as Id from '../Id/Id.js'\n\nexport const state = {\n activeWidget: undefined,\n}\n\nexport const create = ({ getText }) => {\n state.activeWidget = {\n id: Id.create(),\n searchValue: '',\n // TODO how does find widget get text from editor? Both are complete separated\n // textContent: '',\n getText,\n }\n RendererProcess.send([\n /* FindWidget.create */ 4100,\n /* id */ state.activeWidget.id,\n ])\n}\n\nconst update = async (widget) => {\n const results = []\n const text = widget.getText()\n for (let i = 0; i < widget.textContent.length; i++) {\n if (text.slice(i).startsWith(widget.searchValue)) {\n results.push(i)\n }\n }\n RendererProcess.send([\n /* findWidgetSetResults */ 4103,\n /* id */ widget.id,\n /* results */ results,\n ])\n}\n\nexport const setValue = async (value) => {\n state.activeWidget.value = value\n update(state.activeWidget)\n}\n\nexport const previousMatch = () => {}\n\nexport const nextMatch = () => {}\n\nexport const dispose = () => {\n if (!state.activeWidget) {\n return\n }\n RendererProcess.send([\n /* FindWidget.dispose */ 4102,\n /* id */ state.activeWidget.id,\n ])\n state.activeWidget = undefined\n}\n","import * as Command from '../Command/Command.js'\nimport * as FindWidget from './FindWidget.js'\n\nexport const __initialize__ = () => {\n Command.register(212333, FindWidget.create)\n Command.register(212334, FindWidget.dispose)\n Command.register(4101, FindWidget.setValue)\n Command.register(4102, FindWidget.dispose)\n}\n","import * as Command from '../Command/Command.js'\nimport * as Preferences from './Preferences.js'\n\nexport const __initialize__ = () => {\n Command.register(1200, Preferences.openSettingsJson)\n Command.register(1201, Preferences.openSettingsJson)\n // TODO rename to openKeyBindingsJson -> similar to openSettingsJson\n // TODO is this needed?\n Command.register(1202, Preferences.openKeyBindingsJson)\n Command.register(1204, Preferences.hydrate)\n}\n","const BYTE_UNITS = [\n \"B\",\n \"kB\",\n \"MB\",\n \"GB\",\n \"TB\",\n \"PB\",\n \"EB\",\n \"ZB\",\n \"YB\"\n];\nconst BIBYTE_UNITS = [\n \"B\",\n \"kiB\",\n \"MiB\",\n \"GiB\",\n \"TiB\",\n \"PiB\",\n \"EiB\",\n \"ZiB\",\n \"YiB\"\n];\nconst BIT_UNITS = [\n \"b\",\n \"kbit\",\n \"Mbit\",\n \"Gbit\",\n \"Tbit\",\n \"Pbit\",\n \"Ebit\",\n \"Zbit\",\n \"Ybit\"\n];\nconst BIBIT_UNITS = [\n \"b\",\n \"kibit\",\n \"Mibit\",\n \"Gibit\",\n \"Tibit\",\n \"Pibit\",\n \"Eibit\",\n \"Zibit\",\n \"Yibit\"\n];\nconst toLocaleString = (number, locale, options) => {\n let result = number;\n if (typeof locale === \"string\" || Array.isArray(locale)) {\n result = number.toLocaleString(locale, options);\n } else if (locale === true || options !== void 0) {\n result = number.toLocaleString(void 0, options);\n }\n return result;\n};\nvar prettyBytes = (number, options) => {\n if (!Number.isFinite(number)) {\n throw new TypeError(`Expected a finite number, got ${typeof number}: ${number}`);\n }\n options = Object.assign({bits: false, binary: false}, options);\n const UNITS = options.bits ? options.binary ? BIBIT_UNITS : BIT_UNITS : options.binary ? BIBYTE_UNITS : BYTE_UNITS;\n if (options.signed && number === 0) {\n return ` 0 ${UNITS[0]}`;\n }\n const isNegative = number < 0;\n const prefix = isNegative ? \"-\" : options.signed ? \"+\" : \"\";\n if (isNegative) {\n number = -number;\n }\n let localeOptions;\n if (options.minimumFractionDigits !== void 0) {\n localeOptions = {minimumFractionDigits: options.minimumFractionDigits};\n }\n if (options.maximumFractionDigits !== void 0) {\n localeOptions = Object.assign({maximumFractionDigits: options.maximumFractionDigits}, localeOptions);\n }\n if (number < 1) {\n const numberString2 = toLocaleString(number, options.locale, localeOptions);\n return prefix + numberString2 + \" \" + UNITS[0];\n }\n const exponent = Math.min(Math.floor(options.binary ? Math.log(number) / Math.log(1024) : Math.log10(number) / 3), UNITS.length - 1);\n number /= Math.pow(options.binary ? 1024 : 1e3, exponent);\n if (!localeOptions) {\n number = number.toPrecision(3);\n }\n const numberString = toLocaleString(Number(number), options.locale, localeOptions);\n const unit = UNITS[exponent];\n return prefix + numberString + \" \" + unit;\n};\nexport default prettyBytes;\n","import prettyBytes from '../../../../../static/js/pretty-bytes.js'\nimport * as ColorTheme from '../ColorTheme/ColorTheme.js'\nimport * as Command from '../Command/Command.js'\nimport * as IconTheme from '../IconTheme/IconTheme.js'\nimport * as Platform from '../Platform/Platform.js'\nimport * as RendererProcess from '../RendererProcess/RendererProcess.js'\nimport * as SharedProcess from '../SharedProcess/SharedProcess.js'\n\nconst formatBytes = (bytes) => {\n return prettyBytes(bytes)\n}\n\n// TODO vscode's version of this is shorter\n// if it is a bottleneck, check performance of this function (not very optimized now)\n\n// TODO no export, this is internal only\nconst toMarkdownTable = (header, rows) => {\n const numberOfColumns = header.length\n const numberOfRows = rows.length\n const maxLengths = [...new Array(numberOfColumns).fill(0)]\n for (let i = 0; i < numberOfColumns; i++) {\n maxLengths[i] = header[i].length\n for (let j = 0; j < numberOfRows; j++) {\n maxLengths[i] = Math.max(maxLengths[i], rows[j][i].length)\n }\n }\n let result = ''\n for (let i = 0; i < numberOfColumns; i++) {\n result += '|'\n result += ' '\n result += header[i]\n result += ' '.repeat(maxLengths[i] - header[i].length)\n result += ' '\n }\n result += '|\\n'\n for (let i = 0; i < numberOfColumns; i++) {\n result += '|'\n result += '-'.repeat(maxLengths[i] + 2)\n }\n result += '|\\n'\n for (const row of rows) {\n for (let i = 0; i < numberOfColumns; i++) {\n result += '|'\n result += ' '\n result += row[i]\n result += ' '.repeat(maxLengths[i] - row[i].length)\n result += ' '\n }\n result += '|\\n'\n }\n return result\n}\n\nconst formatStartupPerformanceEntries = (entries, firstTimeOrigin) => {\n const diff = entries.timeOrigin - firstTimeOrigin\n const header = ['Name', 'Start Time', 'Duration']\n const formatEntry = (entry) => {\n const name = entry.name\n if (!name) {\n return ['n/a', 'n/a', 'n/a']\n }\n const startTime = `${(entry.startTime + diff).toFixed(2)}ms`\n const duration = `${entry.duration.toFixed(2)}ms`\n return [name, startTime, duration]\n }\n const rows = entries.entries.map(formatEntry)\n return toMarkdownTable(header, rows)\n}\n\nconst formatWebVitals = (vitals) => {\n const header = ['Name', 'Start Time']\n const rows = vitals.map((entry) => {\n const name = entry.name\n const startTime = `${entry.startTime.toFixed(2)}ms`\n return [name, startTime]\n })\n return toMarkdownTable(header, rows)\n}\n\nconst getWebVitals = async () => {\n let firstPaint = -1\n let firstContentfulPaint = -1\n let largestContentfulPaint = -1\n const paintEntries = performance.getEntriesByType('paint')\n for (const paintEntry of paintEntries) {\n switch (paintEntry.name) {\n case 'first-paint':\n firstPaint = paintEntry.startTime\n break\n case 'first-contentful-paint':\n firstContentfulPaint = paintEntry.startTime\n break\n }\n }\n const performanceObserver = new PerformanceObserver(() => {})\n performanceObserver.observe({\n type: 'largest-contentful-paint',\n buffered: true,\n })\n const records = performanceObserver.takeRecords()\n performanceObserver.disconnect()\n if (records.length > 0) {\n largestContentfulPaint = records[0].startTime\n }\n\n return [\n {\n name: 'first-paint',\n startTime: firstPaint,\n },\n {\n name: 'firstContentfulPaint',\n startTime: firstContentfulPaint,\n },\n {\n name: 'largestContentfulPaint',\n startTime: largestContentfulPaint,\n },\n ]\n}\n\nconst formatNodeTiming = (nodeStartupTiming) => {\n const header = ['Name', 'Value']\n const rows = Object.entries(nodeStartupTiming).map(([key, value]) => {\n if (typeof value === 'number' && value > 0) {\n return [key, `${value.toFixed(2)}ms`]\n }\n return [key, `${value}`]\n })\n return toMarkdownTable(header, rows)\n}\n\nconst getNodeTiming = () => {\n if (Platform.getPlatform() === 'web') {\n return undefined\n }\n return SharedProcess.invoke(/* command */ 'Developer.getNodeStartupTime')\n}\n\nconst getFirstTimeOrigin = ({ measureEntries, electronEntries }) => {\n if (electronEntries) {\n return electronEntries.timeOrigin\n }\n if (measureEntries) {\n return measureEntries.timeOrigin\n }\n return 0\n}\n\nconst formatStartupPerformance = ({\n measureEntries,\n webVitals,\n nodeStartupTiming,\n electronEntries,\n}) => {\n const firstTimeOrigin = getFirstTimeOrigin({\n measureEntries,\n electronEntries,\n })\n const lines = []\n lines.push('# Startup Performance')\n lines.push('')\n if (electronEntries) {\n const formattedElectronEntries = formatStartupPerformanceEntries(\n electronEntries,\n firstTimeOrigin\n )\n lines.push('## main-process')\n lines.push('')\n lines.push(...formattedElectronEntries.split('\\n'))\n lines.push('')\n }\n if (measureEntries) {\n const formattedMeasureEntries = formatStartupPerformanceEntries(\n measureEntries,\n firstTimeOrigin\n )\n if (electronEntries) {\n const deltaTimeOrigin = (\n measureEntries.timeOrigin - electronEntries.timeOrigin\n ).toFixed(2)\n lines.push(`## renderer-worker (+${deltaTimeOrigin}ms)`)\n } else {\n lines.push('## renderer-worker')\n }\n lines.push('')\n lines.push(...formattedMeasureEntries.split('\\n'))\n lines.push('')\n }\n if (webVitals) {\n const formattedWebVitals = formatWebVitals(webVitals)\n lines.push('## Web Vitals')\n lines.push('')\n lines.push(...formattedWebVitals.split('\\n'))\n lines.push('')\n }\n if (nodeStartupTiming) {\n const formattedNodeStartupTiming = formatNodeTiming(nodeStartupTiming)\n lines.push('## Node Startup Timing')\n lines.push('')\n lines.push(...formattedNodeStartupTiming.split('\\n'))\n lines.push('')\n }\n lines.push('## Extension Host')\n lines.push('')\n const content = lines.join('\\n')\n return content\n}\n\nconst getMeasureEntries = () => {\n const measureEntries = performance.getEntriesByType('measure')\n const timeOrigin = performance.timeOrigin\n return {\n entries: measureEntries,\n timeOrigin,\n }\n}\n\nconst getElectronEntries = async () => {\n if (Platform.getPlatform() === 'web' || Platform.getPlatform() === 'remote') {\n return undefined\n }\n const result = await SharedProcess.invoke(\n /* Electron.getPerformanceEntries */ 'Electron.getPerformanceEntries'\n )\n return result\n}\n\n// TODO should open file perf://startup-performance -> calls fs provider -> provides statistics\n// that would work well for restoring editor\nexport const getStartupPerformanceContent = async () => {\n // TODO how to update content once workbench startup has finished?\n // await new Promise((resolve) =>\n // LifeCycle.once(LifeCycle.PHASE_FIFTEEN, resolve)\n // )\n let nodeStartupTiming\n if (Platform.getPlatform() !== 'web') {\n nodeStartupTiming = await getNodeTiming()\n }\n const measureEntries = getMeasureEntries()\n const webVitals = await getWebVitals()\n let electronEntries\n if (Platform.getPlatform() === 'electron') {\n electronEntries = await getElectronEntries()\n }\n const text = formatStartupPerformance({\n nodeStartupTiming,\n measureEntries,\n webVitals,\n electronEntries,\n })\n return text\n}\n\nexport const showStartupPerformance = async () => {\n await Command.execute(\n /* Main.openUri */ 97,\n /* uri */ 'app://startup-performance'\n )\n}\n\nconst formatNodeMemoryUsage = (memoryUsage) => {\n if (!memoryUsage) {\n return ['']\n }\n const header = ['Name', 'Memory']\n const rows = Object.entries(memoryUsage).map(([key, value]) => {\n return [key, formatBytes(value)]\n })\n return toMarkdownTable(header, rows)\n}\n\nconst formatRendererWorkerData = ({\n memory,\n userAgentSpecificMemory,\n sent,\n received,\n}) => {\n let content = ''\n if (userAgentSpecificMemory) {\n const header = ['Name', 'Value']\n const rows = []\n if (userAgentSpecificMemory.bytes) {\n rows.push(['Bytes', formatBytes(userAgentSpecificMemory.bytes)])\n }\n if (userAgentSpecificMemory.breakdown) {\n for (const item of userAgentSpecificMemory.breakdown) {\n if (!item.bytes) {\n continue\n }\n rows.push([item.types[0] || 'n/a', formatBytes(item.bytes)])\n }\n }\n content += toMarkdownTable(header, rows)\n } else if (memory) {\n const header = ['Name', 'Value']\n const rows = [\n ['jsHeapSizeLimit', formatBytes(memory.jsHeapSizeLimit)],\n ['Total JS HeapSize', formatBytes(memory.totalJSHeapSize)],\n ['Used JS HeapSize', formatBytes(memory.usedJSHeapSize)],\n ['Sent', formatBytes(sent)],\n ['Received', formatBytes(received)],\n ]\n content += toMarkdownTable(header, rows)\n }\n return content\n}\n\nconst formatRendererProcessData = ({ memoryUsage }) => {\n if (!memoryUsage) {\n return 'No Information available.'\n }\n const header = ['Name', 'Value']\n const rows = [\n ['jsHeapSizeLimit', formatBytes(memoryUsage.jsHeapSizeLimit)],\n ['Total JS HeapSize', formatBytes(memoryUsage.totalJSHeapSize)],\n ['Used JS HeapSize', formatBytes(memoryUsage.usedJSHeapSize)],\n ]\n return toMarkdownTable(header, rows)\n}\n\nconst getRendererWorkerMemoryUsage = async () => {\n let userAgentSpecificMemory\n let memory\n // @ts-ignore\n if (performance && performance.memory) {\n // @ts-ignore\n memory = performance.memory\n }\n // @ts-ignore\n if (performance && performance.measureUserAgentSpecificMemory) {\n // @ts-ignore\n userAgentSpecificMemory = await performance.measureUserAgentSpecificMemory()\n }\n return {\n memory,\n userAgentSpecificMemory,\n }\n}\n\nconst getSharedProcessMemoryUsage = () => {\n return SharedProcess.invoke(\n /* Developer.sharedProcessMemoryUsage */ 'Developer.sharedProcessMemoryUsage'\n )\n}\n\nconst getRendererProcessMemoryUsage = async () => {\n const memoryUsage = await RendererProcess.invoke(\n /* Developer.getMemoryUsage */ 284\n )\n return memoryUsage\n}\n\nconst getExtensionHostMemoryUsage = async () => {\n return SharedProcess.invoke(\n /* ExtensionHost.getMemoryUsage */ 'ExtensionHost.getMemoryUsage'\n )\n}\n\n// TODO handle case when renderer process and renderer worker are same process communicating via messagePort\nexport const getMemoryUsageContent = async () => {\n const sharedProcessMemoryUsage = await getSharedProcessMemoryUsage()\n const formattedSharedProcessMemoryUsage = formatNodeMemoryUsage(\n sharedProcessMemoryUsage\n )\n const extensionHostMemoryUsage = await getExtensionHostMemoryUsage()\n const formattedExtensionHostMemoryUsage = formatNodeMemoryUsage(\n extensionHostMemoryUsage\n )\n const rendererWorkerMemoryUsage = await getRendererWorkerMemoryUsage()\n const totalSent = SharedProcess.state.totalSent\n const totalReceived = SharedProcess.state.totalReceived\n const formattedRendererWorkerMemoryUsage = formatRendererWorkerData({\n memory: rendererWorkerMemoryUsage.memory,\n userAgentSpecificMemory: rendererWorkerMemoryUsage.userAgentSpecificMemory,\n sent: totalSent,\n received: totalReceived,\n })\n const rendererProcessMemoryUsage = await getRendererProcessMemoryUsage()\n const formattedRendererProcessMemoryUsage = formatRendererProcessData({\n memoryUsage: rendererProcessMemoryUsage,\n })\n\n const isWorker = typeof WorkerGlobalScope !== 'undefined'\n const text = isWorker\n ? `## Shared Process\n\n${formattedSharedProcessMemoryUsage}\n\n## Extension Host\n\n${formattedExtensionHostMemoryUsage}\n\n## Renderer Worker\n\n${formattedRendererWorkerMemoryUsage}\n\n## Renderer Process\n\n${formattedRendererProcessMemoryUsage}\n`\n : `## Renderer Worker / Renderer Process\n\n${formattedRendererWorkerMemoryUsage}\n\n## Shared Process\n\n${formattedSharedProcessMemoryUsage}\n\n## Extension Host\n\n${formattedExtensionHostMemoryUsage}\n\n\n`\n return text\n}\n\nexport const showMemoryUsage = async () => {\n await Command.execute(/* Main.openUri */ 97, /* uri */ 'app://memory-usage')\n}\n\n// TODO not sure if this function is useful\nexport const allocateMemoryInSharedProcess = async () => {\n await SharedProcess.invoke(\n /* Developer.allocateMemoryInSharedProcess */ 'Developer.allocateMemoryInSharedProcess'\n )\n}\n\nexport const crashSharedProcess = () => {\n SharedProcess.send(\n /* Developer.crashSharedProcess */ 'Developer.crashSharedProcess'\n )\n}\n\nexport const crashRendererProcess = () => {}\n\nexport const crashRendererWorker = () => {}\n\nexport const crashMainProcess = () => {\n SharedProcess.send(\n /* Electron.crashMainProcess */ 'Electron.crashMainProcess'\n )\n}\n\nexport const openExtensionsFolder = () => {\n // TODO only possible in local file system\n}\n\nexport const openLogsFolder = async () => {\n // TODO only in electron or in remote when it is the same machine\n if (Platform.getPlatform() === 'web') {\n return\n }\n const logsFolder = await Platform.getLogsDir()\n await Command.execute(/* Open.openNativeFolder */ 1370, /* path */ logsFolder)\n}\n\nexport const toggleDeveloperTools = () => {\n SharedProcess.send(/* Electron.toggleDevtools */ 'Electron.toggleDevtools')\n}\n\nexport const showIconThemeCss = async () => {\n const iconThemeCss = await IconTheme.getIconThemeCss()\n // Main.openRawText('css://icon-theme.css', iconThemeCss)\n}\n\nexport const createSharedProcessHeapSnapshot = async () => {\n await SharedProcess.invoke(\n /* Developer.createSharedProcessHeapSnapshot */ 'Developer.createSharedProcessHeapSnapshot'\n )\n}\n\nexport const createSharedProcessProfile = async () => {\n await SharedProcess.invoke(\n /* Developer.createProfile */ 'Developer.createProfile'\n )\n}\n\nexport const reloadIconTheme = async () => {\n await IconTheme.hydrate()\n}\n\nexport const reloadColorTheme = async () => {\n await ColorTheme.hydrate()\n}\n\nexport const showColorThemeCss = async () => {\n const colorThemeCss = await ColorTheme.getColorThemeCssCacheFirst()\n Main.openRawText('css://color-theme.css', colorThemeCss)\n}\n\nexport const clearCache = async () => {\n await Command.execute(/* CacheStorage.clearCache */ 6800)\n await Command.execute(/* LocalStorage.clear */ 6900)\n await Command.execute(/* SessionStorage.clear */ 6755)\n}\n\nexport const editors = {\n 'performance://monitor': {},\n 'performance://startup': {},\n}\n\nexport const openConfigFolder = async () => {\n const configFolder = await Platform.getConfigPath()\n await Command.execute(\n /* Open.openNativeFolder */ 1370,\n /* path */ configFolder\n )\n}\n\nexport const openCacheFolder = async () => {\n const cacheFolder = await Platform.getCachePath()\n await Command.execute(\n /* Open.openNativeFolder */ 1370,\n /* path */ cacheFolder\n )\n}\n\nexport const openDataFolder = async () => {\n const dataFolder = await SharedProcess.invoke(\n /* Platform.getDataDir */ 'Platform.getDataDir'\n )\n await Command.execute(/* Open.openNativeFolder */ 1370, /* path */ dataFolder)\n}\n\nexport const showMessageBox = () => {}\n\nexport const openProcessExplorer = async () => {\n await SharedProcess.invoke(\n /* Electron.openProcessExplorer */ 'Electron.openProcessExplorer'\n )\n}\n","import * as Command from '../Command/Command.js'\nimport * as Developer from './Developer.js'\n\nexport const __initialize__ = () => {\n Command.register(820, Developer.getStartupPerformanceContent)\n Command.register(821, Developer.getMemoryUsageContent)\n Command.register(822, Developer.allocateMemoryInSharedProcess)\n Command.register(823, Developer.crashSharedProcess)\n Command.register(824, Developer.createSharedProcessHeapSnapshot)\n Command.register(825, Developer.createSharedProcessProfile)\n Command.register(826, Developer.showIconThemeCss)\n Command.register(827, Developer.reloadIconTheme)\n Command.register(828, Developer.clearCache)\n Command.register(829, Developer.reloadColorTheme)\n Command.register(830, Developer.showColorThemeCss)\n // TODO certain commands are only available in electron -> treeshake them out\n Command.register(831, Developer.toggleDeveloperTools)\n Command.register(832, Developer.crashMainProcess)\n Command.register(833, Developer.showStartupPerformance)\n Command.register(834, Developer.showMemoryUsage)\n Command.register(835, Developer.openConfigFolder)\n Command.register(836, Developer.openDataFolder)\n Command.register(837, Developer.openLogsFolder)\n Command.register(838, Developer.openCacheFolder)\n Command.register(839, Developer.openProcessExplorer)\n}\n","export const state = {\n blurListeners: [],\n}\n\nexport const editorBlur = (editor) => {\n for (const listener of state.blurListeners) {\n listener(editor)\n }\n // TODO save on blur\n // Command.execute(/* Main.save */ 89)\n return editor\n}\n\nexport const registerListener = (fn) => {\n state.blurListeners.push(fn)\n}\n\nexport const removeListener = (fn) => {\n state.blurListeners.splice(state.blurListeners.indexOf(fn), 1)\n}\n","// based on https://github.com/microsoft/vscode/blob/c0769274fa136b45799edeccc0d0a2f645b75caf/src/vs/base/common/arrays.ts#L625 (License MIT)\n\nexport const insertInto = (array, start, newItems) => {\n const originalLength = array.length\n const newItemsLength = newItems.length\n array.length = originalLength + newItemsLength\n // Move the items after the start index, start from the end so that we don't overwrite any value.\n for (let i = originalLength - 1; i >= start; i--) {\n array[i + newItemsLength] = array[i]\n }\n\n for (let i = 0; i < newItemsLength; i++) {\n array[i + start] = newItems[i]\n }\n}\n\n/**\n * Alternative to the native Array.splice method, it\n * can only support limited number of items due to the maximum call stack size limit.\n */\nexport const splice = (array, start, deleteCount, newItems) => {\n const result = array.splice(start, deleteCount)\n insertInto(array, start, newItems)\n return result\n}\n","import * as Assert from '../Assert/Assert.js'\nimport * as Arrays from '../Arrays/Arrays.js'\n\nexport const create = (text) => {\n const lines = text.split('\\n')\n const state = {\n lines,\n }\n // TODO send to shared process somehow\n return state\n}\n\n// TODO have function for single edit (most common, avoid one array)\nexport const applyEdits = (textDocument, changes) => {\n Assert.object(textDocument)\n Assert.array(changes)\n // TODO don't copy all lines (can be expensive, e.g. 10000 lines = 10000 * 64bit = 64kB on every keystroke)\n const newLines = [...textDocument.lines]\n for (const change of changes) {\n const startRowIndex = change.start.rowIndex\n const endRowIndex = change.end.rowIndex\n const startColumnIndex = change.start.columnIndex\n const endColumnIndex = change.end.columnIndex\n const inserted = change.inserted\n const deleted = change.deleted\n Assert.number(startRowIndex)\n Assert.number(endRowIndex)\n Assert.number(startColumnIndex)\n Assert.number(endColumnIndex)\n Assert.array(inserted)\n Assert.array(deleted)\n if (startRowIndex === endRowIndex) {\n if (inserted.length === 0) {\n const line = newLines[startRowIndex]\n const before = line.slice(0, startColumnIndex)\n const after = line.slice(endColumnIndex)\n newLines[startRowIndex] = before + after\n } else if (inserted.length === 1) {\n const line = newLines[startRowIndex]\n let before = line.slice(0, startColumnIndex)\n if (startColumnIndex > line.length) {\n before += ' '.repeat(startColumnIndex - line.length)\n }\n const after = line.slice(endColumnIndex)\n const text = inserted[0]\n newLines[startRowIndex] = before + text + after\n } else {\n const line = newLines[startRowIndex]\n const before = line.slice(0, startColumnIndex) + inserted[0]\n const after = inserted.at(-1) + line.slice(endColumnIndex)\n Arrays.splice(newLines, startRowIndex, deleted.length, [\n before,\n ...inserted.slice(1, -1),\n after,\n ])\n // TODO only do this once after all edits, not inside loop\n textDocument.maxLineY = Math.min(\n textDocument.numberOfVisibleLines,\n newLines.length\n )\n }\n } else {\n if (inserted.length === 1) {\n const before =\n newLines[startRowIndex].slice(0, startColumnIndex) + inserted[0]\n const after =\n endRowIndex >= newLines.length\n ? ''\n : newLines[endRowIndex].slice(endColumnIndex)\n console.log({ before, after })\n Arrays.splice(newLines, startRowIndex, deleted.length, [before + after])\n } else {\n const before =\n newLines[startRowIndex].slice(0, startColumnIndex) + inserted[0]\n const middle = inserted.slice(1, -1)\n const after =\n inserted.at(-1) +\n (endRowIndex >= newLines.length\n ? ''\n : newLines[endRowIndex].slice(endColumnIndex))\n console.log({ before, after })\n Arrays.splice(newLines, startRowIndex, deleted.length, [\n before,\n ...middle,\n after,\n ])\n }\n // TODO only do this once after all edits, not inside loop\n textDocument.maxLineY = Math.min(\n textDocument.numberOfVisibleLines,\n textDocument.lines.length\n )\n }\n }\n return newLines\n}\n\nexport const getLine = (textDocument, index) => {\n return textDocument.lines[index]\n}\n\nexport const getLineLength = (textDocument, index) => {\n return textDocument.lines[index].length\n}\n\nexport const getText = (state) => {\n return state.lines.join('\\n')\n}\nconst RE_WHITESPACE = /^\\s+/\n\n// TODO this doesn't belong here\nexport const getIndent = (line) => {\n const whitespaceMatch = line.match(RE_WHITESPACE)\n if (!whitespaceMatch) {\n return ''\n }\n return whitespaceMatch[0]\n}\n\n// TDOO this doesn;t belong here\nexport const getSelectionText = (textDocument, range) => {\n Assert.object(textDocument)\n // console.log(range)\n // console.log(textDocument)\n const startRowIndex = range.start.rowIndex\n const startColumnIndex = range.start.columnIndex\n const endRowIndex = Math.min(\n range.end.rowIndex,\n textDocument.lines.length - 1\n )\n const endColumnIndex = range.end.columnIndex\n\n if (startRowIndex === endRowIndex) {\n // console.log(startRowIndex)\n // console.log(textDocument.lines)\n return [\n textDocument.lines[startRowIndex].slice(startColumnIndex, endColumnIndex),\n ]\n }\n const selectedLines = [\n textDocument.lines[startRowIndex].slice(startColumnIndex),\n ...textDocument.lines.slice(startRowIndex + 1, endRowIndex),\n textDocument.lines[endRowIndex].slice(0, endColumnIndex),\n ]\n return selectedLines\n}\n\nexport const offsetAt = (textDocument, position) => {\n let offset = 0\n let rowIndex = 0\n const lines = textDocument.lines\n const max = Math.min(position.rowIndex, textDocument.lines.length)\n while (rowIndex < max) {\n offset += lines[rowIndex].length + 1\n rowIndex++\n }\n offset += position.columnIndex\n return offset\n}\n\nexport const positionAt = (textDocument, offset) => {\n // console.log({ textDocument, offset })\n let rowIndex = 0\n let columnIndex = 0\n let currentOffset = 0\n while (rowIndex < textDocument.lines.length && currentOffset < offset) {\n textDocument\n currentOffset += textDocument.lines[rowIndex].length + 1\n rowIndex++\n }\n\n if (currentOffset > offset) {\n rowIndex\n rowIndex--\n currentOffset -= textDocument.lines[rowIndex].length + 1\n columnIndex = offset - currentOffset\n } else {\n columnIndex = currentOffset - offset\n }\n currentOffset\n offset\n // for (let i = 0; i < textDocument.lines.length; i++) {\n // if(currentOffset)\n // }\n // TODO\n return {\n rowIndex,\n columnIndex,\n }\n}\n","/**\n * @enum number\n */\nexport const State = {\n TopLevelContent: 1,\n}\n\n/**\n * @enum number\n */\nexport const TokenType = {\n Text: 1,\n}\n\nexport const TokenMap = {\n [TokenType.Text]: 'Text',\n}\n\nexport const initialLineState = {\n state: State.TopLevelContent,\n}\n\nexport const tokenizeLine = (line, lineState) => {\n return {\n tokens: [\n {\n length: line.length,\n type: TokenType.Text,\n },\n ],\n state: lineState.state,\n }\n}\n","import * as TokenizePlainText from './TokenizePlainText.js'\nimport * as Languages from '../Languages/Languages.js'\nimport * as GlobalEventBus from '../GlobalEventBus/GlobalEventBus.js'\n\nexport const state = {\n tokenizers: Object.create(null),\n tokenizePaths: Object.create(null),\n listeners: [],\n pending: Object.create(null),\n}\n\n// TODO more dynamic: should come from extensions anywhere on file system\nconst getTokenizePath = (languageId) => {\n for (const language of Languages.state.languages) {\n if (language.id === languageId && language.tokenize) {\n return language.tokenize\n }\n }\n return ''\n}\n\n// TODO loadTokenizer should be invoked from renderer worker\nexport const loadTokenizer = async (languageId) => {\n if (languageId in state.tokenizers) {\n return\n }\n const tokenizePath = getTokenizePath(languageId)\n if (!tokenizePath) {\n return\n }\n try {\n // TODO check that tokenizer is valid\n // 1. tokenizeLine should be of type function\n // 2. getTokenClass should be of type function\n const tokenizer = await import(tokenizePath)\n if (typeof tokenizer.tokenizeLine !== 'function') {\n console.warn(\n `tokenizer.tokenizeLine should be a function in \"${tokenizePath}\"`\n )\n return\n }\n if (\n !tokenizer.TokenMap ||\n typeof tokenizer.TokenMap !== 'object' ||\n Array.isArray(tokenizer.TokenMap)\n ) {\n console.warn(\n `tokenizer.TokenMap should be an object in \"${tokenizePath}\"`\n )\n return\n }\n state.tokenizers[languageId] = tokenizer\n } catch (error) {\n state.tokenizers[languageId] = TokenizePlainText\n // TODO better error handling\n console.error(error)\n return\n }\n GlobalEventBus.emitEvent('tokenizer.changed', languageId)\n}\n\nexport const getTokenizer = (languageId) => {\n if (languageId in state.tokenizers) {\n return state.tokenizers[languageId]\n }\n if (languageId in state.pending) {\n return TokenizePlainText\n }\n return TokenizePlainText\n}\n","import * as Assert from '../Assert/Assert.js'\nimport * as Platform from '../Platform/Platform.js'\nimport * as GlobalEventBus from '../GlobalEventBus/GlobalEventBus.js'\n\nexport const applyEdits = (editor, cursor) => {\n // TODO multiple cursors\n console.assert(cursor)\n editor.cursor = cursor\n GlobalEventBus.emitEvent('editor.cursorChange', editor, cursor)\n}\n\nconst isInRange = (position, min, max) => {\n return position.rowIndex >= min && position.rowIndex <= max\n}\n\nconst getTokenIndex = (lineCache, selection) => {\n if (!lineCache) {\n // throw new Error('no line cache found')\n return -1\n }\n Assert.object(selection)\n let offset = 0\n for (let i = 0; i < lineCache.tokens.length; i++) {\n const newOffset = offset + lineCache.tokens[i].length\n if (newOffset >= selection.end.columnIndex) {\n return {\n index: i,\n offset: selection.end.columnIndex - offset,\n }\n }\n offset = newOffset\n }\n console.warn(`token at columnIndex ${selection.end.columnIndex} not found`)\n return {\n index: -1,\n offset: -1,\n }\n}\n\nexport const getVisible = (editor) => {\n if (Platform.isMobileOrTablet()) {\n const visibleCursors = []\n for (const selection of editor.selections) {\n if (isInRange(selection.end, editor.minLineY, editor.maxLineY)) {\n visibleCursors.push({\n rowIndex: selection.end.rowIndex - editor.minLineY,\n columnIndex: selection.end.columnIndex,\n })\n } else {\n }\n }\n return visibleCursors\n }\n // TODO could use uint16array here\n // TODO handle case when text segmenter not supported\n const visibleCursors = []\n for (const selection of editor.selections) {\n if (isInRange(selection.end, editor.minLineY, editor.maxLineY)) {\n const lineCache = editor.lineCache[selection.end.rowIndex + 1]\n if (!lineCache) {\n console.log('line caches', editor, editor.lineCache)\n }\n const tokenIndex = getTokenIndex(lineCache, selection)\n visibleCursors.push({\n top: (selection.end.rowIndex - editor.minLineY) * editor.rowHeight,\n topIndex: selection.end.rowIndex - editor.minLineY,\n leftIndex: tokenIndex.index,\n remainingOffset: tokenIndex.offset,\n })\n }\n }\n return visibleCursors\n}\n","const clamp = (value, min, max) => {\n return Math.min(Math.max(value, min), max)\n}\n\n// TODO this should be in a separate scrolling module\nexport const setDeltaY = (editor, value) => {\n const newDeltaY = clamp(value, 0, editor.finalDeltaY)\n if (editor.deltaY === newDeltaY) {\n return editor\n }\n const newLineY = Math.floor(newDeltaY / 20)\n const newMaxLineY = editor.minLineY + editor.numberOfVisibleLines\n const scrollBarY =\n (newDeltaY / editor.finalDeltaY) * (editor.height - editor.scrollBarHeight)\n return {\n ...editor,\n minLineY: newLineY,\n maxLineY: newMaxLineY,\n deltaY: newDeltaY,\n scrollBarY,\n }\n}\n","import * as Assert from '../Assert/Assert.js'\nimport * as GlobalEventBus from '../GlobalEventBus/GlobalEventBus.js'\n\nconst getSelectionFromChange = (change) => {\n if (change.inserted.length === 1) {\n const newPosition = {\n rowIndex: change.start.rowIndex + change.inserted.length - 1,\n columnIndex: change.inserted.at(-1).length + change.start.columnIndex,\n }\n return {\n start: newPosition,\n end: newPosition,\n }\n }\n const newPosition = {\n rowIndex: change.start.rowIndex + change.inserted.length - 1,\n columnIndex: change.inserted.at(-1).length,\n }\n return {\n start: newPosition,\n end: newPosition,\n }\n}\n\nexport const setSelections = (editor, selections) => {\n Assert.object(editor)\n Assert.array(selections)\n console.log({ selections })\n return {\n ...editor,\n selections,\n cursor: selections[0].end,\n }\n // editor.selections = selections\n // GlobalEventBus.emitEvent('editor.selectionChange', editor, selections)\n}\n\n// TODO maybe only accept sorted selection edits in the first place\nexport const applyEdit = (editor, changes) => {\n Assert.object(editor)\n Assert.array(changes)\n const newSelections = changes.map(getSelectionFromChange)\n // setSelections(editor, newSelections)\n return newSelections\n}\n\n// TODO visible selections could also be uint16array\n// [top1, left1, width1, height1, top2, left2, width2, height2...]\n\nexport const getVisible = (editor) => {\n const visibleSelections = []\n // let i=0\n // // TODO binary search\n\n // // before\n // while(i < editor.selections.length){\n // if(editor.selections[i].start.rowIndex < editor.minLineY){\n // break\n // }\n // i++\n // }\n // // start\n // while(i < editor.selections.length){\n // if(editor.selections[i].start.rowIndex < ){\n\n // }\n // }\n // // middle\n\n // // end\n\n // // after\n for (const selection of editor.selections) {\n if (selection.end.rowIndex < editor.minLineY) {\n continue\n }\n if (selection.start.rowIndex > editor.maxLineY) {\n break\n }\n if (selection.start === selection.end) {\n continue\n }\n if (selection.start.rowIndex === selection.end.rowIndex) {\n visibleSelections.push({\n top: (selection.start.rowIndex - editor.minLineY) * editor.rowHeight,\n left: selection.start.columnIndex * editor.columnWidth,\n width:\n (selection.end.columnIndex - selection.start.columnIndex) *\n editor.columnWidth,\n height: editor.rowHeight,\n })\n } else {\n if (selection.start.rowIndex >= editor.minLineY) {\n visibleSelections.push({\n top: (selection.start.rowIndex - editor.minLineY) * editor.rowHeight,\n left: selection.start.columnIndex * editor.columnWidth,\n width:\n (editor.lines[selection.start.rowIndex].length -\n selection.start.columnIndex) *\n editor.columnWidth,\n height: editor.rowHeight,\n })\n }\n for (\n let i = Math.max(selection.start.rowIndex + 1, editor.minLineY);\n i < Math.min(selection.end.rowIndex, editor.maxLineY);\n i++\n ) {\n visibleSelections.push({\n top: (i - editor.minLineY) * editor.rowHeight,\n left: 0,\n width: editor.lines[i].length * editor.columnWidth,\n height: editor.rowHeight,\n })\n }\n if (selection.end.rowIndex <= editor.maxLineY) {\n visibleSelections.push({\n top: (selection.end.rowIndex - editor.minLineY) * editor.rowHeight,\n left: 0,\n width: selection.end.columnIndex * editor.columnWidth,\n height: editor.rowHeight,\n })\n }\n }\n }\n return visibleSelections\n}\n","import * as TextDocument from '../TextDocument/TextDocument.js'\n\n/**\n *\n * @param {(line:string, lineState)=>any} tokenizeLine\n * @param {string} line\n * @param {any} lineState\n * @returns\n */\nconst safeTokenizeLine = (tokenizeLine, line, lineState) => {\n try {\n lineState = tokenizeLine(line, lineState)\n if (!lineState || !lineState.tokens || !lineState.state) {\n throw new Error('invalid tokenization result')\n }\n } catch (error) {\n console.error(error)\n return {\n tokens: [{ length: line.length, type: 0 }],\n lineState,\n }\n }\n return lineState\n}\n\n// const getTokens = (editor) => {\n// const tokens = []\n// const lines = editor.lines\n// let lineState = editor.tokenizer.initialLineState\n// // TODO lineCache should probably only store endOfLineState\n// // because storing tokens could maybe result in high\n// // memory usage (e.g. 10000 lines * 10 tokens per line = 100 000 objects stored)\n// // on the other hand, scrolling should be really fast, and needlessly\n// // recomputing tokens would be a waste of cpu time and cause lots of garbage collection\n// const lineCache = editor.lineCache\n// // TODO only compute tokens in viewport\n// // console.log('minmax', editor.minLineY, editor.maxLineY)\n// // const cachedLineStates = Object.create(null)\n// // if(cachedLineStates[i])\n// const tokenizeLine = editor.tokenizer.tokenizeLine\n// for (let i = 0; i < lines.length; i++) {\n// if (lineCache[i]) {\n// // console.log('cached line')\n// tokens.push(lineCache[i].tokens)\n// continue\n// }\n// // TODO use TextDocument.getLine so that text document buffer implementation\n// // can be changed (e.g. vscode has piece tree, codemirror has something like chunked arrays / string[][])\n// const line = lines[i]\n// lineState = safeTokenizeLine(tokenizeLine, line, lineState)\n// const newTokens = lineState.tokens\n// lineCache[i] = lineState\n// tokens.push(newTokens)\n// }\n// return tokens\n// }\n\nconst getTokensFromCache = (result) => {\n return result.tokens\n}\n\n// TODO vscode has an interesting approach for tokenizing:\n// first, the viewport is tokenized from startLine to endLine\n// the first iteration might not be accurate because for example\n// there can be a open multiline comment at the start of the file\n// which is not taken into account for this first tokenization\n// but after some time (onIdle), the background tokenizer is invoked\n// that gives accurate results (but can take much longer since it\n// might need to parse from the start of the file)\n//\n// another approach would be to show plain text (non-highlighted)\n// when scrolling fast and the tokenizer is too slow to parse from\n// the start of the file\n//\n// the approach implemented below for tokenizing the viewport\n// is just to parse from the start of the file if necessary\n// that doesn't scale well for large files but it is simpler\n// to implement for now\n\n// TODO only send changed lines to renderer process instead of all lines in viewport\nconst getTokensViewport = (editor, startLineIndex, endLineIndex) => {\n const invalidStartIndex = editor.invalidStartIndex\n const lineCache = editor.lineCache\n if (endLineIndex <= invalidStartIndex) {\n return lineCache\n .slice(startLineIndex + 1, endLineIndex + 1)\n .map(getTokensFromCache)\n }\n const tokenizeLine = editor.tokenizer.tokenizeLine\n if (startLineIndex <= invalidStartIndex) {\n for (let i = invalidStartIndex; i < endLineIndex; i++) {\n const lineState =\n i === 0 ? editor.tokenizer.initialLineState : editor.lineCache[i]\n const line = editor.lines[i]\n const result = safeTokenizeLine(tokenizeLine, line, lineState)\n // TODO if lineCacheEnd matches the one before, skip tokenizing lines after\n lineCache[i + 1] = result\n }\n editor.invalidStartIndex = endLineIndex\n return lineCache\n .slice(startLineIndex + 1, endLineIndex + 1)\n .map(getTokensFromCache)\n }\n // TODO combine for loops\n for (let i = invalidStartIndex; i < startLineIndex; i++) {\n const lineState = editor.lineCache[i]\n const line = editor.lines[i]\n const result = safeTokenizeLine(tokenizeLine, line, lineState)\n lineCache[i + 1] = result\n }\n for (let i = startLineIndex; i < endLineIndex; i++) {\n const lineState = editor.lineCache[i]\n const line = editor.lines[i]\n const result = safeTokenizeLine(tokenizeLine, line, lineState)\n lineCache[i + 1] = result\n editor.invalidStartIndex = endLineIndex\n }\n return lineCache\n .slice(startLineIndex + 1, endLineIndex + 1)\n .map(getTokensFromCache)\n}\n\nconst invalidateLine = (editor, index) => {\n editor.validLines[index] = false\n if (index < editor.invalidStartIndex) {\n editor.invalidStartIndex = index\n }\n}\n\nconst applyChangesToSyntaxHighlighting = (editor, changes) => {\n // TODO invalidate lines that are affected\n}\n\n// const getTokensIncremental = (editor, min, max) => {\n// const currentLength = editor.lineStateCache.length\n// const tokens = []\n// const lines = editor.lines\n// let lineState = editor.tokenizer.initialLineState\n// for (let i = currentLength; i < max; i++) {\n// const line = lines[i]\n// try {\n// lineState = editor.tokenizer.tokenizeLine(line, lineState)\n// if (!lineState || !lineState.tokens || !lineState.state) {\n// throw new Error('invalid tokenization result')\n// }\n// } catch (error) {\n// tokens.push([{ length: line.length, type: 0 }])\n// console.error(error)\n// // renderWithoutSyntaxHighlighting(state, firstRow, lastRow)\n// continue\n// }\n// const newTokens = lineState.tokens\n// tokens.push(newTokens)\n// }\n// return tokens\n// }\n\n// const getLineInfosIncremental = (editor, tokens, minLineY, maxLineY) => {\n// const result = []\n// const lines = editor.lines\n// const TokenMap = editor.tokenizer.TokenMap\n// for (let i = minLineY; i < maxLineY; i++) {\n// result.push(getLineInfo(lines[i], tokens[i], TokenMap))\n// }\n// return result\n// }\n\nconst getDecorationClassName = (type) => {\n switch (type) {\n case 2816:\n case 2817:\n case 2825:\n case 2824:\n case 2856:\n case 2857:\n case 3072:\n case 3073:\n case 3077:\n case 3088:\n return 'Function'\n case 1792:\n case 1793:\n return 'Parameter'\n case 512:\n case 513:\n case 769:\n case 1024:\n case 1536:\n case 1537:\n case 1544:\n case 1545:\n return 'Type'\n case 2048:\n case 2049:\n case 2056:\n case 2057:\n case 2064:\n case 2080:\n case 2081:\n case 2088:\n case 2089:\n case 2313:\n case 2560:\n case 2569:\n case 2561:\n case 2584:\n return 'VariableName'\n case 256:\n case 257:\n case 272:\n return 'Class'\n default:\n return `Unknown-${type}`\n }\n}\n\nconst getLineInfo = (line, tokens, decorations, TokenMap, lineOffset) => {\n let start = 0\n let end = 0\n const lineInfo = []\n let decorationIndex = 0\n for (; decorationIndex < decorations.length; decorationIndex += 3) {\n const decorationOffset = decorations[decorationIndex]\n if (decorationOffset >= lineOffset) {\n break\n }\n }\n\n // console.log({ tokens, decorations })\n for (const token of tokens) {\n const decorationOffset = decorations[decorationIndex]\n let extraClassName = ''\n if (decorationOffset !== undefined) {\n if (decorationOffset - lineOffset === start) {\n const decorationLength = decorations[++decorationIndex]\n const decorationType = decorations[++decorationIndex]\n const decorationModifiers = decorations[++decorationIndex]\n // console.log('MATCHING DECORATION', {\n // decorationIndex,\n // decorationLength,\n // decorationType,\n // decorationModifiers,\n // })\n extraClassName = getDecorationClassName(decorationType)\n }\n }\n\n end += token.length\n const text = line.slice(start, end)\n const className = `Token ${\n extraClassName || TokenMap[token.type] || 'Unknown'\n }`\n lineInfo.push(text, className)\n start = end\n }\n return lineInfo\n}\n\n// TODO need lots of tests for this\nconst getLineInfosViewport = (\n editor,\n tokens,\n minLineY,\n maxLineY,\n minLineOffset\n) => {\n const result = []\n const lines = editor.lines\n const TokenMap = editor.tokenizer.TokenMap\n const decorations = editor.decorations\n let offset = minLineOffset\n for (let i = minLineY; i < maxLineY; i++) {\n const line = lines[i]\n result.push(\n getLineInfo(line, tokens[i - minLineY], decorations, TokenMap, offset)\n )\n offset += line.length + 1\n }\n return result\n}\n\nexport const getVisible = (editor) => {\n // console.log({ editor })\n // TODO should separate rendering from business logic somehow\n // currently hard to test because need to mock editor height, top, left,\n // invalidStartIndex, lineCache, etc. just for testing editorType\n // editor.invalidStartIndex = changes[0].start.rowIndex\n const minLineY = editor.minLineY\n const maxLineY = Math.min(\n editor.minLineY + editor.numberOfVisibleLines,\n editor.lines.length\n )\n const tokens = getTokensViewport(editor, minLineY, maxLineY)\n const minLineOffset = TextDocument.offsetAt(editor, {\n rowIndex: minLineY,\n columnIndex: 0,\n })\n const textInfos = getLineInfosViewport(\n editor,\n tokens,\n minLineY,\n maxLineY,\n minLineOffset\n )\n return textInfos\n}\n","import * as RendererProcess from '../RendererProcess/RendererProcess.js'\nimport * as TextDocument from '../TextDocument/TextDocument.js'\nimport * as Tokenizer from '../Tokenizer/Tokenizer.js'\nimport * as EditorCursor from './EditorCursor.js'\nimport * as EditorScrolling from './EditorScrolling.js'\nimport * as EditorSelection from './EditorSelection.js'\nimport * as EditorText from './EditorText.js'\nimport * as Assert from '../Assert/Assert.js'\nimport * as GlobalEventBus from '../GlobalEventBus/GlobalEventBus.js'\n\nconst MINIMUM_SLIDER_SIZE = 20\n\n// TODO\nexport const create = (id, uri, languageId, content) => {\n const tokenizer = Tokenizer.getTokenizer(languageId)\n\n // TODO flatten structure\n return {\n uri,\n languageId,\n lines: content.split('\\n'),\n // TODO cursor should be part of selection,\n // codemirror has selections: Selection[]\n // selectionIndex: number\n cursor: {\n rowIndex: 0,\n columnIndex: 0,\n },\n // TODO how to get the trigger characters here from extension host\n completionTriggerCharacters: [],\n selections: [],\n id,\n tokenizer,\n deltaY: 0,\n minLineY: 0,\n maxLineY: 0,\n numberOfVisibleLines: 0,\n finalY: 0,\n finalDeltaY: 0,\n height: 0,\n top: 0,\n left: 0,\n columnWidth: 0,\n rowHeight: 0,\n fontSize: 0, // TODO find out if it is possible to use all numeric values for settings for efficiency, maybe settings could be an array\n letterSpacing: 0,\n scrollBarHeight: 0,\n undoStack: [],\n // TODO maybe put these into separate tokenization module\n lineCache: [],\n validLines: [],\n invalidStartIndex: 0,\n decorations: [],\n }\n}\n\nexport const dispose = (id) => {\n // delete state.editors[id]\n}\n\nexport const renderText = (editor) => {\n Assert.object(editor)\n const textInfos = EditorText.getVisible(editor)\n RendererProcess.send([\n /* Viewlet.send */ 3024,\n /* id */ 'EditorText',\n /* method */ 'renderText',\n /* scrollBarY */ editor.scrollBarY,\n /* scrollBarHeight */ editor.scrollBarHeight,\n /* textInfos */ textInfos,\n /* fontSize */ editor.fontSize, // TODO only send these properties once on first render\n /* lineHeight */ editor.rowHeight,\n /* letterSpacing */ editor.letterSpacing,\n ])\n}\n\nexport const renderTextAndCursorAndSelectionsCommands = (editor) => {\n Assert.object(editor)\n const textInfos = EditorText.getVisible(editor)\n const cursorInfos = EditorCursor.getVisible(editor)\n const selectionInfos = EditorSelection.getVisible(editor)\n const scrollBarHeight = editor.scrollBarHeight\n const scrollBarY =\n (editor.deltaY / editor.finalDeltaY) *\n (editor.height - editor.scrollBarHeight)\n return [\n /* Viewlet.invoke */ 3024,\n /* id */ 'EditorText',\n /* method */ 'renderTextAndCursorsAndSelections',\n /* scrollBarY */ scrollBarY,\n /* scrollBarHeight */ scrollBarHeight,\n /* textInfos */ textInfos,\n /* cursorInfos */ cursorInfos,\n /* selectionInfos */ selectionInfos,\n ]\n}\n\nexport const renderTextAndCursorAndSelections = (editor) => {\n const commands = renderTextAndCursorAndSelectionsCommands(editor)\n RendererProcess.send(commands)\n}\n\nexport const setTokenizer = (editor, tokenizer) => {\n editor.tokenizer = Tokenizer.getTokenizer(editor.languageId)\n editor.invalidStartIndex = 0\n}\n\n// TODO\nexport const setDeltaYFixedValue = (editor, value) => {\n return EditorScrolling.setDeltaY(editor, value)\n // renderTextAndCursorAndSelections(editor)\n}\n\nexport const setDeltaY = (editor, value) => {\n return setDeltaYFixedValue(editor, editor.deltaY + value)\n}\n\nexport const scheduleSelections = (editor, selectionEdits) => {\n return EditorSelection.setSelections(editor, selectionEdits)\n // const cursorInfos = EditorCursor.getVisible(editor)\n // const selectionInfos = EditorSelection.getVisible(editor)\n // RendererProcess.send([\n // /* Viewlet.invoke */ 3024,\n // /* id */ 'EditorText',\n // /* method */ 'renderCursorsAndSelections',\n // /* cursorInfos */ cursorInfos,\n // /* selectionInfos */ selectionInfos,\n // ])\n}\n\nexport const scheduleSelectionsAndScrollPosition = (\n editor,\n selectionEdits,\n deltaY\n) => {\n const newEditor1 = EditorSelection.setSelections(editor, selectionEdits)\n const newEditor2 = EditorScrolling.setDeltaY(newEditor1, deltaY)\n return newEditor2\n // EditorScrolling.setDeltaY(editor, deltaY)\n // EditorSelection.setSelections(editor, selectionEdits)\n // const cursorInfos = EditorCursor.getVisible(editor)\n // const selectionInfos = EditorSelection.getVisible(editor)\n // const textInfos = EditorText.getVisible(editor)\n // // TODO scrollbar calculation duplicate code\n // const scrollBarY =\n // (editor.deltaY / editor.finalDeltaY) *\n // (editor.height - editor.scrollBarHeight)\n // const scrollBarHeight = editor.scrollBarHeight\n // RendererProcess.send([\n // /* Viewlet.invoke */ 3024,\n // /* id */ 'EditorText',\n // /* method */ 'renderTextAndCursorsAndSelections',\n // /* deltaY */ scrollBarY,\n // /* scrollBarHeight */ scrollBarHeight,\n // /* textInfos */ textInfos,\n // /* cursorInfos */ cursorInfos,\n // /* selectionInfos */ selectionInfos,\n // ])\n}\n\nexport const scheduleDocumentAndCursorsSelections = (editor, changes) => {\n Assert.object(editor)\n Assert.array(changes)\n if (changes.length === 0) {\n return editor\n }\n const newLines = TextDocument.applyEdits(editor, changes)\n const partialNewEditor = {\n ...editor,\n lines: newLines,\n }\n console.log({ partialNewEditor })\n const newSelections = EditorSelection.applyEdit(partialNewEditor, changes)\n // TODO should separate rendering from business logic somehow\n // currently hard to test because need to mock editor height, top, left,\n // invalidStartIndex, lineCache, etc. just for testing editorType\n const invalidStartIndex = Math.min(\n editor.invalidStartIndex,\n changes[0].start.rowIndex\n )\n\n // TODO maybe put undostack into indexeddb so that there is no memory leak in application\n // then clear old undostack from indexeddb after 3 days\n // TODO should push to undostack after rendering\n\n const newEditor = {\n ...partialNewEditor,\n lines: newLines,\n selections: newSelections,\n cursor: newSelections[0].end,\n undoStack: [...editor.undoStack, changes],\n invalidStartIndex,\n }\n GlobalEventBus.emitEvent('editor.change', newEditor, changes)\n\n return newEditor\n // const textInfos = EditorText.getVisible(editor)\n // const cursorInfos = EditorCursor.getVisible(editor)\n // const selectionInfos = EditorSelection.getVisible(editor)\n\n // if (editor.undoStack) {\n // editor.undoStack.push(changes)\n // }\n // RendererProcess.send([\n // /* Viewlet.invoke */ 3024,\n // /* id */ 'EditorText',\n // /* method */ 'renderTextAndCursorsAndSelections',\n // /* deltaY */ editor.deltaY,\n // /* scrollBarHeight */ editor.scrollBarHeight,\n // /* textInfos */ textInfos,\n // /* cursorInfos */ cursorInfos,\n // /* selectionInfos */ selectionInfos,\n // ])\n}\n\nexport const scheduleDocument = async (editor, changes) => {\n // console.log('before')\n // console.log([...editor.lines])\n const newLines = TextDocument.applyEdits(editor, changes)\n // console.log('after')\n // console.log([...editor.lines])\n const invalidStartIndex = changes[0].start.rowIndex\n // if (editor.undoStack) {\n // editor.undoStack.push(changes)\n // }\n // const cursorInfos = EditorCursor.getVisible(editor)\n // const selectionInfos = EditorSelection.getVisible(editor)\n // const textInfos = EditorText.getVisible(editor)\n // TODO scrollbar calculation duplicate code\n // const scrollBarY =\n // (editor.deltaY / editor.finalDeltaY) *\n // (editor.height - editor.scrollBarHeight)\n // const scrollBarHeight = editor.scrollBarHeight\n\n const newEditor = {\n ...editor,\n undoStack: [...editor.undoStack, changes],\n lines: newLines,\n invalidStartIndex,\n }\n // TODO change event should be emitted after rendering\n GlobalEventBus.emitEvent('editor.change', editor, changes)\n return newEditor\n // RendererProcess.send([\n // /* Viewlet.invoke */ 3024,\n // /* id */ 'EditorText',\n // /* method */ 'renderTextAndCursorsAndSelections',\n // /* deltaY */ scrollBarY,\n // /* scrollBarHeight */ scrollBarHeight,\n // /* textInfos */ textInfos,\n // /* cursorInfos */ cursorInfos,\n // /* selectionInfos */ selectionInfos,\n // ])\n}\n\nexport const hasSelection = (editor) => {\n // TODO editor.selections should always be defined\n return editor.selections && editor.selections.length > 0\n}\n\nexport const setBounds = (editor, top, left, height, columnWidth) => {\n const numberOfVisibleLines = Math.floor(height / 20)\n const maxLineY = Math.min(numberOfVisibleLines, editor.lines.length)\n const finalY = Math.max(editor.lines.length - numberOfVisibleLines, 0)\n const finalDeltaY = finalY * 20\n return {\n ...editor,\n top,\n left,\n height,\n columnWidth,\n numberOfVisibleLines,\n maxLineY,\n finalY,\n finalDeltaY,\n }\n}\n\nconst getScrollBarHeight = (editorHeight, contentHeight) => {\n if (editorHeight > contentHeight) {\n return 0\n }\n return Math.max(\n Math.round(editorHeight ** 2 / contentHeight),\n MINIMUM_SLIDER_SIZE\n )\n}\n\nexport const setText = (editor, text) => {\n const lines = text.split('\\n')\n const maxLineY = Math.min(editor.numberOfVisibleLines, lines.length)\n const finalY = Math.max(lines.length - editor.numberOfVisibleLines, 0)\n const finalDeltaY = finalY * 20\n const contentHeight = lines.length * editor.rowHeight\n const scrollBarHeight = getScrollBarHeight(editor.height, contentHeight)\n return {\n ...editor,\n lines,\n maxLineY,\n finalY,\n finalDeltaY,\n scrollBarHeight,\n }\n}\n\nexport const render = (oldState, newState) => {\n const changes = []\n if (\n oldState.lines !== newState.lines ||\n oldState.tokenizer !== newState.tokenizer ||\n oldState.minLineY !== newState.minLineY ||\n oldState.decorations !== newState.decorations\n ) {\n const textInfos = EditorText.getVisible(newState)\n changes.push([\n /* Viewlet.send */ 3024,\n /* id */ 'EditorText',\n /* method */ 'setText',\n /* textInfos */ textInfos,\n ])\n }\n\n if (oldState.selections !== newState.selections) {\n const cursorInfos = EditorCursor.getVisible(newState)\n const selectionInfos = EditorSelection.getVisible(newState)\n changes.push([\n /* Viewlet.send */ 3024,\n /* id */ 'EditorText',\n /* method */ 'setSelections',\n /* cursorInfos */ cursorInfos,\n /* selectionInfos */ selectionInfos,\n ])\n }\n if (\n oldState.deltaY !== newState.deltaY ||\n oldState.scrollBarHeight !== newState.scrollBarHeight\n ) {\n const scrollBarY =\n (newState.deltaY / newState.finalDeltaY) *\n (newState.height - newState.scrollBarHeight)\n changes.push([\n /* Viewlet.send */ 3024,\n /* id */ 'EditorText',\n /* method */ 'setScrollBar',\n /* scrollBarY */ scrollBarY,\n /* scrollBarHeight */ newState.scrollBarHeight,\n ])\n }\n\n return changes\n}\n","import * as Editor from '../Editor/Editor.js'\n\nexport const editorCancelSelection = (editor) => {\n const selection = editor.selections[0]\n if (editor.selections.length === 1 && selection.start === selection.end) {\n return editor\n }\n const selectionEdits = [\n {\n start: selection.start,\n end: selection.start,\n },\n ]\n return Editor.scheduleSelections(editor, selectionEdits)\n}\n","import * as Assert from '../Assert/Assert.js'\n\nexport const at = (editor, x, y, offset) => {\n Assert.object(editor)\n Assert.number(x)\n Assert.number(y)\n Assert.number(offset)\n const rowIndex = Math.floor(\n (y - editor.top + editor.deltaY) / editor.rowHeight\n )\n const columnIndex = offset\n return {\n rowIndex,\n columnIndex,\n }\n}\n\n/**\n * @deprecated this doesn't work for variable width characters (unicode/emoji).\n * Use position computation in renderer process instead\n *\n * @param {object} editor\n * @param {object} position\n * @returns\n */\nexport const x = (editor, position) => {\n const x = position.columnIndex * editor.columnWidth + editor.left\n return x\n}\n\nexport const y = (editor, position) => {\n const y = (position.rowIndex + 1) * editor.rowHeight + editor.top\n return y\n}\n","import * as Assert from '../Assert/Assert.js'\nimport * as FuzzySearch from '../FuzzySearch/FuzzySearch.js'\nimport * as GlobalEventBus from '../GlobalEventBus/GlobalEventBus.js'\nimport * as RendererProcess from '../RendererProcess/RendererProcess.js'\nimport * as ViewletManager from '../ViewletManager/ViewletManager.js'\nimport * as EditorBlur from './EditorCommandBlur.js'\nimport * as EditorPosition from './EditorCommandPosition.js'\nimport * as Viewlet from '../Viewlet/Viewlet.js'\n\nconst handleBlur = () => {\n close()\n}\n\n/**\n *\n * @param {string} line\n * @param {number} columnIndex\n * @returns\n */\nconst getLeadingWord = (line, columnIndex) => {\n console.log({ line })\n Assert.string(line)\n Assert.number(columnIndex)\n for (let i = columnIndex - 1; i >= 0; i--) {\n if (!RE_CHARACTER.test(line[i])) {\n console.log({ i, columnIndex })\n return line.slice(i + 1, columnIndex)\n }\n }\n return line.slice(0, columnIndex)\n}\n\nconst filterCompletionItems = (completionItems, leadingWord) => {\n const filterCompletionItem = (completionItem) => {\n const labelMatch = FuzzySearch.fuzzySearch(\n leadingWord,\n completionItem.label\n )\n return labelMatch\n }\n console.log({ completionItems, leadingWord })\n const filtered = completionItems.filter(filterCompletionItem)\n return filtered\n}\n\nconst handleSelectionChange = (editor, selectionChanges) => {\n const selection = selectionChanges[0]\n const end = selection.end\n if (end.rowIndex !== state.rowIndex) {\n close()\n return\n }\n const line = editor.lines[end.rowIndex]\n const leadingWord = getLeadingWord(line, end.columnIndex)\n const oldStart = state.columnIndex - state.leadingWord.length\n const newStart = end.columnIndex - leadingWord.length\n if (oldStart !== newStart) {\n close()\n return\n }\n // TODO move completions widget and filter\n\n // TODO this doesn't work for variable width characters (unicode/emoji)\n\n const filteredCompletionItems = filterCompletionItems(\n state.completionItems,\n leadingWord\n )\n state.filteredCompletionItems = filteredCompletionItems\n state.leadingWord = leadingWord\n console.log({ leadingWord })\n const x = EditorPosition.x(editor, editor.cursor)\n const y = EditorPosition.y(editor, editor.cursor)\n RendererProcess.send([\n /* Viewlet.send */ 3024,\n /* id */ 'EditorCompletion',\n /* method */ 'show',\n /* x */ x,\n /* y */ y,\n /* completionItems */ filteredCompletionItems,\n /* reason */ 1,\n ])\n}\n\nconst handleCursorChange = (anyEditor, cursorChange) => {\n console.log('cursor changed')\n}\n\n// TODO there are still race conditions in this function:\n// - when open is called twice, previous dom nodes can either be reused or the previous dom nodes must be disposed\n\nexport const open = async (editor, openingReason = 1) => {\n const viewlet = ViewletManager.create(\n ViewletManager.getModule,\n 'EditorCompletion',\n 'Widget',\n 'builtin://',\n 0,\n 0,\n 0,\n 0\n )\n\n await ViewletManager.load(viewlet)\n return editor\n\n // if (state.isOpened) {\n // // TODO filter\n // console.log('is already open')\n // return\n // }\n // const loadingDelay = Preferences.get('completions.loadingDelay')\n\n // console.log({ loadingDelay })\n // state.abortController.abort()\n // const abortController = new AbortController()\n // state.abortController = abortController\n // EditorBlur.registerListener(handleBlur) // TODO don't like side effect here\n\n // // TODO when editor is disposed, close completions\n\n // GlobalEventBus.addListener('editor.selectionChange', handleSelectionChange)\n // GlobalEventBus.addListener('editor.cursorChange', handleCursorChange)\n // state.isOpened = true\n // state.openingReason = openingReason\n // state.focusedIndex = 0\n // state.rowIndex = editor.cursor.rowIndex\n // state.columnIndex = editor.cursor.columnIndex\n // state.editor = editor\n // const line = editor.lines[editor.cursor.rowIndex]\n // state.leadingWord = getLeadingWord(line, editor.cursor.columnIndex)\n // // TODO race condition: when blur occurs before items arrive, should not show items\n // await RendererProcess.invoke(\n // /* Viewlet.load */ 3030,\n // /* id */ 'EditorCompletion'\n // )\n // if (abortController.signal.aborted) {\n // console.info('canceled')\n // return\n // }\n // await RendererProcess.invoke(\n // /* Viewlet.openWidget */ 3030,\n // /* id */ 'EditorCompletion'\n // )\n // if (abortController.signal.aborted) {\n // console.info('canceled')\n // return\n // }\n // state.loadingTimeout = setTimeout(showLoading, loadingDelay)\n // if (state.loadingTimeout !== -1) {\n // clearTimeout(state.loadingTimeout)\n // }\n // if (abortController.signal.aborted) {\n // console.info('canceled')\n // return\n // }\n // state.completionItems = newCompletionItems\n\n // const filteredCompletionItems = filterCompletionItems(\n // state.completionItems,\n // state.leadingWord\n // )\n // state.filteredCompletionItems = filteredCompletionItems\n\n // const x = EditorPosition.x(editor, editor.cursor)\n // const y = EditorPosition.y(editor, editor.cursor)\n // // TODO race condition: might already be dispose after each of these calls\n\n // if (newCompletionItems.length === 0 && state.openingReason === 0) {\n // return\n // }\n\n // await RendererProcess.invoke(\n // /* Viewlet.send */ 3024,\n // /* id */ 'EditorCompletion',\n // /* method */ 'show',\n // /* x */ x,\n // /* y */ y,\n // /* items */ filteredCompletionItems,\n // /* reason */ state.openingReason,\n // /* focusedIndex */ state.focusedIndex\n // )\n}\n\nexport const advance = (word) => {\n const includesWord = (completionItem) => {\n return completionItem.includes(word)\n }\n const filteredCompletions = state.completionItems.filter(includesWord)\n RendererProcess.send([\n /* EditorCompletion.open */ 836,\n /* items */ filteredCompletions,\n /* reason */ state.openingReason,\n ])\n}\n\n// export const onDidType = () => {}\n\n// TODO possible race condition\n// also should cancel when new open request comes in\n\nconst RE_CHARACTER = new RegExp(/^\\p{L}/, 'u')\n\nconst isCharacter = (text) => {\n return RE_CHARACTER.test(text)\n}\n\n// TODO trigger characters should be specific per language id\nconst isTriggerCharacter = (text) => {\n return text === '<' || text === '.'\n}\n\nexport const openFromType = async (editor, text) => {\n // if (isCharacter(text) || isTriggerCharacter(text)) {\n // await open(editor, 0)\n // } else if (state.isOpened) {\n // await close()\n // }\n return Viewlet.state.instances['EditorText'].state\n}\n\nexport const close = async (editor) => {\n EditorBlur.removeListener(handleBlur)\n GlobalEventBus.removeListener('editor.selectionChange', handleSelectionChange)\n GlobalEventBus.removeListener('editor.cursorChange', handleCursorChange)\n await Viewlet.dispose('EditorCompletion')\n return editor\n}\n","import * as Editor from '../Editor/Editor.js'\n\nexport const state = {\n isComposing: false,\n compositionText: '',\n}\n\nexport const editorCompositionStart = (editor, event) => {\n state.isComposing = true\n console.log({ event })\n console.log('composition start')\n return editor\n}\n\nconst getCompositionChanges = (editor, data) => {\n const changes = []\n for (const selection of editor.selections) {\n const startRowIndex = selection.start.rowIndex\n const startColumnIndex =\n selection.start.columnIndex - state.compositionText.length\n changes.push({\n start: {\n rowIndex: startRowIndex,\n columnIndex: startColumnIndex,\n },\n end: selection.end,\n inserted: [data],\n deleted: [state.compositionText],\n origin: 'compositionUpdate',\n })\n }\n return changes\n}\n\nexport const editorCompositionUpdate = (editor, data) => {\n const changes = getCompositionChanges(editor, data)\n console.log('composition update', { changes })\n state.compositionText = data\n return Editor.scheduleDocumentAndCursorsSelections(editor, changes)\n}\n\nexport const editorCompositionEnd = (editor, data) => {\n const changes = getCompositionChanges(editor, data)\n console.log('composition end', { changes })\n state.isComposing = false\n state.compositionText = ''\n return Editor.scheduleDocumentAndCursorsSelections(editor, changes)\n}\n","import * as Command from '../Command/Command.js'\nimport * as TextDocument from '../TextDocument/TextDocument.js'\nimport * as Editor from '../Editor/Editor.js'\n\n// TODO add test\nexport const editorCopy = async (editor) => {\n if (!Editor.hasSelection(editor)) {\n // TODO copy line where cursor is\n return editor\n }\n const selection = editor.selections[0]\n const text = TextDocument.getSelectionText(editor, selection).join('\\n')\n console.log({ text })\n try {\n await Command.execute(/* ClipBoard.writeText */ 241, /* text */ text)\n } catch (error) {\n console.warn(error)\n }\n return editor\n}\n","import * as TextDocument from '../TextDocument/TextDocument.js'\nimport * as Editor from '../Editor/Editor.js'\n\n// TODO handle multiline selection\n// TODO handle multiple cursors\n\nexport const editorCopyLineDown = (editor) => {\n const rowIndex = editor.cursor.rowIndex\n const position = {\n rowIndex,\n columnIndex: 0,\n }\n const changes = [\n {\n inserted: [TextDocument.getLine(editor, rowIndex), ''],\n deleted: [''],\n start: position,\n end: position,\n },\n ]\n return Editor.scheduleDocumentAndCursorsSelections(editor, changes)\n}\n","import * as TextDocument from '../TextDocument/TextDocument.js'\nimport * as Editor from '../Editor/Editor.js'\n\nexport const editorCopyLineUp = (editor) => {\n const rowIndex = editor.cursor.rowIndex\n const changes = [\n {\n start: editor.cursor,\n end: editor.cursor,\n inserted: [TextDocument.getLine(editor.textDocument, rowIndex), ''],\n deleted: [''],\n },\n ]\n Editor.scheduleDocumentAndCursorsSelections(editor, changes)\n}\n","export const editorGetPositionLeft = (position, lines, getDelta) => {\n const rowIndex = position.rowIndex\n const columnIndex = position.columnIndex\n if (columnIndex === 0) {\n if (rowIndex === 0) {\n return position\n }\n return {\n rowIndex: rowIndex - 1,\n columnIndex: lines[rowIndex - 1].length,\n }\n }\n const delta = getDelta(lines[rowIndex], columnIndex)\n return {\n rowIndex,\n columnIndex: columnIndex - delta,\n }\n}\n","import * as EditorGetPositionLeft from './EditorCommandGetPositionLeft.js'\nimport * as Editor from '../Editor/Editor.js'\n\nconst getNewSelection = (selection, lines, getDelta) => {\n if (selection.start !== selection.end) {\n return {\n start: selection.start,\n end: selection.start,\n }\n }\n const positionLeft = EditorGetPositionLeft.editorGetPositionLeft(\n selection.start,\n lines,\n getDelta\n )\n return {\n start: positionLeft,\n end: positionLeft,\n }\n}\n\nexport const editorCursorHorizontalLeft = (editor, getDelta) => {\n const selectionEdits = []\n const lines = editor.lines\n for (const selection of editor.selections) {\n const newSelection = getNewSelection(selection, lines, getDelta)\n selectionEdits.push(newSelection)\n }\n return Editor.scheduleSelections(editor, selectionEdits)\n}\n","export const supported = () => {\n return 'Segmenter' in Intl\n}\n\nexport const create = () => {\n // @ts-ignore\n const segmenter = new Intl.Segmenter()\n return {\n at(line, index) {\n const segments = segmenter.segment(line)\n return segments.containing(index)\n },\n visualIndex(line, index) {\n const segments = segmenter.segment(line)\n let currentVisualIndex = 0\n for (const segment of segments) {\n if (segment.index >= index) {\n return currentVisualIndex\n }\n currentVisualIndex++\n }\n return currentVisualIndex\n },\n modelIndex(line, visualIndex) {\n const segments = segmenter.segment(line)\n let currentVisualIndex = 0\n for (const segment of segments) {\n if (currentVisualIndex >= visualIndex) {\n return segment.index\n }\n console.log({ segment })\n currentVisualIndex++\n }\n return line.length\n },\n }\n}\n","import * as TextSegmenter from '../TextSegmenter/TextSegmenter.js'\n\nexport const characterLeft = (line, columnIndex) => {\n if (!TextSegmenter.supported()) {\n return 1\n }\n const segmenter = TextSegmenter.create()\n const last = segmenter.at(line, columnIndex - 1)\n return columnIndex - last.index\n}\n\nexport const characterRight = (line, columnIndex) => {\n if (!TextSegmenter.supported()) {\n return 1\n }\n const segmenter = TextSegmenter.create()\n const next = segmenter.at(line, columnIndex)\n return next.segment.length\n}\n\nconst isWhitespace = (char) => {\n return char === ' ' || char === '\\t'\n}\n\nexport const lineCharacterStart = (line, columnIndex) => {\n if (line.length === 0) {\n return 0\n }\n for (let i = 0; i < columnIndex; i++) {\n if (!isWhitespace(line[i])) {\n return columnIndex - i\n }\n }\n return columnIndex\n}\n\nexport const lineEnd = (line, columnIndex) => {\n return line.length - columnIndex\n}\n\nconst tryRegexArray = (partialLine, regexArray) => {\n for (const regex of regexArray) {\n const match = partialLine.match(regex)\n if (match) {\n return match[0].length\n }\n }\n return 1\n}\n\nconst RE_WORD_LEFT_1 = /(?<![A-Z])[A-Z]+\\s*$/\nconst RE_WORD_LEFT_2 = /[\\u00C0-\\u017F\\w\\-]+>?\\s*$/\nconst RE_WORD_LEFT_3 = /[a-zA-Z]+[^a-zA-Z\\d]+\\s*$/\nconst RE_WORD_LEFT_4 = /\\s+$/\nconst RE_WORD_LEFT_5 = /[^a-zA-Z\\d]+\\s*$/\nconst RE_WORD_LEFT = [\n RE_WORD_LEFT_1,\n RE_WORD_LEFT_2,\n RE_WORD_LEFT_3,\n RE_WORD_LEFT_4,\n RE_WORD_LEFT_5,\n]\n\nexport const wordLeft = (line, columnIndex) => {\n const partialLine = line.slice(0, columnIndex)\n return tryRegexArray(partialLine, RE_WORD_LEFT)\n}\n\nconst RE_WORD_RIGHT_1 = /^\\s*[\\u00C0-\\u017F\\w]+/i\nconst RE_WORD_RIGHT_2 = /^[^a-zA-Z\\d]+\\w*/\nconst RE_WORD_RIGHT = [RE_WORD_RIGHT_1, RE_WORD_RIGHT_2]\n\nexport const wordRight = (line, columnIndex) => {\n const partialLine = line.slice(columnIndex)\n return tryRegexArray(partialLine, RE_WORD_RIGHT)\n}\n\nconst RE_PARTIAL_WORD_LEFT_1 = /(?<![A-Z])[A-Z]{2}[a-z]+$/\nconst RE_PARTIAL_WORD_LEFT_2 = /(?=[A-Z]+)[A-Z][a-z]+$/\nconst RE_PARTIAL_WORD_LEFT_3 = /[A-Z]+[a-z]+\\d?\\s*$/\nconst RE_PARTIAL_WORD_LEFT_4 = /[A-Z]+\\d*\\s*$/\nconst RE_PARTIAL_WORD_LEFT_5 = /[a-z]+\\d*\\s*$/\nconst RE_PARTIAL_WORD_LEFT_6 = /[A-Z]*[a-z]+_+\\s*$/\nconst RE_PARTIAL_WORD_LEFT_7 = /(?<![A-Z])[A-Z]_+\\s*$/\nconst RE_PARTIAL_WORD_LEFT_8 = /[a-z]+\\s*$/\nconst RE_PARTIAL_WORD_LEFT_9 = /[^a-zA-Z\\d\\s]+\\s*$/\nconst RE_PARTIAL_WORD_LEFT = [\n RE_PARTIAL_WORD_LEFT_1,\n RE_PARTIAL_WORD_LEFT_2,\n RE_PARTIAL_WORD_LEFT_3,\n RE_PARTIAL_WORD_LEFT_4,\n RE_PARTIAL_WORD_LEFT_5,\n RE_PARTIAL_WORD_LEFT_6,\n RE_PARTIAL_WORD_LEFT_7,\n RE_PARTIAL_WORD_LEFT_8,\n RE_PARTIAL_WORD_LEFT_9,\n]\n\nexport const wordPartLeft = (line, columnIndex) => {\n const partialLine = line.slice(0, columnIndex)\n return tryRegexArray(partialLine, RE_PARTIAL_WORD_LEFT)\n}\n\nconst RE_PARTIAL_WORD_RIGHT_1 = /^\\s*[a-z]+\\d?/\nconst RE_PARTIAL_WORD_RIGHT_2 = /^\\s*[A-Z]{2}[a-z\\d]+/\nconst RE_PARTIAL_WORD_RIGHT_3 = /^\\s*[A-Z]+(?=[A-Z][a-z]+)/\nconst RE_PARTIAL_WORD_RIGHT_4 = /^\\s*[A-Z]+[a-z]*\\d*/\nconst RE_PARTIAL_WORD_RIGHT_5 = /^\\s*_+[a-z]*\\d?/\nconst RE_PARTIAL_WORD_RIGHT_6 = /^\\s*[^\\da-zA-Z\\s]+/\n// const RE_PARTIAL_WORD_RIGHT_6 = /^\\s*[A-Z][A-Z](?![A-Z])*/\n// const RE_PARTIAL_WORD_RIGHT_7 = /^\\s*[A-Z][A-Z][a-z]*/\n\nconst ARRAY_PARTIAL_WORD_RIGHT_1 = [\n RE_PARTIAL_WORD_RIGHT_1,\n // RE_PARTIAL_WORD_RIGHT_2,\n RE_PARTIAL_WORD_RIGHT_3,\n RE_PARTIAL_WORD_RIGHT_4,\n RE_PARTIAL_WORD_RIGHT_5,\n RE_PARTIAL_WORD_RIGHT_6,\n]\nconst ARRAY_PARTIAL_WORD_RIGHT_2 = [\n RE_PARTIAL_WORD_RIGHT_1,\n RE_PARTIAL_WORD_RIGHT_2,\n RE_PARTIAL_WORD_RIGHT_3,\n RE_PARTIAL_WORD_RIGHT_4,\n RE_PARTIAL_WORD_RIGHT_5,\n RE_PARTIAL_WORD_RIGHT_6,\n]\n\nconst RE_UPPERCASE = /[A-Z]/\n\nexport const wordPartRight = (line, columnIndex) => {\n const partialLine = line.slice(columnIndex)\n // line[columnIndex]//?\n if (RE_UPPERCASE.test(line[columnIndex - 1])) {\n return tryRegexArray(partialLine, ARRAY_PARTIAL_WORD_RIGHT_1)\n }\n return tryRegexArray(partialLine, ARRAY_PARTIAL_WORD_RIGHT_2)\n}\n\n// wordPartRight('\"command\": \"actions.find\"', 8) //?\n// 'DDa'.match(RE_PARTIAL_WORD_RIGHT_1) //?\n// wordPartRight('DDa', 0) //?\n// wordPartRight('DEBUGEntry', 3) //?\n\nexport const line = (line) => {}\n","import * as EditorCursorHorizontalLeft from './EditorCommandCursorHorizontalLeft.js'\nimport * as EditorDelta from './EditorCommandDelta.js'\n\nexport const editorCursorCharacterLeft = (editor) => {\n return EditorCursorHorizontalLeft.editorCursorHorizontalLeft(\n editor,\n EditorDelta.characterLeft\n )\n}\n","export const editorGetPositionRight = (position, lines, getDelta) => {\n const rowIndex = position.rowIndex\n const columnIndex = position.columnIndex\n if (columnIndex >= lines[rowIndex].length) {\n if (rowIndex >= lines.length) {\n return position\n }\n return {\n rowIndex: rowIndex + 1,\n columnIndex: 0,\n }\n }\n const delta = getDelta(lines[rowIndex], columnIndex)\n return {\n rowIndex,\n columnIndex: columnIndex + delta,\n }\n}\n","import * as EditorGetPositionRight from './EditorCommandGetPositionRight.js'\nimport * as Editor from '../Editor/Editor.js'\n\nconst getNewSelection = (selection, lines, getDelta) => {\n if (selection.start !== selection.end) {\n return {\n start: selection.end,\n end: selection.end,\n }\n }\n const positionRight = EditorGetPositionRight.editorGetPositionRight(\n selection.end,\n lines,\n getDelta\n )\n return {\n start: positionRight,\n end: positionRight,\n }\n}\n\nexport const editorCursorHorizontalRight = (editor, getDelta) => {\n const selectionEdits = []\n const lines = editor.lines\n for (const selection of editor.selections) {\n const newSelection = getNewSelection(selection, lines, getDelta)\n selectionEdits.push(newSelection)\n }\n return Editor.scheduleSelections(editor, selectionEdits)\n}\n","import * as EditorCursorHorizontalRight from './EditorCommandCursorHorizontalRight.js'\nimport * as EditorDelta from './EditorCommandDelta.js'\n\nexport const editorCursorsCharacterRight = (editor) => {\n return EditorCursorHorizontalRight.editorCursorHorizontalRight(\n editor,\n EditorDelta.characterRight\n )\n}\n","import * as Editor from '../Editor/Editor.js'\nimport * as TextDocument from '../TextDocument/TextDocument.js'\nimport * as TextSegmenter from '../TextSegmenter/TextSegmenter.js'\n\nconst editorCursorsVerticalWithIntlSegmenter = (\n editor,\n getPosition,\n getEdgePosition,\n delta\n) => {\n const edgePosition = getEdgePosition(editor)\n const moveSelection = (selection) => {\n const position = getPosition(selection)\n if (position.rowIndex === edgePosition.rowIndex) {\n return {\n start: edgePosition,\n end: edgePosition,\n }\n }\n\n const lineCurrent = TextDocument.getLine(editor, position.rowIndex)\n const lineOther = TextDocument.getLine(editor, position.rowIndex + delta)\n\n const segmenter = TextSegmenter.create()\n const lineCurrentVisualIndex = segmenter.visualIndex(\n lineCurrent,\n position.columnIndex\n )\n\n const lineOtherModelIndex = segmenter.modelIndex(\n lineOther,\n lineCurrentVisualIndex\n )\n\n const newPosition = {\n rowIndex: position.rowIndex + delta,\n columnIndex: lineOtherModelIndex,\n }\n return {\n start: newPosition,\n end: newPosition,\n }\n }\n const selectionEdits = editor.selections.map(moveSelection)\n console.log({ selectionEdits })\n return Editor.scheduleSelections(editor, selectionEdits)\n}\n\nconst moveSelectionWithoutIntlSegmenter = (selection) => {\n if (selection.start.rowIndex === 0) {\n const newPosition = {\n rowIndex: 0,\n columnIndex: 0,\n }\n return {\n start: newPosition,\n end: newPosition,\n }\n }\n const newPosition = {\n rowIndex: selection.start.rowIndex - 1,\n columnIndex: selection.start.columnIndex,\n }\n return {\n start: newPosition,\n end: newPosition,\n }\n}\n\nconst editorCursorsVerticalWithoutIntlSegmenter = (editor) => {\n const selectionEdits = editor.selections.map(\n moveSelectionWithoutIntlSegmenter\n )\n return Editor.scheduleSelections(editor, selectionEdits)\n}\n\nexport const editorCommandCursorVertical = (\n editor,\n getPosition,\n getEdgePosition,\n delta\n) => {\n if (TextSegmenter.supported()) {\n return editorCursorsVerticalWithIntlSegmenter(\n editor,\n getPosition,\n getEdgePosition,\n delta\n )\n }\n return editorCursorsVerticalWithoutIntlSegmenter(editor)\n}\n","import * as EditorCursorVertical from './EditorCommandCursorVertical.js'\n\nconst getPosition = (selection) => {\n return selection.end\n}\n\nconst getEdgePosition = (editor) => {\n return {\n rowIndex: editor.lines.length - 1,\n columnIndex: editor.lines[editor.lines.length - 1].length,\n }\n}\n\nexport const editorCursorsDown = (editor) => {\n return EditorCursorVertical.editorCommandCursorVertical(\n editor,\n getPosition,\n getEdgePosition,\n 1\n )\n}\n","import * as EditorCursorHorizontalRight from './EditorCommandCursorHorizontalRight.js'\nimport * as EditorDelta from './EditorCommandDelta.js'\n\nexport const editorCursorEnd = (editor) => {\n return EditorCursorHorizontalRight.editorCursorHorizontalRight(\n editor,\n EditorDelta.lineEnd\n )\n}\n","import * as EditorCursorHorizontalLeft from './EditorCommandCursorHorizontalLeft.js'\nimport * as EditorDelta from './EditorCommandDelta.js'\n\nexport const editorCursorsHome = (editor) => {\n return EditorCursorHorizontalLeft.editorCursorHorizontalLeft(\n editor,\n EditorDelta.lineCharacterStart\n )\n}\n","import * as Editor from '../Editor/Editor.js'\n\nexport const editorCursorSet = (editor, position) => {\n const selectionEdits = [\n {\n start: position,\n end: position,\n },\n ]\n return Editor.scheduleSelections(editor, selectionEdits)\n}\n","import * as EditorCursorVertical from './EditorCommandCursorVertical.js'\n\nconst getEdgePosition = (editor) => {\n return {\n rowIndex: 0,\n columnIndex: 0,\n }\n}\n\nconst getPosition = (selection) => {\n return selection.start\n}\n\nexport const editorCursorsUp = (editor) => {\n return EditorCursorVertical.editorCommandCursorVertical(\n editor,\n getPosition,\n getEdgePosition,\n -1\n )\n}\n","import * as EditorCursorHorizontalLeft from './EditorCommandCursorHorizontalLeft.js'\nimport * as EditorDelta from './EditorCommandDelta.js'\n\n// TODO put all of these into editor -> also makes extracting editor into standalone npm package easier (no 20+ modules, just single ~10kB bundle)\n// also can share code between moveCursorWordRight moveCursoryWordLeft deleteCursorWordLeft\n\nexport const editorCursorWordLeft = (editor) => {\n return EditorCursorHorizontalLeft.editorCursorHorizontalLeft(\n editor,\n EditorDelta.wordLeft\n )\n}\n","import * as EditorCursorHorizontalLeft from './EditorCommandCursorHorizontalLeft.js'\nimport * as EditorDelta from './EditorCommandDelta.js'\n\nexport const editorCursorWordPartLeft = (editor) => {\n return EditorCursorHorizontalLeft.editorCursorHorizontalLeft(\n editor,\n EditorDelta.wordPartLeft\n )\n}\n","import * as EditorCursorHorizontalRight from './EditorCommandCursorHorizontalRight.js'\nimport * as EditorDelta from './EditorCommandDelta.js'\n\nexport const editorCursorWordPartRight = (editor) => {\n return EditorCursorHorizontalRight.editorCursorHorizontalRight(\n editor,\n EditorDelta.wordPartRight\n )\n}\n","import * as EditorCursorHorizontalRight from './EditorCommandCursorHorizontalRight.js'\nimport * as EditorDelta from './EditorCommandDelta.js'\n\nexport const editorCursorWordRight = (editor) => {\n return EditorCursorHorizontalRight.editorCursorHorizontalRight(\n editor,\n EditorDelta.wordRight\n )\n}\n","import * as TextDocument from '../TextDocument/TextDocument.js'\n\nexport const editorReplaceSelections = (editor, replacement, origin) => {\n const changes = []\n for (const selection of editor.selections) {\n changes.push({\n start: selection.start,\n end: selection.end,\n inserted: replacement,\n deleted: TextDocument.getSelectionText(editor, selection),\n origin,\n })\n }\n return changes\n}\n","import * as Command from '../Command/Command.js'\nimport * as Editor from '../Editor/Editor.js'\nimport { editorReplaceSelections } from './EditorCommandReplaceSelection.js'\n\nexport const editorCut = async (editor) => {\n const selection = editor.selections[0]\n if (selection.start === selection.end) {\n // TODO cut line where cursor is\n } else {\n // cut selection\n }\n const changes = editorReplaceSelections(editor, [''], 'editorCut')\n const text = changes[0].deleted.join('\\n')\n // TODO remove selected text from document\n await Command.execute(/* ClipBoard.writeText */ 241, /* text */ text)\n return Editor.scheduleDocumentAndCursorsSelections(editor, changes)\n}\n","import * as Editor from '../Editor/Editor.js'\nimport * as TextDocument from '../TextDocument/TextDocument.js'\nimport { editorReplaceSelections } from './EditorCommandReplaceSelection.js'\nimport * as EditorGetPositionLeft from './EditorCommandGetPositionLeft.js'\n\nconst isEmpty = (selection) => {\n return selection.start === selection.end\n}\n\nexport const editorDeleteHorizontalLeft = (editor, getDelta) => {\n if (editor.selections.every(isEmpty)) {\n const changes = []\n const lines = editor.lines\n for (const selection of editor.selections) {\n const positionLeft = EditorGetPositionLeft.editorGetPositionLeft(\n selection.start,\n lines,\n getDelta\n )\n changes.push({\n start: positionLeft,\n end: selection.end,\n inserted: [''],\n deleted: TextDocument.getSelectionText(editor, {\n start: positionLeft,\n end: selection.end,\n }),\n origin: 'delete',\n })\n }\n return Editor.scheduleDocumentAndCursorsSelections(editor, changes)\n } else {\n const changes = editorReplaceSelections(editor, [''], 'delete')\n return Editor.scheduleDocumentAndCursorsSelections(editor, changes)\n }\n}\n","import * as EditorDeleteHorizontalLeft from './EditorCommandDeleteHorizontalLeft.js'\nimport * as EditorDelta from './EditorCommandDelta.js'\n\nexport const editorDeleteAllLeft = (editor) => {\n return EditorDeleteHorizontalLeft.editorDeleteHorizontalLeft(\n editor,\n EditorDelta.lineCharacterStart\n )\n}\n","import * as Editor from '../Editor/Editor.js'\nimport * as TextDocument from '../TextDocument/TextDocument.js'\nimport * as EditorGetPositionRight from './EditorCommandGetPositionRight.js'\nimport { editorReplaceSelections } from './EditorCommandReplaceSelection.js'\n\nconst isEmpty = (selection) => {\n return selection.start === selection.end\n}\n\nexport const editorDeleteHorizontalRight = (editor, getDelta) => {\n if (editor.selections.every(isEmpty)) {\n const changes = []\n const lines = editor.lines\n for (const selection of editor.selections) {\n const positionRight = EditorGetPositionRight.editorGetPositionRight(\n selection.start,\n lines,\n getDelta\n )\n changes.push({\n start: selection.start,\n end: positionRight,\n inserted: [''],\n deleted: TextDocument.getSelectionText(editor, {\n start: selection.start,\n end: positionRight,\n }),\n origin: 'deleteHorizontalRight',\n })\n }\n return Editor.scheduleDocumentAndCursorsSelections(editor, changes)\n } else {\n const changes = editorReplaceSelections(\n editor,\n [''],\n 'deleteHorizontalRight'\n )\n return Editor.scheduleDocumentAndCursorsSelections(editor, changes)\n }\n}\n","import * as EditorDeleteHorizontalRight from './EditorCommandDeleteHorizontalRight.js'\nimport * as EditorDelta from './EditorCommandDelta.js'\n\nexport const editorDeleteAllRight = (editor) => {\n return EditorDeleteHorizontalRight.editorDeleteHorizontalRight(\n editor,\n EditorDelta.lineEnd\n )\n}\n","import * as EditorDeleteHorizontalLeft from './EditorCommandDeleteHorizontalLeft.js'\nimport * as EditorDelta from './EditorCommandDelta.js'\n\nexport const editorDeleteCharacterLeft = (editor) => {\n return EditorDeleteHorizontalLeft.editorDeleteHorizontalLeft(\n editor,\n EditorDelta.characterLeft\n )\n}\n","import * as EditorDeleteHorizontalRight from './EditorCommandDeleteHorizontalRight.js'\nimport * as EditorDelta from './EditorCommandDelta.js'\n\nexport const editorDeleteCharacterRight = (editor) => {\n return EditorDeleteHorizontalRight.editorDeleteHorizontalRight(\n editor,\n EditorDelta.characterRight\n )\n}\n","import * as EditorDeleteHorizontalLeft from './EditorCommandDeleteHorizontalLeft.js'\nimport * as EditorDelta from './EditorCommandDelta.js'\n\nexport const editorDeleteWordLeft = (editor) => {\n return EditorDeleteHorizontalLeft.editorDeleteHorizontalLeft(\n editor,\n EditorDelta.wordLeft\n )\n}\n","import * as EditorDeleteHorizontalLeft from './EditorCommandDeleteHorizontalLeft.js'\nimport * as EditorDelta from './EditorCommandDelta.js'\n\nexport const editorDeleteWordPartLeft = (editor) => {\n EditorDeleteHorizontalLeft.editorDeleteHorizontalLeft(\n editor,\n EditorDelta.wordPartLeft\n )\n}\n","import * as EditorDeleteHorizontalRight from './EditorCommandDeleteHorizontalRight.js'\nimport * as EditorDelta from './EditorCommandDelta.js'\n\nexport const editorDeleteWordPartRight = (editor) => {\n EditorDeleteHorizontalRight.editorDeleteHorizontalRight(\n editor,\n EditorDelta.wordPartRight\n )\n}\n","import * as EditorDeleteHorizontalRight from './EditorCommandDeleteHorizontalRight.js'\nimport * as EditorDelta from './EditorCommandDelta.js'\n\nexport const editorDeleteWordRight = (editor) => {\n return EditorDeleteHorizontalRight.editorDeleteHorizontalRight(\n editor,\n EditorDelta.wordRight\n )\n}\n","import * as Editor from '../Editor/Editor.js'\nimport * as SharedProcess from '../SharedProcess/SharedProcess.js'\n\nexport const editorFormat = async (editor) => {\n // Editor.sync(editor)\n // console.log(textDocument)\n // TODO only transfer incremental edits from shared process\n // TODO also format with cursor\n const newContent = await SharedProcess.invoke(\n /* ExtensionHost.format */ 'ExtensionHost.format',\n /* textDocumentId */ editor.textDocument.id\n )\n if (typeof newContent !== 'string') {\n console.warn('something is wrong with format on save', newContent)\n return\n }\n console.log({ newContent })\n // TODO use incremental edit\n const documentEdits = [\n {\n type: /* replace */ 3,\n text: newContent,\n },\n ]\n Editor.scheduleDocumentAndCursorsSelections(editor, documentEdits)\n}\n","import * as ExtensionHost from './ExtensionHostCore.js'\nimport * as ExtensionHostManagement from './ExtensionHostManagement.js'\n\nexport const executeDefinitionProvider = async (editor, offset) => {\n await ExtensionHostManagement.activateByEvent(\n `onDefinition:${editor.languageId}`\n )\n return ExtensionHost.invoke(\n /* ExtensionHost.getDefinition */ 'ExtensionHostDefinition.executeDefinitionProvider',\n /* textDocumentId */ editor.id,\n /* offset */ offset\n )\n}\n","import * as Assert from '../Assert/Assert.js'\nimport * as RendererProcess from '../RendererProcess/RendererProcess.js'\nimport * as EditorPosition from './EditorCommandPosition.js'\n\nexport const state = {\n timeout: -1,\n}\n\nexport const editorShowMessage = async (editor, position, message) => {\n Assert.object(editor)\n Assert.object(position)\n Assert.string(message)\n const x = EditorPosition.x(editor, position)\n const y = EditorPosition.y(editor, position)\n const displayErrorMessage = message\n await RendererProcess.invoke(\n /* Viewlet.send */ 3024,\n /* id */ 'EditorText',\n /* method */ 'showOverlayMessage',\n /* x */ x,\n /* y */ y,\n /* content */ displayErrorMessage\n )\n const handleTimeout = () => {\n console.log('ran timeout fn')\n editorHideMessage(editor)\n }\n // @ts-ignore\n state.timeout = setTimeout(handleTimeout, 3_000)\n return editor\n}\n\nexport const editorHideMessage = async (editor) => {\n clearTimeout(state.timeout)\n state.timeout = -1\n await RendererProcess.invoke(\n /* Viewlet.send */ 3024,\n /* id */ 'EditorText',\n /* method */ 'hideOverlayMessage'\n )\n return editor\n}\n","import * as Command from '../Command/Command.js'\nimport * as Editor from '../Editor/Editor.js'\nimport * as ExtensionHostDefinition from '../ExtensionHost/ExtensionHostDefinition.js'\nimport * as TextDocument from '../TextDocument/TextDocument.js'\nimport * as EditorShowMessage from './EditorCommandShowMessage.js'\n// TODO race condition, check that editor hasn't been closed in the meantime\n\n// TODO in case of error should show message \"Definition Error: Cannot ready Property x of undefined\"\n\n// TODO show some kind of message maybe (\"No Definition found\")\n\n// TODO possible to do this with events/state machine instead of promises -> enables canceling operations / concurrent calls\nconst getDefinition = async (editor, position) => {\n const offset = TextDocument.offsetAt(editor, position)\n const definition = await ExtensionHostDefinition.executeDefinitionProvider(\n editor,\n offset\n )\n return definition\n}\n\n// TODO there are still race conditions in this function:\n// - when open is called twice, previous dom nodes can either be reused or the previous dom nodes must be disposed\n\nconst getDefinitionErrorMessage = (error) => {\n if (\n error &&\n error.message &&\n error.message.startsWith('Failed to execute definition provider: ')\n ) {\n return error.message.replace('Failed to execute definition provider: ', '')\n }\n return `${error}`\n}\n\nexport const editorGoToDefinition = async (\n editor,\n position = editor.cursor,\n explicit = true\n) => {\n try {\n const definition = await getDefinition(editor, position)\n // TODO if editor is already disposed at this point, do nothing\n if (!definition) {\n // TODO show popup that no definition was found\n // TODO if there was an error, show popup that go to definition resulted in an error\n return EditorShowMessage.editorShowMessage(\n editor,\n position,\n 'No definition found'\n )\n }\n if (\n typeof definition.uri !== 'string' ||\n typeof definition.startOffset !== 'number' ||\n typeof definition.endOffset !== 'number'\n ) {\n console.warn('invalid definition result', definition)\n return editor\n }\n\n if (definition.uri === editor.uri) {\n // TODO set cursor to the definition position\n const position = TextDocument.positionAt(editor, definition.startOffset)\n const selectionEdits = [\n {\n start: position,\n end: position,\n },\n ]\n return Editor.scheduleSelections(editor, selectionEdits)\n }\n // TODO if definition.file is not of type string, show a popup that definition.file must be of type string\n // TODO open file and scroll to that position and set cursor to that position\n\n await Command.execute(/* Main.openUri */ 97, /* uri */ definition.file)\n return editor\n } catch (error) {\n // TODO if editor is already disposed at this point, do nothing\n if (\n error &&\n error.message &&\n error.message.startsWith(\n 'Failed to execute definition provider: No definition provider found'\n )\n ) {\n const displayErrorMessage = getDefinitionErrorMessage(error)\n await EditorShowMessage.editorShowMessage(\n /* editor */ editor,\n /* position */ position,\n /* message */ displayErrorMessage\n )\n return editor\n }\n\n console.error(error)\n\n const displayErrorMessage = getDefinitionErrorMessage(error)\n await EditorShowMessage.editorShowMessage(\n /* editor */ editor,\n /* position */ position,\n /* message */ displayErrorMessage\n )\n return editor\n }\n}\n","import * as Command from '../Command/Command.js'\n\nexport const editorHandleContextMenu = async (editor, x, y) => {\n await Command.execute(\n /* ContextMenu.show */ 951,\n /* x */ x,\n /* y */ y,\n /* id */ 'editor'\n )\n}\n","import * as Editor from '../Editor/Editor.js'\nimport * as TextDocument from '../TextDocument/TextDocument.js'\n\n// match all words, including umlauts, see https://stackoverflow.com/questions/5436824/matching-accented-characters-with-javascript-regexes/#answer-11550799\nconst RE_WORD_START = /^[a-z\\u00C0-\\u017F\\d]+/i\nconst RE_WORD_END = /[a-z\\u00C0-\\u017F\\d]+$/i\n\nconst getWordSelection = (line, rowIndex, columnIndex) => {\n const before = line.slice(0, columnIndex)\n const after = line.slice(columnIndex)\n const beforeMatch = before.match(RE_WORD_END)\n const afterMatch = after.match(RE_WORD_START)\n const columnStart = columnIndex - (beforeMatch ? beforeMatch[0].length : 0)\n const columnEnd = columnIndex + (afterMatch ? afterMatch[0].length : 0)\n const selection = {\n start: {\n rowIndex,\n columnIndex: columnStart,\n },\n end: {\n rowIndex,\n columnIndex: columnEnd,\n },\n }\n return selection\n}\n\nexport const editorSelectWord = (editor, rowIndex, columnIndex) => {\n const line = TextDocument.getLine(editor, rowIndex)\n const selection = getWordSelection(line, rowIndex, columnIndex)\n const selectionEdits = [selection]\n return Editor.scheduleSelections(editor, selectionEdits)\n}\n","import * as EditorSelectWord from './EditorCommandSelectWord.js'\nimport * as EditorPosition from './EditorCommandPosition.js'\n\nexport const editorHandleDoubleClick = (editor, x, y, offset) => {\n const position = EditorPosition.at(editor, x, y, offset)\n return EditorSelectWord.editorSelectWord(\n editor,\n position.rowIndex,\n position.columnIndex\n )\n}\n","import * as ExtensionHostHover from '../ExtensionHost/ExtensionHostHover.js'\nimport * as RendererProcess from '../RendererProcess/RendererProcess.js'\nimport * as TextDocument from '../TextDocument/TextDocument.js'\nimport * as EditorPosition from './EditorCommandPosition.js'\n\nconst getHover = async (editor, position) => {\n const offset = TextDocument.offsetAt(editor, position)\n const hover = await ExtensionHostHover.executeHoverProvider(editor, offset)\n return hover\n}\n\nconst showHover = async (editor, position) => {\n const hover = await getHover(editor, position)\n if (!hover) {\n console.log('no hover')\n return\n }\n\n RendererProcess.send([\n /* EditorHover.show */ 6216,\n /* x */ editor.left + position.columnIndex * editor.columnWidth,\n /* y */ editor.top + position.rowIndex * editor.rowHeight,\n /* hover */ hover,\n ])\n console.log({ hover })\n}\n\nexport const editorHandleMouseMove = (editor, x, y) => {\n const position = EditorPosition.at(editor, x, y)\n // console.log(position)\n // showHover(editor, position)\n return editor\n}\n","export const getSelectionFromNativeRange = (editor, range) => {\n if (\n range.startRowIndex === range.endRowIndex &&\n range.startColumnIndex === range.endColumnIndex\n ) {\n const position = {\n rowIndex: range.startRowIndex, // TODO adjust relative position\n columnIndex: range.startColumnIndex,\n }\n return {\n start: position,\n end: position,\n }\n }\n const selection = {\n start: {\n rowIndex: range.startRowIndex, // TODO adjust relative position\n columnIndex: range.startColumnIndex,\n },\n end: {\n rowIndex: range.endRowIndex, // TODO adjust relative position\n columnIndex: range.endColumnIndex,\n },\n }\n return selection\n}\n","import * as Editor from '../Editor/Editor.js'\nimport * as TextDocument from '../TextDocument/TextDocument.js'\nimport * as EditorGetSelectionFromNativeRange from './EditorCommandGetSelectionFromNativeRange.js'\n\nexport const handleBeforeInputFromContentEditable = (editor, data, range) => {\n const selection =\n EditorGetSelectionFromNativeRange.getSelectionFromNativeRange(editor, range)\n const changes = [\n {\n start: selection.start,\n end: selection.end,\n inserted: [data],\n deleted: TextDocument.getSelectionText(editor, selection),\n origin: 'contentEditableInput',\n },\n ]\n return Editor.scheduleDocumentAndCursorsSelections(editor, changes)\n}\n","import * as Editor from '../Editor/Editor.js'\nimport * as EditorGetSelectionFromNativeRange from './EditorCommandGetSelectionFromNativeRange.js'\n\nexport const editorHandleNativeSelectionChange = (editor, range) => {\n const selection =\n EditorGetSelectionFromNativeRange.getSelectionFromNativeRange(editor, range)\n const selections = [selection]\n return Editor.scheduleSelections(editor, selections)\n}\n","import * as Editor from '../Editor/Editor.js'\n\nexport const state = {\n /**\n * Offset at which scrollbar thumb has been clicked\n */\n handleOffset: 0,\n}\n\n// TODO scrollbar position can be in interval [0, editor.height - editor.scrollBarHeight]\n// when clicked at y <= editor.scrollbarHeight/2, position is set to zero\n// when clicked at y >= editor.height - editor.scrollBarHeight/2, position is set to (editor.height - scrollBarHeight/2)\n// when clicked at y > editor.height - editor.scrollBarHeight/2, position scrollbar at (y - scrollbarHeight/2)\n// additionally, when clicked on scrollbar, scrollbar position shouldn't move\n\nconst getNewDeltaPercent = (editor, relativeY) => {\n if (relativeY <= editor.scrollBarHeight / 2) {\n // clicked at top\n return 0\n }\n if (relativeY <= editor.height - editor.scrollBarHeight / 2) {\n // clicked in middle\n return (\n (relativeY - editor.scrollBarHeight / 2) /\n (editor.height - editor.scrollBarHeight)\n )\n }\n // clicked at bottom\n return 1\n}\n\nexport const editorHandleScrollBarClick = (editor, y) => {\n const relativeY = y - editor.top\n const currentScrollBarY =\n (editor.deltaY / editor.finalDeltaY) *\n (editor.height - editor.scrollBarHeight)\n console.log({ scrollBarY: currentScrollBarY, relativeY })\n const diff = relativeY - currentScrollBarY\n console.log({ diff })\n if (diff >= 0 && diff < editor.scrollBarHeight) {\n state.handleOffset = diff\n console.log({ handleOffset: diff })\n return editor\n }\n const newPercent = getNewDeltaPercent(editor, relativeY)\n console.log({ newPercent })\n // TODO\n state.handleOffset = editor.scrollBarHeight / 2\n // TODO when diff is greater, position scrollbar in the middle around cursor\n const newDeltaY = newPercent * editor.finalDeltaY\n return Editor.setDeltaYFixedValue(editor, newDeltaY)\n}\n","import * as Editor from '../Editor/Editor.js'\nimport * as EditorHandleScrollBarClick from './EditorCommandHandleScrollBarClick.js'\n\nconst getNewPercent = (editor, relativeY) => {\n console.log({ editor, relativeY })\n // if (relativeY <= editor.scrollBarHeight / 2) {\n // console.log('clicked at top')\n // // clicked at top\n // return 0\n // }\n if (relativeY <= editor.height - editor.scrollBarHeight / 2) {\n // clicked in middle\n return relativeY / (editor.height - editor.scrollBarHeight)\n }\n // clicked at bottom\n return 1\n}\n\nexport const editorHandleScrollBarMove = (editor, y) => {\n const relativeY =\n y - editor.top - EditorHandleScrollBarClick.state.handleOffset\n console.log('handle offset', EditorHandleScrollBarClick.state.handleOffset)\n const newPercent = getNewPercent(editor, relativeY)\n const newDeltaY = newPercent * editor.finalDeltaY\n return Editor.setDeltaYFixedValue(editor, newDeltaY)\n}\n","import * as Editor from '../Editor/Editor.js'\n\n// TODO not sure where this state should be\n// TODO maybe rename to selection anchor\nexport const state = {\n position: {\n rowIndex: 0,\n columnIndex: 0,\n },\n}\n\nconst compare = (positionA, positionB) => {\n if (positionA.rowIndex > positionB.rowIndex) {\n return 1\n }\n if (positionA.rowIndex === positionB.rowIndex) {\n if (positionA.columnIndex > positionB.columnIndex) {\n return 1\n }\n if (positionA.columnIndex < positionB.columnIndex) {\n return -1\n }\n return 0\n }\n return -1\n}\n\nconst editorMoveSelectionBackwards = (editor, anchor, position) => {\n const selectionEdits = [\n {\n start: position,\n end: anchor,\n },\n ]\n return Editor.scheduleSelections(editor, selectionEdits)\n}\n\nconst editorMoveSelectionEqual = (editor, anchor, position) => {\n const selectionEdits = [\n {\n start: position,\n end: position,\n type: 1,\n },\n ]\n return Editor.scheduleSelections(editor, selectionEdits)\n}\n\nconst editorMoveSelectionForwards = (editor, anchor, position) => {\n const selectionEdits = [\n {\n start: anchor,\n end: position,\n },\n ]\n return Editor.scheduleSelections(editor, selectionEdits)\n}\n\nexport const editorMoveSelection = (editor, position) => {\n const anchor = state.position\n // TODO if selection equals previous selection -> do nothing\n switch (compare(position, anchor)) {\n case -1:\n return editorMoveSelectionBackwards(editor, anchor, position)\n case 0:\n return editorMoveSelectionEqual(editor, anchor, position)\n case 1:\n return editorMoveSelectionForwards(editor, anchor, position)\n default:\n break\n }\n}\n","import * as EditorCursorSet from './EditorCommandCursorSet.js'\nimport * as EditorPosition from './EditorCommandPosition.js'\nimport * as EditorMoveSelection from './EditorCommandMoveSelection.js'\nimport * as Assert from '../Assert/Assert.js'\nimport * as EditorGoToDefinition from './EditorCommandGoToDefinition.js'\n\nexport const editorHandleSingleClick = async (\n editor,\n modifier,\n x,\n y,\n offset\n) => {\n Assert.object(editor)\n Assert.string(modifier)\n Assert.number(x)\n Assert.number(y)\n Assert.number(offset)\n const position = EditorPosition.at(editor, x, y, offset)\n if (modifier === 'alt') {\n // TODO rectangular selection with alt click,\n // but also go to definition with alt click\n console.log('alt key pressed')\n const newEditor = await EditorGoToDefinition.editorGoToDefinition(\n editor,\n position,\n /* explicit */ false\n )\n if (editor !== newEditor) {\n return newEditor\n }\n }\n EditorMoveSelection.state.position = position\n return EditorCursorSet.editorCursorSet(\n editor,\n EditorMoveSelection.state.position\n )\n}\n","import * as ExtensionHost from './ExtensionHostCore.js'\nimport * as ExtensionHostManagement from './ExtensionHostManagement.js'\n\nexport const executeTabCompletionProvider = async (textDocument, offset) => {\n await ExtensionHostManagement.activateByEvent(\n `onTabCompletion:${textDocument.languageId}`\n )\n return ExtensionHost.invoke(\n /* ExtensionHostTabCompletion.execute */ 'ExtensionHost.executeTabCompletionProvider',\n /* textDocumentId */ textDocument.id,\n /* offset */ offset\n )\n}\n","import * as Editor from '../Editor/Editor.js'\nimport * as TextDocument from '../TextDocument/TextDocument.js'\n\n// const getIndent =\n// TODO rename to insertSnippet\n// TODO handle snippet tabstops and cursors $0 -> becomes cursor\nexport const editorSnippet = (editor, snippet) => {\n // TODO verify that deleted fits in the line\n const insertedLines = snippet.inserted.split('\\n')\n const changes = []\n for (const selection of editor.selections) {\n if (insertedLines.length > 1) {\n const line = TextDocument.getLine(editor, selection.start.rowIndex)\n const indent = TextDocument.getIndent(line)\n const insertedLinesHere = [\n insertedLines[0],\n ...insertedLines.slice(1).map((line) => indent + line),\n ]\n console.log({ insertedLinesHere })\n changes.push({\n start: {\n rowIndex: selection.start.rowIndex,\n columnIndex: selection.start.columnIndex - snippet.deleted,\n },\n end: selection.end,\n inserted: insertedLinesHere,\n deleted: [''],\n origin: 'editorSnippet',\n })\n } else {\n changes.push({\n start: {\n rowIndex: selection.start.rowIndex,\n columnIndex: selection.start.columnIndex - snippet.deleted,\n },\n end: selection.end,\n inserted: insertedLines,\n deleted: [''],\n origin: 'editorSnippet',\n })\n }\n }\n console.log(JSON.stringify(changes, null, 2))\n return Editor.scheduleDocumentAndCursorsSelections(editor, changes)\n}\n","import * as ErrorHandling from '../ErrorHandling/ErrorHandling.js'\nimport * as ExtensionHostTabCompletion from '../ExtensionHost/ExtensionHostTabCompletion.js'\nimport * as TextDocument from '../TextDocument/TextDocument.js'\nimport * as EditorSnippet from './EditorCommandSnippet.js'\n\nconst getTabCompletion = async (editor) => {\n const offset = TextDocument.offsetAt(editor, editor.cursor)\n const tabCompletion =\n await ExtensionHostTabCompletion.executeTabCompletionProvider(\n editor,\n offset\n )\n return tabCompletion\n}\n\nexport const editorTabCompletion = async (editor) => {\n // TODO race condition\n // TODO get tab completion for each cursor\n const tabCompletion = await getTabCompletion(editor)\n if (!tabCompletion) {\n return editor\n }\n return EditorSnippet.editorSnippet(editor, tabCompletion)\n}\n","import * as ExtensionHost from './ExtensionHostCore.js'\nimport * as ExtensionHostManagement from './ExtensionHostManagement.js'\n\nexport const executeBraceCompletionProvider = async (\n textDocument,\n offset,\n openingBrace\n) => {\n await ExtensionHostManagement.activateByEvent(\n `onBraceCompletion:${textDocument.languageId}`\n )\n return ExtensionHost.invoke(\n /* ExtensionHostBraceCompletion.executeBraceCompletionProvider */ 'ExtensionHostBraceCompletion.executeBraceCompletionProvider',\n /* textDocumentId */ textDocument.id,\n /* offset */ offset,\n /* openingBrace */ openingBrace\n )\n}\n","import * as ExtensionHost from './ExtensionHostCore.js'\nimport * as ExtensionHostManagement from './ExtensionHostManagement.js'\n\nexport const executeClosingTagProvider = async (\n textDocument,\n offset,\n openingBrace\n) => {\n await ExtensionHostManagement.activateByEvent(\n `onClosingTag:${textDocument.languageId}`\n )\n return ExtensionHost.invoke(\n /* ExtensionHostClosingTag.executeClosingTagProvider */ 'ExtensionHostClosingTag.executeClosingTagProvider',\n /* textDocumentId */ textDocument.id,\n /* offset */ offset,\n /* openingBrace */ openingBrace\n )\n}\n","// import * as EditorCompletion from '../EditorCompletion/EditorCompletion.js'\nimport * as Editor from '../Editor/Editor.js'\nimport { editorReplaceSelections } from './EditorCommandReplaceSelection.js'\nimport * as EditorCommandCompletion from './EditorCommandCompletion.js'\nimport * as ExtensionHostBraceCompletion from '../ExtensionHost/ExtensionHostBraceCompletion.js'\nimport * as TextDocument from '../TextDocument/TextDocument.js'\nimport * as Languages from '../Languages/Languages.js'\nimport * as ExtensionHostClosingTag from '../ExtensionHost/ExtensionHostClosingTagCompletion.js'\n\nconst RE_CHARACTER = new RegExp(/^\\p{L}/, 'u')\n\nexport const state = {\n listeners: [],\n}\n\nconst getMatchingClosingBrace = (brace) => {\n switch (brace) {\n case '{':\n return '}'\n case '(':\n return ')'\n case '[':\n return ']'\n default:\n return '???'\n }\n}\n\nconst isBrace = (text) => {\n if (text.length !== 1) {\n return false\n }\n switch (text) {\n case '{':\n case '(':\n case '[':\n return true\n default:\n return false\n }\n}\n\nconst isSlash = (text) => {\n return text === '/'\n}\n\nconst editorTypeWithBraceCompletion = async (editor, text) => {\n if (!Languages.state.loaded) {\n await Languages.waitForLoad()\n }\n editor.languageId = Languages.getLanguageId(editor.uri) // TODO avoid side effect here\n\n const offset = TextDocument.offsetAt(editor, editor.cursor)\n const result =\n await ExtensionHostBraceCompletion.executeBraceCompletionProvider(\n editor,\n offset,\n text\n )\n if (result) {\n const closingBrace = getMatchingClosingBrace(text)\n const insertText = text + closingBrace\n const changes = editorReplaceSelections(editor, [insertText], 'editorType')\n return Editor.scheduleDocumentAndCursorsSelections(editor, changes)\n }\n const changes = editorReplaceSelections(editor, [text], 'editorType')\n return Editor.scheduleDocumentAndCursorsSelections(editor, changes)\n}\n\nconst editorTypeWithSlashCompletion = async (editor, text) => {\n if (!Languages.state.loaded) {\n await Languages.waitForLoad()\n }\n editor.languageId = Languages.getLanguageId(editor.uri) // TODO avoid side effect here\n\n const offset = TextDocument.offsetAt(editor, editor.cursor)\n const result = await ExtensionHostClosingTag.executeClosingTagProvider(\n editor,\n offset,\n text\n )\n const changes = editorReplaceSelections(editor, [text], 'editorType')\n return Editor.scheduleDocumentAndCursorsSelections(editor, changes)\n}\n\nexport const editorType = async (editor, text) => {\n if (isBrace(text)) {\n return editorTypeWithBraceCompletion(editor, text)\n }\n if (isSlash(text)) {\n return editorTypeWithSlashCompletion(editor, text)\n }\n const changes = editorReplaceSelections(editor, [text], 'editorType')\n // // TODO trigger characters should be monomorph -> then skip this check\n // if (\n // editor.completionTriggerCharacters &&\n // editor.completionTriggerCharacters.includes(text)\n // ) {\n // Command.execute(/* EditorCompletion.openFromType */ 988)\n // }\n\n // TODO should editor type command know about editor completion? -> no\n EditorCommandCompletion.openFromType(editor, text)\n return Editor.scheduleDocumentAndCursorsSelections(editor, changes)\n}\n\nexport const onDidType = (listener) => {\n state.listeners.push(listener)\n // TODO unregister\n}\n","import * as Editor from '../Editor/Editor.js'\n\nexport const editorIndentMore = (editor) => {\n const changes = []\n const rowsToIndent = []\n for (const selection of editor.selections) {\n for (let i = selection.start.rowIndex; i <= selection.end.rowIndex; i++) {\n rowsToIndent.push(i)\n }\n }\n for (const rowToIndent of rowsToIndent) {\n changes.push({\n start: {\n rowIndex: rowToIndent,\n columnIndex: 0,\n },\n end: {\n rowIndex: rowToIndent,\n columnIndex: 0,\n },\n inserted: [' '],\n deleted: [''],\n origin: 'indentMore',\n })\n }\n return Editor.scheduleDocumentAndCursorsSelections(editor, changes)\n}\n","import * as EditorTabCompletion from './EditorCommandTabCompletion.js'\nimport * as EditorType from './EditorCommandType.js'\nimport * as EditorIndent from './EditorCommandIndentMore.js'\n\nconst isStartEndSame = (selection) => {\n return selection.start.rowIndex === selection.end.rowIndex\n}\n\n// TODO tab doesn't work well with configurable keybindings\nexport const editorHandleTab = async (editor) => {\n if (editor.selections.every(isStartEndSame)) {\n console.log('call tab completion')\n const applied = await EditorTabCompletion.editorTabCompletion(editor)\n if (applied !== editor) {\n return applied\n }\n // TODO have setting what should be inserted on tab\n return EditorType.editorType(editor, ' ')\n }\n return EditorIndent.editorIndentMore(editor)\n}\n\n// const editor = {\n// textDocument: {\n// lines: ['line 1', 'line 2', 'line 3', 'line 4'],\n// },\n// cursor: {\n// rowIndex: 0,\n// columnIndex: 1,\n// },\n// selections: [\n// {\n// start: {\n// rowIndex: 1,\n// columnIndex: 1,\n// },\n// end: {\n// rowIndex: 2,\n// columnIndex: 2,\n// },\n// },\n// ],\n// }\n// const main = async () => {\n// await editorHandleTab(editor)\n// editor.lines //?\n// }\n\n// main()\n","export const state = {\n touchOffsetY: 0,\n deltaY: 0,\n}\n\nexport const editorHandleTouchStart = (editor, touchEvent) => {\n if (touchEvent.touches.length === 0) {\n return\n }\n console.log('touch start')\n const firstTouch = touchEvent.touches[0]\n state.touchOffsetY = firstTouch.y\n state.deltaY = editor.deltaY\n // const position = EditorPosition.at(editor, firstTouch.x, firstTouch.y)\n // EditorMoveSelection.state.position = position\n // state.date = Date.now()\n}\n","import * as EditorPosition from './EditorCommandPosition.js'\nimport * as EditorHandleTouchStart from './EditorCommandHandleTouchStart.js'\nimport * as EditorSelectWord from './EditorCommandSelectWord.js'\nimport * as EditorCursorSet from './EditorCommandCursorSet.js'\nimport * as EditorMoveSelection from './EditorCommandMoveSelection.js'\n\nconst LONG_TOUCH_THRESHOLD = 150\n\nexport const editorHandleTouchEnd = (editor, touchEvent) => {\n if (touchEvent.changedTouches.length === 0) {\n return\n }\n const firstTouch = touchEvent.changedTouches[0]\n const position = EditorPosition.at(editor, firstTouch.x, firstTouch.y)\n if (\n EditorMoveSelection.state.position.rowIndex === position.rowIndex &&\n EditorMoveSelection.state.position.columnIndex === position.columnIndex\n ) {\n if (Date.now() - EditorHandleTouchStart.state.date > LONG_TOUCH_THRESHOLD) {\n EditorSelectWord.editorSelectWord(\n editor,\n position.rowIndex,\n position.columnIndex\n )\n } else {\n EditorCursorSet.editorCursorSet(editor, position)\n }\n } else {\n console.log('different position')\n }\n}\n","import * as Editor from '../Editor/Editor.js'\n\nexport const editorSetDeltaY = (editor, deltaY) => {\n return Editor.setDeltaY(editor, deltaY)\n}\n\nexport const setDeltaYFixedValue = (editor, deltaY) => {\n return Editor.setDeltaYFixedValue(editor, deltaY)\n}\n","import * as EditorHandleTouchStart from './EditorCommandHandleTouchStart.js'\nimport * as EditorSetDeltaY from './EditorCommandSetDeltaY.js'\n\nexport const editorHandleTouchMove = (editor, touchEvent) => {\n if (touchEvent.touches.length === 0) {\n return\n }\n const firstTouch = touchEvent.touches[0]\n const offsetY =\n EditorHandleTouchStart.state.deltaY +\n (EditorHandleTouchStart.state.touchOffsetY - firstTouch.y)\n EditorSetDeltaY.setDeltaYFixedValue(editor, offsetY)\n}\n","import * as Editor from '../Editor/Editor.js'\nimport * as TextDocument from '../TextDocument/TextDocument.js'\n\nconst getLineSelection = (line, rowIndex) => {\n const selection = {\n start: {\n rowIndex,\n columnIndex: 0,\n },\n end: {\n rowIndex,\n // TODO handle virtual space when columnIndex is greater than line length\n columnIndex: line.length,\n },\n }\n return selection\n}\n\nexport const editorSelectLine = (editor) => {\n const rowIndex = editor.cursor.rowIndex\n const line = TextDocument.getLine(editor, rowIndex)\n const selection = getLineSelection(line, rowIndex)\n const selectionEdits = [selection]\n return Editor.scheduleSelections(editor, selectionEdits)\n}\n","import * as Assert from '../Assert/Assert.js'\nimport * as EditorSelectLine from './EditorCommandSelectLine.js'\n\n// TODO rowIndex and columnIndex should already be set because of singleClick which occurred before triple click\nexport const editorHandleTripleClick = (editor, x, y, offset) => {\n Assert.object(editor)\n Assert.number(x)\n Assert.number(y)\n Assert.number(offset)\n return EditorSelectLine.editorSelectLine(editor)\n}\n","import * as Editor from '../Editor/Editor.js'\n\nexport const editorIndentLess = (editor) => {\n const changes = []\n const rowsToIndentLess = []\n for (const selection of editor.selections) {\n for (let i = selection.start.rowIndex; i <= selection.end.rowIndex; i++) {\n rowsToIndentLess.push(i)\n }\n }\n for (const rowToIndent of rowsToIndentLess) {\n changes.push({\n start: {\n rowIndex: rowToIndent,\n columnIndex: 0,\n },\n end: {\n rowIndex: rowToIndent,\n columnIndex: 2,\n },\n inserted: [''],\n deleted: [' '],\n origin: 'indentLess',\n })\n }\n return Editor.scheduleDocumentAndCursorsSelections(editor, changes)\n}\n","import * as Editor from '../Editor/Editor.js'\nimport * as TextDocument from '../TextDocument/TextDocument.js'\n\nexport const editorInsertLineBreak = (editor) => {\n const changes = []\n const lines = editor.lines\n for (const selection of editor.selections) {\n if (selection.start === selection.end) {\n const line = lines[selection.start.rowIndex].slice(\n 0,\n selection.start.columnIndex\n )\n const indent = TextDocument.getIndent(line)\n changes.push({\n start: selection.start,\n end: selection.end,\n inserted: ['', indent],\n deleted: TextDocument.getSelectionText(editor, selection),\n origin: 'insertLineBreak',\n })\n } else {\n changes.push({\n start: selection.start,\n end: selection.end,\n inserted: ['', ''],\n deleted: TextDocument.getSelectionText(editor, selection),\n origin: 'insertLineBreak',\n })\n }\n }\n return Editor.scheduleDocumentAndCursorsSelections(editor, changes)\n}\n","import * as TextDocument from '../TextDocument/TextDocument.js'\nimport * as Editor from '../Editor/Editor.js'\n\n// TODO move cursor\n// TODO multiple cursors -> vscode removes multiple cursors\n// TODO with selection -> vscode moves whole selection\nexport const editorMoveLineDown = (editor) => {\n const rowIndex = editor.cursor.rowIndex\n if (rowIndex === editor.lines.length - 1) {\n return\n }\n const documentEdits = [\n {\n type: /* splice */ 2,\n rowIndex: rowIndex,\n count: 2,\n newLines: [\n TextDocument.getLine(editor.textDocument, rowIndex + 1),\n TextDocument.getLine(editor.textDocument, rowIndex),\n ],\n },\n ]\n const cursorEdits = Editor.moveCursors(editor, (editor, cursor) => {\n return {\n rowIndex: cursor.rowIndex + 1,\n columnIndex: cursor.columnIndex,\n }\n })\n Editor.scheduleDocumentAndCursors(editor, documentEdits, cursorEdits)\n}\n","import * as TextDocument from '../TextDocument/TextDocument.js'\nimport * as Editor from '../Editor/Editor.js'\n\n// TODO handle multiple cursors\nexport const editorMoveLineUp = (editor) => {\n const rowIndex = editor.cursor.rowIndex\n if (rowIndex === 0) {\n return\n }\n const documentEdits = [\n {\n type: /* splice */ 2,\n rowIndex: rowIndex - 1,\n count: 2,\n newLines: [\n TextDocument.getLine(editor.textDocument, rowIndex),\n TextDocument.getLine(editor.textDocument, rowIndex - 1),\n ],\n },\n ]\n const cursorEdits = Editor.moveCursors(editor, (editor, cursor) => {\n return {\n // TODO handle bottom 0\n rowIndex: cursor.rowIndex - 1,\n columnIndex: cursor.columnIndex,\n }\n })\n Editor.scheduleDocumentAndCursors(editor, documentEdits, cursorEdits)\n}\n","import * as Editor from '../Editor/Editor.js'\nimport * as EditorHandleClick from './EditorCommandHandleSingleClick.js'\nimport * as EditorMoveSelection from './EditorCommandMoveSelection.js'\n\nexport const editorMoveRectangleSelection = (editor, position) => {\n const anchor = EditorMoveSelection.state.position\n const startRowIndex = anchor.rowIndex\n const startColumnIndex = anchor.columnIndex\n const endRowIndex = position.rowIndex\n const endColumnIndex = position.columnIndex\n const selectionEdits = []\n for (let i = startRowIndex; i <= endRowIndex; i++) {\n selectionEdits.push({\n start: {\n rowIndex: i,\n columnIndex: startColumnIndex,\n },\n end: {\n rowIndex: i,\n columnIndex: endColumnIndex,\n },\n })\n }\n const cursorEdits = [selectionEdits.at(-1).end]\n Editor.scheduleCursorsAndSelections(editor, cursorEdits, selectionEdits)\n}\n","import * as EditorMoveRectangleSelection from './EditorCommandMoveRectangleSelection.js'\nimport * as EditorPosition from './EditorCommandPosition.js'\n\nexport const editorMoveRectangleSelectionPx = (editor, x, y) => {\n const position = EditorPosition.at(editor, x, y)\n EditorMoveRectangleSelection.editorMoveRectangleSelection(editor, position)\n}\n","import * as EditorMoveSelection from './EditorCommandMoveSelection.js'\nimport * as EditorPosition from './EditorCommandPosition.js'\nimport * as Assert from '../Assert/Assert.js'\n\nexport const editorMoveSelectionPx = (editor, x, y, offset) => {\n Assert.object(editor)\n Assert.number(x)\n Assert.number(y)\n Assert.number(offset)\n const position = EditorPosition.at(editor, x, y, offset)\n return EditorMoveSelection.editorMoveSelection(editor, position)\n}\n","import * as Editor from '../Editor/Editor.js'\nimport { editorReplaceSelections } from './EditorCommandReplaceSelection.js'\n\nexport const editorPasteText = (editor, text) => {\n const insertedLines = text.split('\\n')\n const changes = editorReplaceSelections(\n editor,\n insertedLines,\n 'editorPasteText'\n )\n return Editor.scheduleDocumentAndCursorsSelections(editor, changes)\n}\n","import * as Command from '../Command/Command.js'\nimport * as EditorPasteText from './EditorCommandPasteText.js'\nimport * as Assert from '../Assert/Assert.js'\n\nexport const editorPaste = async (editor) => {\n const text = await Command.execute(/* ClipBoard.readText */ 240)\n Assert.string(text)\n return EditorPasteText.editorPasteText(editor, text)\n}\n","import * as ErrorHandling from '../ErrorHandling/ErrorHandling.js'\nimport * as FileSystem from '../FileSystem/FileSystem.js'\nimport * as GlobalEventBus from '../GlobalEventBus/GlobalEventBus.js'\nimport * as TextDocument from '../TextDocument/TextDocument.js'\n\nexport const editorSave = async (editor) => {\n const uri = editor.uri\n const content = TextDocument.getText(editor)\n try {\n await FileSystem.writeFile(uri, content)\n } catch (error) {\n // @ts-ignore\n const betterError = new Error(`Failed to save file \"${uri}\"`, {\n cause: error,\n })\n await ErrorHandling.showErrorDialog(betterError)\n return\n }\n await GlobalEventBus.emitEvent('editor.save', editor)\n return editor\n}\n","import * as Editor from '../Editor/Editor.js'\n\nexport const editorSelectAll = (editor) => {\n const selection = {\n start: {\n rowIndex: 0,\n columnIndex: 0,\n },\n end: {\n rowIndex: editor.lines.length,\n columnIndex: editor.lines.at(-1).length,\n },\n }\n const selectionEdits = [selection]\n return Editor.scheduleSelections(editor, selectionEdits)\n}\n","import * as Editor from '../Editor/Editor.js'\n\n// TODO handle virtual space\n\nconst getSelectionEditsSingleLineWord = (lines, word) => {\n const occurrences = []\n for (const [rowIndex, line] of lines.entries()) {\n let columnIndex = -word.length\n while (\n (columnIndex = line.indexOf(word, columnIndex + word.length)) !== -1\n ) {\n occurrences.push({\n start: {\n rowIndex,\n columnIndex,\n },\n end: {\n rowIndex,\n columnIndex: columnIndex + word.length,\n },\n })\n }\n }\n return occurrences\n}\n\n// selectAllOccurrencesSingleLine(['sample text, sample text'], 'sample') //?\n\nconst isMultiLineMatch = (lines, rowIndex, wordParts) => {\n let j = 0\n if (!lines[rowIndex + j].endsWith(wordParts[j])) {\n return false\n }\n while (++j < wordParts.length - 1) {\n if (lines[rowIndex + j] !== wordParts[j]) {\n return false\n }\n }\n // j--\n if (!lines[rowIndex + j].startsWith(wordParts[j])) {\n lines[rowIndex + j] // ?\n rowIndex + j // ?\n\n return false\n }\n return true\n}\n\n// TODO this is very expensive, there might be a better algorithm for this\n// TODO if this matches the given selections, don't schedule selections/rerender\nconst getAllOccurrencesMultiLine = (lines, wordParts) => {\n const occurrences = []\n for (\n let rowIndex = 0;\n rowIndex < lines.length - wordParts.length + 1;\n rowIndex\n ) {\n lines\n rowIndex\n if (isMultiLineMatch(lines, rowIndex, wordParts)) {\n occurrences.push({\n start: {\n rowIndex,\n columnIndex: lines[rowIndex].length - wordParts[0].length,\n },\n end: {\n rowIndex: rowIndex + wordParts.length - 1,\n columnIndex: wordParts.at(-1).length,\n },\n })\n rowIndex += wordParts.length - 1\n } else {\n rowIndex++\n }\n }\n return occurrences\n}\n\n// TODO duplicate code with EditorSelectNextOccurrence\nconst RE_ALPHA_NUMERIC = /[a-zA-Z\\d]/\n\nconst isAlphaNumeric = (char) => {\n return RE_ALPHA_NUMERIC.test(char)\n}\n\nconst getWordStartIndex = (line, index) => {\n for (let i = index - 1; i >= 0; i--) {\n if (!isAlphaNumeric(line[i])) {\n return i + 1\n }\n }\n return 0\n}\n\nconst getWordEndIndex = (line, index) => {\n for (let i = index; i < line.length; i++) {\n if (!isAlphaNumeric(line[i])) {\n return i\n }\n }\n return line.length - 1\n}\n\nconst getWordMatchAtPosition = (lines, position) => {\n const line = lines[position.rowIndex]\n const index = position.columnIndex\n const start = getWordStartIndex(line, index)\n const end = getWordEndIndex(line, index)\n const word = line.slice(start, end)\n return {\n start,\n end,\n word,\n }\n}\n\nexport const editorSelectAllOccurrences = (editor) => {\n // when there are no selections -> first selection is word -> find all selection that include word\n const lines = editor.lines\n if (Editor.hasSelection(editor)) {\n const lastSelection = editor.selections.at(-1)\n const startRowIndex = lastSelection.start.rowIndex\n const startColumnIndex = lastSelection.start.columnIndex\n const endRowIndex = lastSelection.end.rowIndex\n const endColumnIndex = lastSelection.end.columnIndex\n if (startRowIndex === endRowIndex) {\n const word = lines[startRowIndex].slice(startColumnIndex, endColumnIndex)\n const selectionEdits = getSelectionEditsSingleLineWord(lines, word)\n return Editor.scheduleSelections(editor, selectionEdits)\n }\n const wordParts = []\n wordParts.push(lines[startRowIndex].slice(startColumnIndex))\n for (let i = startRowIndex + 1; i < endRowIndex - 1; i++) {\n wordParts.push(lines[i])\n }\n wordParts.push(lines[endRowIndex].slice(0, endColumnIndex))\n const selectionEdits = getAllOccurrencesMultiLine(lines, wordParts)\n return Editor.scheduleSelections(editor, selectionEdits)\n }\n const wordMatch = getWordMatchAtPosition(editor.lines, editor.cursor)\n if (wordMatch.start === wordMatch.end) {\n return editor\n }\n const selectionEdits = getSelectionEditsSingleLineWord(lines, wordMatch.word)\n return Editor.scheduleSelections(editor, selectionEdits)\n}\n","import * as Editor from '../Editor/Editor.js'\nimport * as EditorGetPositionLeft from './EditorCommandGetPositionLeft.js'\n\n// TODO interleave cursors and selection\n// then loop over selections\n// apply edit\n// if new range is empty -> add cursor\n// else if new range is overlapping -> merge ranges\n// else add cursor and selection\n\nconst getNewSelection = (selection, lines, getDelta) => {\n const positionLeft = EditorGetPositionLeft.editorGetPositionLeft(\n selection.start,\n lines,\n getDelta\n )\n return {\n start: positionLeft,\n end: selection.end,\n }\n}\n\nexport const editorSelectHorizontalLeft = (editor, getDelta) => {\n const selectionEdits = []\n const lines = editor.lines\n for (const selection of editor.selections) {\n const newSelection = getNewSelection(selection, lines, getDelta)\n selectionEdits.push(newSelection)\n }\n return Editor.scheduleSelections(editor, selectionEdits)\n}\n","import * as EditorSelectHorizontalLeft from './EditorCommandSelectHorizontalLeft.js'\nimport * as EditorDelta from './EditorCommandDelta.js'\n\nexport const editorSelectCharacterLeft = (editor) => {\n return EditorSelectHorizontalLeft.editorSelectHorizontalLeft(\n editor,\n EditorDelta.characterLeft\n )\n}\n","import * as Editor from '../Editor/Editor.js'\nimport * as EditorGetPositionRight from './EditorCommandGetPositionRight.js'\n\nconst getNewSelection = (selection, lines, getDelta) => {\n const positionRight = EditorGetPositionRight.editorGetPositionRight(\n selection.end,\n lines,\n getDelta\n )\n return {\n start: selection.start,\n end: positionRight,\n }\n}\n\nexport const editorSelectHorizontalRight = (editor, getDelta) => {\n const selectionEdits = []\n const lines = editor.lines\n for (const selection of editor.selections) {\n const newSelection = getNewSelection(selection, lines, getDelta)\n selectionEdits.push(newSelection)\n }\n return Editor.scheduleSelections(editor, selectionEdits)\n}\n","import * as EditorSelectHorizontalRight from './EditorCommandSelectHorizontalRight.js'\nimport * as EditorDelta from './EditorCommandDelta.js'\n\nexport const editorSelectCharacterRight = (editor) => {\n return EditorSelectHorizontalRight.editorSelectHorizontalRight(\n editor,\n EditorDelta.characterRight\n )\n}\n","import * as Editor from '../Editor/Editor.js'\n\nconst findStringRange = (lines, range) => {\n if (range.start !== range.end) {\n return range\n }\n const rowIndex = range.start.rowIndex\n let startColumnIndex = range.start.columnIndex\n let endColumnIndex = range.end.columnIndex\n const line = lines[rowIndex]\n const quoteFound = false\n while (startColumnIndex > 0 && line[startColumnIndex] !== '\"') {\n startColumnIndex--\n }\n startColumnIndex++\n while (endColumnIndex < line.length && line[endColumnIndex] !== '\"') {\n endColumnIndex++\n }\n return {\n start: {\n rowIndex,\n columnIndex: startColumnIndex,\n },\n end: {\n rowIndex,\n columnIndex: endColumnIndex,\n },\n }\n}\n\nexport const editorSelectInsideString = (editor) => {\n const newSelections = []\n for (const selection of editor.selections) {\n // TODO find string range, possibly use tokenizer\n const newSelection = findStringRange(editor.lines, selection)\n newSelections.push(newSelection)\n }\n return Editor.scheduleSelections(editor, newSelections)\n}\n","import * as Editor from '../Editor/Editor.js'\nimport * as TextDocument from '../TextDocument/TextDocument.js'\n\n// TODO handle virtual space\n\n// TODO editors behave differently when selecting next occurrence, for example:\n\n// aaa\n// bbb 1\n// ccc\n// bbb 2\n// bbb 3\n// aaa\n// bbb 4\n// ccc\n\n// when clicking first at position 4 and then position 2,\n// - vscode selects next position 3 and refuses to select position 1\n// - atom also selects next position 3 and refuses to select position 1\n// - WebStorm also selects next position 3 and refuses to select position 1\n// - brackets (codemirror) selects position 3 and then selects position 1\n// - sublime selects next position 1, then next position 3\n\nconst isBetween = (value, min, max) => {\n return min <= value && value <= max\n}\n\nconst getSelectionEditsSingleLineWord = (lines, selections) => {\n const lastSelection = selections.at(-1)\n const rowIndex = lastSelection.start.rowIndex\n const word = lines[rowIndex].slice(\n lastSelection.start.columnIndex,\n lastSelection.end.columnIndex\n )\n const columnIndexAfter = lines[rowIndex].indexOf(\n word,\n lastSelection.end.columnIndex\n )\n if (columnIndexAfter !== -1) {\n const revealRange = {\n start: {\n rowIndex,\n columnIndex: columnIndexAfter,\n },\n end: {\n rowIndex,\n columnIndex: columnIndexAfter + word.length,\n },\n }\n return {\n revealRange,\n selectionEdits: [...selections, revealRange],\n }\n }\n for (let i = rowIndex + 1; i < lines.length; i++) {\n const columnIndex = lines[i].indexOf(word)\n if (columnIndex !== -1) {\n const revealRange = {\n start: {\n rowIndex: i,\n columnIndex,\n },\n end: {\n rowIndex: i,\n columnIndex: columnIndex + word.length,\n },\n }\n return {\n revealRange,\n selectionEdits: [...selections, revealRange],\n }\n }\n }\n let selectionIndex = 0\n let selection = selections[selectionIndex]\n for (let i = 0; i <= rowIndex; i++) {\n const line = lines[i]\n let columnIndex = -word.length\n while (\n (columnIndex = line.indexOf(word, columnIndex + word.length)) !== -1\n ) {\n while (\n selection.start.rowIndex < i &&\n selectionIndex < selections.length\n ) {\n selection = selections[selectionIndex++]\n }\n if (selection.start.rowIndex === i) {\n while (\n selection.end.columnIndex < columnIndex &&\n selectionIndex < selections.length\n ) {\n selection = selections[selectionIndex++]\n }\n }\n if (\n selection.start.rowIndex === i &&\n selection.start.columnIndex <= columnIndex &&\n columnIndex <= selection.end.columnIndex\n ) {\n continue\n }\n if (selection.start.rowIndex > i) {\n selectionIndex--\n }\n const revealRange = {\n start: {\n rowIndex: i,\n columnIndex,\n },\n end: {\n rowIndex: i,\n columnIndex: columnIndex + word.length,\n },\n }\n return {\n revealRange,\n selectionEdits: [\n ...selections.slice(0, selectionIndex),\n revealRange,\n ...selections.slice(selectionIndex),\n ],\n }\n }\n }\n return undefined\n}\n\nconst RE_ALPHA_NUMERIC = /[a-zA-Z\\d]/\n\nconst isAlphaNumeric = (char) => {\n return RE_ALPHA_NUMERIC.test(char)\n}\n\nconst getWordStartIndex = (line, index) => {\n for (let i = index - 1; i >= 0; i--) {\n if (!isAlphaNumeric(line[i])) {\n return i + 1\n }\n }\n return 0\n}\n\nconst getWordEndIndex = (line, index) => {\n for (let i = index; i < line.length; i++) {\n if (!isAlphaNumeric(line[i])) {\n return i\n }\n }\n return line.length - 1\n}\n\nconst getWordMatchAtPosition = (lines, position) => {\n const line = lines[position.rowIndex]\n const index = position.columnIndex\n const start = getWordStartIndex(line, index)\n const end = getWordEndIndex(line, index)\n const word = line.slice(start, end)\n return {\n start,\n end,\n word,\n }\n}\n\n// const\n\nconst isEmpty = (selection) => {\n return selection.start === selection.end\n}\n\nconst getNextMatch = () => {}\n\nconst isSingleLine = (selection) => {\n return selection.start.rowIndex === selection.end.rowIndex\n}\n\nconst getSelectNextOccurrenceResult = (editor) => {\n if (editor.selections.every(isEmpty)) {\n const selectionEdits = []\n for (const selection of editor.selections) {\n const wordMatch = getWordMatchAtPosition(editor.lines, selection.start)\n if (wordMatch.start === wordMatch.end) {\n selectionEdits.push(selection)\n } else {\n selectionEdits.push({\n start: {\n rowIndex: selection.start.rowIndex,\n columnIndex: wordMatch.start,\n },\n end: {\n rowIndex: selection.start.rowIndex,\n columnIndex: wordMatch.end,\n },\n })\n }\n }\n return {\n selectionEdits,\n revealRange: selectionEdits.at(-1), // TODO should be primary selection\n }\n }\n\n if (editor.selections.every(isSingleLine)) {\n return getSelectionEditsSingleLineWord(editor.lines, editor.selections)\n }\n return undefined\n}\n\nconst isRangeInViewPort = (editor, range) => {\n return (\n range.start.rowIndex >= editor.minLineY &&\n range.end.rowIndex <= editor.maxLineY\n )\n}\n\n// TODO handle virtual space\nexport const editorSelectNextOccurrence = (editor) => {\n const result = getSelectNextOccurrenceResult(editor)\n if (!result) {\n return editor\n }\n const revealRange = result.revealRange\n const selectionEdits = result.selectionEdits\n if (isRangeInViewPort(editor, revealRange)) {\n return Editor.scheduleSelections(editor, selectionEdits)\n } else {\n const deltaY = (revealRange.start.rowIndex - 5) * editor.rowHeight\n return Editor.scheduleSelectionsAndScrollPosition(\n editor,\n selectionEdits,\n deltaY\n )\n }\n}\n","import * as EditorSelectHorizontalLeft from './EditorCommandSelectHorizontalLeft.js'\nimport * as EditorDelta from './EditorCommandDelta.js'\n\nexport const editorSelectWordLeft = (editor) => {\n return EditorSelectHorizontalLeft.editorSelectHorizontalLeft(\n editor,\n EditorDelta.wordLeft\n )\n}\n","import * as EditorSelectHorizontalRight from './EditorCommandSelectHorizontalRight.js'\nimport * as EditorDelta from './EditorCommandDelta.js'\n\nexport const editorSelectWordRight = (editor) => {\n return EditorSelectHorizontalRight.editorSelectHorizontalRight(\n editor,\n EditorDelta.wordRight\n )\n}\n","import * as Languages from '../Languages/Languages.js'\nimport * as TextDocument from '../TextDocument/TextDocument.js'\nimport * as Editor from '../Editor/Editor.js'\n\nconst RE_WHITESPACE_AT_START = /^\\s+/\nconst RE_WHITESPACE_AT_END = /\\s+$/\n\n// const blockComment = ['<!--', '-->']\n\nconst getBlockComment = async (editor) => {\n const languageConfiguration = await Languages.getLanguageConfiguration(editor)\n console.log({ languageConfiguration })\n if (\n !languageConfiguration ||\n !languageConfiguration.comments ||\n !languageConfiguration.comments.blockComment\n ) {\n return undefined\n }\n return languageConfiguration.comments.blockComment\n}\n\nexport const editorToggleBlockComment = async (editor) => {\n if (!Languages.hasLoaded()) {\n console.log('languages have not yet loaded')\n await Languages.waitForLoad()\n }\n editor.languageId = Languages.getLanguageId(editor.uri) // TODO avoid side effect here\n console.log('languages have loaded')\n console.log({ editor: { ...editor } })\n const blockComment = await getBlockComment(editor)\n if (!blockComment) {\n return editor\n }\n const rowIndex = editor.cursor.rowIndex\n const columnIndex = editor.cursor.columnIndex\n const line = TextDocument.getLine(editor, rowIndex)\n const numberOfLines = editor.lines.length\n let endRowIndex = rowIndex\n let endColumnIndex = -1\n const blockCommentStart = blockComment[0]\n const blockCommentEnd = blockComment[1]\n while (endRowIndex < numberOfLines) {\n const line = TextDocument.getLine(editor, endRowIndex)\n endColumnIndex = line.indexOf(blockCommentEnd)\n if (endColumnIndex !== -1) {\n break\n }\n endRowIndex++\n }\n let startColumnIndex = -1\n let startRowIndex = rowIndex\n while (startRowIndex >= 0) {\n const line = TextDocument.getLine(editor, startRowIndex)\n startColumnIndex = line.indexOf(blockCommentStart)\n if (startColumnIndex !== -1) {\n break\n }\n startRowIndex--\n }\n const changes = []\n\n if (startColumnIndex !== -1 && endColumnIndex !== -1) {\n if (startRowIndex === endRowIndex) {\n const change1 = {\n start: {\n rowIndex,\n columnIndex: startColumnIndex,\n },\n end: {\n rowIndex,\n columnIndex: startColumnIndex + blockCommentStart.length,\n },\n inserted: [],\n deleted: [blockCommentStart],\n origin: 'toggleBlockComment',\n }\n const change2 = {\n start: {\n rowIndex,\n columnIndex: endColumnIndex - blockCommentStart.length,\n },\n end: {\n rowIndex,\n columnIndex:\n endColumnIndex - blockCommentStart.length + blockCommentEnd.length,\n },\n inserted: [],\n deleted: [blockCommentEnd],\n origin: 'toggleBlockComment',\n }\n changes.push(change1, change2)\n // Editor.moveCursors(editor, (editor, cursor) => {\n // let newColumnIndex = cursor.columnIndex - blockComment[0].length\n // if (cursor.columnIndex === endColumnIndex + blockComment[1].length) {\n // newColumnIndex -= blockComment[1].length\n // }\n // return {\n // rowIndex: cursor.rowIndex,\n // columnIndex: newColumnIndex,\n // }\n // })\n } else {\n const change1 = {\n start: {\n rowIndex: startRowIndex,\n columnIndex: startColumnIndex,\n },\n end: {\n rowIndex: startRowIndex,\n columnIndex: startColumnIndex + blockCommentStart.length,\n },\n inserted: [],\n deleted: [blockCommentStart],\n origin: 'toggleBlockComment',\n }\n const change2 = {\n start: {\n rowIndex: endRowIndex,\n columnIndex: endColumnIndex,\n },\n end: {\n rowIndex: endRowIndex,\n columnIndex: endColumnIndex + blockCommentEnd.length,\n },\n inserted: [],\n deleted: [blockCommentEnd],\n origin: 'toggleBlockComment',\n }\n changes.push(change1, change2)\n\n // const oldRow1 = TextDocument.getLine(editor, startRowIndex)\n // const newRow1 =\n // oldRow1.slice(0, startColumnIndex) +\n // oldRow1.slice(startColumnIndex + blockCommentStart.length)\n // const oldRow2 = TextDocument.getLine(editor, endRowIndex)\n // const newRow2 =\n // oldRow2.slice(0, endColumnIndex) +\n // oldRow2.slice(endColumnIndex + blockCommentEnd.length)\n // // TODO use applyEdit to have undo functionality\n // TextDocument.setLine(editor, startRowIndex, newRow1)\n // TextDocument.setLine(editor, endRowIndex, newRow2)\n }\n // TODO move cursors\n } else {\n const whitespaceAtStart = line.match(RE_WHITESPACE_AT_START)\n const whitespaceAtEnd = line.match(RE_WHITESPACE_AT_END)\n let startColumnIndex = 0\n let endColumnIndex = line.length\n if (whitespaceAtStart) {\n startColumnIndex += whitespaceAtStart[0].length\n }\n if (whitespaceAtEnd) {\n endColumnIndex -= whitespaceAtEnd[0].length\n }\n const change1 = {\n start: {\n rowIndex,\n columnIndex: startColumnIndex,\n },\n end: {\n rowIndex,\n columnIndex: startColumnIndex,\n },\n inserted: [blockCommentStart],\n deleted: [],\n origin: 'toggleBlockComment',\n }\n const change2 = {\n start: {\n rowIndex,\n columnIndex: endColumnIndex + blockCommentStart.length,\n },\n end: {\n rowIndex,\n columnIndex: endColumnIndex + blockCommentStart.length,\n },\n inserted: [blockCommentEnd],\n deleted: [],\n origin: 'toggleBlockComment',\n }\n changes.push(change1, change2)\n // TextDocument.setLine(\n // editor,\n // rowIndex,\n // line.slice(0, startColumnIndex) +\n // blockComment[0] +\n // line.slice(startColumnIndex, endColumnIndex) +\n // blockComment[1] +\n // line.slice(endColumnIndex)\n // )\n // Editor.moveCursors(editor, (editor, cursor) => {\n // let newColumnIndex = cursor.columnIndex + blockComment[0].length\n // if (cursor.columnIndex === endColumnIndex) {\n // newColumnIndex += blockComment[1].length\n // }\n // return {\n // rowIndex: cursor.rowIndex,\n // columnIndex: newColumnIndex,\n // }\n // })\n }\n // if (line.startsWith(blockComment[0]) && line.endsWith(blockComment[1])) {\n // lines[rowIndex] = line.slice(\n // blockComment[0].length,\n // line.length - blockComment[1].length\n // )\n // Editor.moveCursors((editor, cursor) => {\n // return {\n // rowIndex: cursor.rowIndex,\n // columnIndex: cursor.columnIndex - blockComment[0].length,\n // }\n // })\n // } else {\n // lines[rowIndex] = blockComment[0] + line + blockComment[1]\n // Editor.moveCursors((editor, cursor) => {\n // return {\n // rowIndex: cursor.rowIndex,\n // columnIndex: cursor.columnIndex + blockComment[0].length,\n // }\n // })\n // }\n // RendererProcess.send([/* setLines */ 2135, /* lines */ lines])\n\n return Editor.scheduleDocument(editor, changes)\n}\n","import * as Editor from '../Editor/Editor.js'\nimport * as Languages from '../Languages/Languages.js'\nimport * as TextDocument from '../TextDocument/TextDocument.js'\n\n// TODO\nconst getLanguageAtPosition = (position) => {\n return 'html'\n}\n\nconst getLineComment = async (editor) => {\n const languageConfiguration = await Languages.getLanguageConfiguration(editor)\n if (\n !languageConfiguration ||\n !languageConfiguration.comments ||\n !languageConfiguration.comments.lineComment\n ) {\n return undefined\n }\n return languageConfiguration.comments.lineComment\n}\n\nconst getBlockComment = async (languageId) => {\n const languageConfiguration = await Languages.getLanguageConfiguration(\n languageId\n )\n if (\n !languageConfiguration ||\n !languageConfiguration.comments ||\n !languageConfiguration.comments.blockComment\n ) {\n return undefined\n }\n return languageConfiguration.comments.blockComment\n}\n\nconst RE_WHITESPACE_AT_START = /^\\s+/\n\nconst getLineCommentEdit = (rowIndex, line, lineComment) => {\n const whitespaceMatch = line.match(RE_WHITESPACE_AT_START)\n const index = whitespaceMatch ? whitespaceMatch[0] : 0\n if (line.slice(index).startsWith(lineComment)) {\n // TODO also check tab character\n if (line[index + lineComment.length] === ' ') {\n return {\n inserted: [''],\n deleted: [lineComment.length + 1],\n start: {\n rowIndex,\n columnIndex: index,\n },\n end: {\n rowIndex,\n columnIndex: index + lineComment.length + 1,\n },\n type: /* singleLineEdit */ 1,\n }\n }\n return {\n inserted: [''],\n deleted: [lineComment],\n start: {\n rowIndex,\n columnIndex: index,\n },\n end: {\n rowIndex,\n columnIndex: index + lineComment.length,\n },\n type: /* singleLineEdit */ 1,\n }\n }\n return {\n inserted: [`${lineComment} `],\n deleted: [],\n start: {\n rowIndex,\n columnIndex: index,\n },\n end: {\n rowIndex,\n columnIndex: index,\n },\n type: /* singleLineEdit */ 1,\n }\n}\n\nexport const editorToggleLineComment = async (editor) => {\n console.log('TOGGLE COMMENT')\n\n const lineComment = await getLineComment(editor)\n if (!lineComment) {\n return editor\n }\n // replaceSelections(editor, lineComment, 'editorToggleLineComment')\n const textDocument = editor\n const rowIndex = editor.cursor.rowIndex\n const line = TextDocument.getLine(textDocument, rowIndex)\n const documentEdits = [getLineCommentEdit(rowIndex, line, lineComment)]\n // TODO cursor edits should be computed automatically from document edits\n // console.log({ documentEdits })\n // const cursorEdits = Editor.moveCursors(editor, (editor, cursor) => {\n // return cursor\n // })\n return Editor.scheduleDocumentAndCursorsSelections(editor, documentEdits)\n}\n","import * as EditorToggleBlockComment from './EditorCommandToggleBlockComment.js'\nimport * as EditorToggleLineComment from './EditorCommandToggleLineComment.js'\n\n// TODO rename file\n// TODO when handle case when editor has selection\nexport const editorToggleComment = async (editor) => {\n const newEditor = await EditorToggleLineComment.editorToggleLineComment(\n editor\n )\n if (editor !== newEditor) {\n return newEditor\n }\n return EditorToggleBlockComment.editorToggleBlockComment(editor)\n}\n","import * as Editor from '../Editor/Editor.js'\n\nconst inverseChange = (edit) => {\n const endColumnIndex =\n edit.end.columnIndex - edit.deleted[0].length + edit.inserted[0].length\n return {\n start: edit.start,\n end: {\n rowIndex: edit.end.rowIndex,\n columnIndex: endColumnIndex,\n },\n inserted: edit.deleted,\n deleted: edit.inserted,\n }\n}\n\nexport const editorUndo = (editor) => {\n if (editor.undoStack.length === 0) {\n return\n }\n const last = editor.undoStack.pop()\n const inverseChanges = last.map(inverseChange)\n Editor.scheduleDocumentAndCursorsSelections(editor, inverseChanges)\n}\n","import * as Editor from '../Editor/Editor.js'\n\nconst INDENT = ' '\n\nexport const editorUnindent = (editor) => {\n if (Editor.hasSelection(editor)) {\n const documentEdits = []\n const cursorEdits = []\n const selectionEdits = []\n const canUnindentSelection = (selection) => {\n for (let i = selection.start.rowIndex; i <= selection.end.rowIndex; i++) {\n if (editor.lines[i].startsWith(INDENT)) {\n return true\n }\n }\n return false\n }\n // TODO replace check with flag that indicates whether change occurred\n // -> only iterate once over selection lines\n\n if (!editor.selections.some(canUnindentSelection)) {\n return\n }\n const indentLineMaybe = (rowIndex) => {\n if (editor.lines[rowIndex].startsWith(INDENT)) {\n documentEdits.push({\n type: /* singleLineEdit */ 1,\n rowIndex,\n columnIndex: INDENT.length,\n deleted: INDENT.length,\n inserted: '',\n })\n }\n }\n let previousRowIndex = -1\n for (const selection of editor.selections) {\n let startRowIndex = selection.start.rowIndex\n const endRowIndex = selection.end.rowIndex\n if (startRowIndex === previousRowIndex) {\n startRowIndex++\n }\n for (let i = startRowIndex; i <= endRowIndex; i++) {\n indentLineMaybe(i)\n }\n let start = selection.start\n let end = selection.end\n if (editor.lines[start.rowIndex].startsWith(INDENT)) {\n start = {\n rowIndex: start.rowIndex,\n columnIndex: Math.max(start.columnIndex - INDENT.length, 0),\n }\n }\n if (editor.lines[end.rowIndex].startsWith(INDENT)) {\n end = {\n rowIndex: end.rowIndex,\n columnIndex: Math.max(end.columnIndex - INDENT.length, 0),\n }\n }\n cursorEdits.push(end)\n selectionEdits.push({\n start,\n end,\n })\n previousRowIndex = endRowIndex\n }\n Editor.scheduleDocumentAndCursorsAndSelections(\n editor,\n documentEdits,\n cursorEdits,\n selectionEdits\n )\n return\n }\n const documentEdits = []\n const cursorEdits = []\n if (!editor.lines[editor.cursor.rowIndex].startsWith(INDENT)) {\n return\n }\n documentEdits.push({\n type: /* singleLineEdit */ 1,\n rowIndex: editor.cursor.rowIndex,\n inserted: '',\n columnIndex: 2,\n deleted: 2,\n })\n cursorEdits.push({\n rowIndex: editor.cursor.rowIndex,\n columnIndex: editor.cursor.columnIndex - 2,\n })\n Editor.scheduleDocumentAndCursors(editor, documentEdits, cursorEdits)\n}\n// const editor = {\n// textDocument: {\n// lines: [' line 1'],\n// },\n// cursor: {\n// rowIndex: 0,\n// columnIndex: 8,\n// },\n// selections: [\n// {\n// start: {\n// rowIndex: 0,\n// columnIndex: 0,\n// },\n// end: {\n// rowIndex: 0,\n// columnIndex: 8,\n// },\n// },\n// ],\n// tokenizer: TokenizePlainText,\n// }\n// editorUnindent(editor)\n\n// editor.lines //?\n","import * as Tokenizer from '../Tokenizer/Tokenizer.js'\nimport * as Viewlet from '../Viewlet/Viewlet.js'\n\nexport const setLanguageId = async (editor, languageId) => {\n // TODO only load tokenizer if not already loaded\n // if already loaded just set tokenizer and rerender text\n await Tokenizer.loadTokenizer(languageId)\n const tokenizer = Tokenizer.getTokenizer(languageId)\n if (tokenizer === editor.tokenizer) {\n return Viewlet.state.instances['EditorText'].state\n }\n // TODO update syntax highlighting\n // TODO get edits\n\n const latestEditor = Viewlet.state.instances['EditorText'].state\n\n return {\n ...latestEditor,\n languageId,\n invalidStartIndex: 0,\n tokenizer,\n }\n}\n","import * as EditorPosition from './EditorCommandPosition.js'\nimport * as Assert from '../Assert/Assert.js'\nimport * as ExtensionHostDefinition from '../ExtensionHost/ExtensionHostDefinition.js'\nimport * as TextDocument from '../TextDocument/TextDocument.js'\nimport * as RendererProcess from '../RendererProcess/RendererProcess.js'\n\nconst getTokenIndex = (tokens, offset) => {\n let currentOffset = 0\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i]\n currentOffset += token.length\n if (currentOffset >= offset) {\n return i\n }\n }\n return -1\n}\n\nexport const editorHandleMouseMoveWithAltKey = async (editor, x, y, offset) => {\n Assert.object(editor)\n Assert.number(x)\n Assert.number(y)\n Assert.number(offset)\n const position = EditorPosition.at(editor, x, y, offset)\n const documentOffset = TextDocument.offsetAt(editor, position)\n try {\n const definition = await ExtensionHostDefinition.executeDefinitionProvider(\n editor,\n documentOffset\n )\n if (!definition) {\n return editor\n }\n\n // TODO make sure that editor is not disposed\n\n const definitionStartPosition = TextDocument.positionAt(\n editor,\n definition.startOffset\n )\n const definitionEndPosition = TextDocument.positionAt(\n editor,\n definition.endOffset\n )\n const definitionRelativeStartX = definitionStartPosition.columnIndex\n const definitionRelativeEndX = definitionEndPosition.columnIndex\n const definitionRelativeY =\n definitionStartPosition.rowIndex - editor.minLineY\n\n const lineTokenMap = editor.lineCache[definitionStartPosition.rowIndex + 1]\n console.log({ tokenMap: lineTokenMap })\n console.log({\n lineCache: editor.lineCache,\n rowIndex: definitionStartPosition.rowIndex,\n })\n if (!lineTokenMap) {\n return editor\n }\n const tokenIndex = getTokenIndex(\n lineTokenMap.tokens,\n definitionStartPosition.columnIndex\n )\n if (tokenIndex === -1) {\n return editor\n }\n console.log({ token: tokenIndex })\n // .tokens\n // console.log({ editor })\n await RendererProcess.invoke(\n /* Viewlet.invoke */ 3024,\n /* id */ 'EditorText',\n /* method */ 'highlightAsLink',\n /* relativeY */ definitionRelativeY,\n /* tokenIndex */ tokenIndex\n )\n console.log({ definition })\n return editor\n } catch (error) {\n if (\n error &&\n error.message.startsWith(\n 'Failed to execute definition provider: No definition provider found'\n )\n ) {\n return editor\n }\n throw error\n }\n}\n","import * as ExtensionHost from './ExtensionHostCore.js'\nimport * as ExtensionHostManagement from './ExtensionHostManagement.js'\n\nexport const executeTypeDefinitionProvider = async (editor, offset) => {\n await ExtensionHostManagement.activateByEvent(\n `onTypeDefinition:${editor.languageId}`\n )\n return ExtensionHost.invoke(\n /* ExtensionHost.executeTypeDefinitionProvider */ 'ExtensionHostClosingTag.executeTypeDefinitionProvider',\n /* textDocumentId */ editor.id,\n /* offset */ offset\n )\n}\n","import * as Command from '../Command/Command.js'\nimport * as Editor from '../Editor/Editor.js'\nimport * as ExtensionHostTypeDefinition from '../ExtensionHost/ExtensionHostTypeDefinition.js'\nimport * as TextDocument from '../TextDocument/TextDocument.js'\nimport * as EditorShowMessage from './EditorCommandShowMessage.js'\n\n// TODO duplicate code with editorCommandGoToDefinition\n// TODO race condition, check that editor hasn't been closed in the meantime\n\n// TODO in case of error should show message \"Definition Error: Cannot ready Property x of undefined\"\n\n// TODO show some kind of message maybe (\"No Definition found\")\n\n// TODO possible to do this with events/state machine instead of promises -> enables canceling operations / concurrent calls\nconst getTypeDefinition = async (editor, position) => {\n const offset = TextDocument.offsetAt(editor, position)\n const definition =\n await ExtensionHostTypeDefinition.executeTypeDefinitionProvider(\n editor,\n offset\n )\n return definition\n}\n\n// TODO there are still race conditions in this function:\n// - when open is called twice, previous dom nodes can either be reused or the previous dom nodes must be disposed\n\nconst getTypeDefinitionErrorMessage = (error) => {\n if (\n error &&\n error.message &&\n error.message.startsWith('Failed to execute type definition provider: ')\n ) {\n return error.message.replace(\n 'Failed to execute type definition provider: ',\n ''\n )\n }\n return `${error}`\n}\n\nexport const editorGoToTypeDefinition = async (\n editor,\n position = editor.cursor,\n explicit = true\n) => {\n try {\n const typeDefinition = await getTypeDefinition(editor, position)\n // TODO if editor is already disposed at this point, do nothing\n if (!typeDefinition) {\n // TODO show popup that no definition was found\n // TODO if there was an error, show popup that go to definition resulted in an error\n return EditorShowMessage.editorShowMessage(\n editor,\n position,\n 'No type definition found'\n )\n }\n\n if (\n typeof typeDefinition.uri !== 'string' ||\n typeof typeDefinition.startOffset !== 'number' ||\n typeof typeDefinition.endOffset !== 'number'\n ) {\n console.warn('invalid type definition result', typeDefinition)\n return editor\n }\n\n if (typeDefinition.uri === editor.uri) {\n // TODO set cursor to the definition position\n const position = TextDocument.positionAt(\n editor,\n typeDefinition.startOffset\n )\n const selectionEdits = [\n {\n start: position,\n end: position,\n },\n ]\n return Editor.scheduleSelections(editor, selectionEdits)\n }\n // TODO if definition.file is not of type string, show a popup that definition.file must be of type string\n // TODO open file and scroll to that position and set cursor to that position\n\n await Command.execute(/* Main.openUri */ 97, /* uri */ typeDefinition.file)\n return editor\n } catch (error) {\n // TODO if editor is already disposed at this point, do nothing\n if (\n error &&\n error.message &&\n error.message.startsWith(\n 'Failed to execute type definition provider: No type definition provider found'\n )\n ) {\n const displayErrorMessage = getTypeDefinitionErrorMessage(error)\n await EditorShowMessage.editorShowMessage(\n /* editor */ editor,\n /* position */ position,\n /* message */ displayErrorMessage\n )\n return editor\n }\n\n console.error(error)\n\n const displayErrorMessage = getTypeDefinitionErrorMessage(error)\n await EditorShowMessage.editorShowMessage(\n /* editor */ editor,\n /* position */ position,\n /* message */ displayErrorMessage\n )\n return editor\n }\n}\n","import * as Editor from '../Editor/Editor.js'\nimport * as Assert from '../Assert/Assert.js'\n\nexport const editorApplyEdit = async (editor, changes) => {\n Assert.object(editor)\n Assert.array(changes)\n return Editor.scheduleDocumentAndCursorsSelections(editor, changes)\n}\n","export const setDecorations = (editor, decorations) => {\n return {\n ...editor,\n decorations,\n }\n}\n","import * as Command from '../Command/Command.js'\nimport * as Viewlet from '../Viewlet/Viewlet.js'\nimport * as EditorBlur from './EditorCommandBlur.js'\nimport * as EditorCancelSelection from './EditorCommandCancelSelection.js'\nimport * as EditorCompletion from './EditorCommandCompletion.js'\nimport * as EditorComposition from './EditorCommandComposition.js'\nimport * as EditorCopy from './EditorCommandCopy.js'\nimport * as EditorCopyLineDown from './EditorCommandCopyLineDown.js'\nimport * as EditorCopyLineUp from './EditorCommandCopyLineUp.js'\nimport * as EditorCursorCharacterLeft from './EditorCommandCursorCharacterLeft.js'\nimport * as EditorCursorCharacterRight from './EditorCommandCursorCharacterRight.js'\nimport * as EditorCursorDown from './EditorCommandCursorDown.js'\nimport * as EditorCursorEnd from './EditorCommandCursorEnd.js'\nimport * as EditorCursorHome from './EditorCommandCursorHome.js'\nimport * as EditorCursorSet from './EditorCommandCursorSet.js'\nimport * as EditorCursorUp from './EditorCommandCursorUp.js'\nimport * as EditorCursorWordLeft from './EditorCommandCursorWordLeft.js'\nimport * as EditorCursorWordPartLeft from './EditorCommandCursorWordPartLeft.js'\nimport * as EditorCursorWordPartRight from './EditorCommandCursorWordPartRight.js'\nimport * as EditorCursorWordRight from './EditorCommandCursorWordRight.js'\nimport * as EditorCut from './EditorCommandCut.js'\nimport * as EditorDeleteAllLeft from './EditorCommandDeleteAllLeft.js'\nimport * as EditorDeleteAllRight from './EditorCommandDeleteAllRight.js'\nimport * as EditorDeleteLeft from './EditorCommandDeleteCharacterLeft.js'\nimport * as EditorDeleteRight from './EditorCommandDeleteCharacterRight.js'\nimport * as EditorDeleteWordLeft from './EditorCommandDeleteWordLeft.js'\nimport * as EditorDeleteWordPartLeft from './EditorCommandDeleteWordPartLeft.js'\nimport * as EditorDeleteWordPartRight from './EditorCommandDeleteWordPartRight.js'\nimport * as EditorDeleteWordRight from './EditorCommandDeleteWordRight.js'\nimport * as EditorFormat from './EditorCommandFormat.js'\nimport * as EditorGoToDefinition from './EditorCommandGoToDefinition.js'\nimport * as EditorHandleContextMenu from './EditorCommandHandleContextMenu.js'\nimport * as EditorHandleDoubleClick from './EditorCommandHandleDoubleClick.js'\nimport * as EditorHandleMouseMove from './EditorCommandHandleMouseMove.js'\nimport * as EditorHandleBeforeInputFromContentEditable from './EditorCommandHandleNativeBeforeInputFromContentEditable.js'\nimport * as EditorHandleNativeSelectionChange from './EditorCommandHandleNativeSelectionChange.js'\nimport * as EditorHandleScrollBarClick from './EditorCommandHandleScrollBarClick.js'\nimport * as EditorHandleScrollBarMove from './EditorCommandHandleScrollBarMove.js'\nimport * as EditorHandleSingleClick from './EditorCommandHandleSingleClick.js'\nimport * as EditorHandleTab from './EditorCommandHandleTab.js'\nimport * as EditorHandleTouchEnd from './EditorCommandHandleTouchEnd.js'\nimport * as EditorHandleTouchMove from './EditorCommandHandleTouchMove.js'\nimport * as EditorHandleTouchStart from './EditorCommandHandleTouchStart.js'\nimport * as EditorHandleTripleClick from './EditorCommandHandleTripleClick.js'\nimport * as EditorCommandIndentLess from './EditorCommandIndentLess.js'\nimport * as EditorCommandIndentMore from './EditorCommandIndentMore.js'\nimport * as EditorInsertLineBreak from './EditorCommandInsertLineBreak.js'\nimport * as EditorMoveLineDown from './EditorCommandMoveLineDown.js'\nimport * as EditorMoveLineUp from './EditorCommandMoveLineUp.js'\nimport * as EditorMoveRectangleSelection from './EditorCommandMoveRectangleSelection.js'\nimport * as EditorMoveRectangleSelectionPx from './EditorCommandMoveRectangleSelectionPx.js'\nimport * as EditorMoveSelection from './EditorCommandMoveSelection.js'\nimport * as EditorMoveSelectionPx from './EditorCommandMoveSelectionPx.js'\nimport * as EditorPaste from './EditorCommandPaste.js'\nimport * as EditorPasteText from './EditorCommandPasteText.js'\nimport * as EditorSave from './EditorCommandSave.js'\nimport * as EditorSelectAll from './EditorCommandSelectAll.js'\nimport * as EditorSelectAllOccurrences from './EditorCommandSelectAllOccurrences.js'\nimport * as EditorSelectCharacterLeft from './EditorCommandSelectCharacterLeft.js'\nimport * as EditorSelectCharacterRight from './EditorCommandSelectCharacterRight.js'\nimport * as EditorSelectInsideString from './EditorCommandSelectInsideString.js'\nimport * as EditorSelectLine from './EditorCommandSelectLine.js'\nimport * as EditorSelectNextOccurrence from './EditorCommandSelectNextOccurrence.js'\nimport * as EditorSelectWord from './EditorCommandSelectWord.js'\nimport * as EditorSelectWordLeft from './EditorCommandSelectWordLeft.js'\nimport * as EditorSelectWordRight from './EditorCommandSelectWordRight.js'\nimport * as EditorSetDeltaY from './EditorCommandSetDeltaY.js'\nimport * as EditorTabCompletion from './EditorCommandTabCompletion.js'\nimport * as EditorToggleBlockComment from './EditorCommandToggleBlockComment.js'\nimport * as EditorToggleComment from './EditorCommandToggleComment.js'\nimport * as EditorType from './EditorCommandType.js'\nimport * as EditorUndo from './EditorCommandUndo.js'\nimport * as EditorUnindent from './EditorCommandUnindent.js'\nimport * as EditorSetLanguageId from './EditorCommandSetLanguageId.js'\nimport * as EditorHandleMouseMoveWithAltKey from './EditorCommandHandleMouseMoveWithAltKey.js'\nimport * as EditorGoToTypeDefinition from './EditorCommandGoToTypeDefinition.js'\nimport * as EditorApplyEdit from './EditorCommandApplyEdit.js'\nimport * as EditorSetDecorations from './EditorCommandSetDecorations.js'\n\nexport const __initialize__ = () => {\n Command.register(341, Viewlet.wrapViewletCommand('EditorText', EditorCursorDown.editorCursorsDown))\n Command.register(342, Viewlet.wrapViewletCommand('EditorText', EditorCursorCharacterLeft.editorCursorCharacterLeft))\n Command.register(343, Viewlet.wrapViewletCommand('EditorText', EditorCursorCharacterRight.editorCursorsCharacterRight))\n Command.register(344, Viewlet.wrapViewletCommand('EditorText', EditorCursorUp.editorCursorsUp))\n Command.register(345, Viewlet.wrapViewletCommand('EditorText', EditorType.editorType))\n Command.register(346, Viewlet.wrapViewletCommand('EditorText', EditorDeleteLeft.editorDeleteCharacterLeft))\n Command.register(347, Viewlet.wrapViewletCommand('EditorText', EditorDeleteRight.editorDeleteCharacterRight))\n Command.register(348, Viewlet.wrapViewletCommand('EditorText', EditorInsertLineBreak.editorInsertLineBreak))\n Command.register(349, Viewlet.wrapViewletCommand('EditorText', EditorCopyLineUp.editorCopyLineUp))\n Command.register(350, Viewlet.wrapViewletCommand('EditorText', EditorCopyLineDown.editorCopyLineDown))\n Command.register(351, Viewlet.wrapViewletCommand('EditorText', EditorMoveLineDown.editorMoveLineDown))\n Command.register(352, Viewlet.wrapViewletCommand('EditorText', EditorCursorWordLeft.editorCursorWordLeft))\n Command.register(353, Viewlet.wrapViewletCommand('EditorText', EditorCursorWordRight.editorCursorWordRight))\n Command.register(354, Viewlet.wrapViewletCommand('EditorText', EditorDeleteWordLeft.editorDeleteWordLeft))\n Command.register(355, Viewlet.wrapViewletCommand('EditorText', EditorDeleteWordRight.editorDeleteWordRight))\n Command.register(356, Viewlet.wrapViewletCommand('EditorText', EditorMoveLineUp.editorMoveLineUp))\n Command.register(357, Viewlet.wrapViewletCommand('EditorText', EditorTabCompletion.editorTabCompletion))\n Command.register(358, Viewlet.wrapViewletCommand('EditorText', EditorCursorHome.editorCursorsHome))\n Command.register(359, Viewlet.wrapViewletCommand('EditorText', EditorCursorEnd.editorCursorEnd))\n Command.register(360, Viewlet.wrapViewletCommand('EditorText', EditorHandleSingleClick.editorHandleSingleClick))\n Command.register(361, Viewlet.wrapViewletCommand('EditorText', EditorSelectWord.editorSelectWord))\n Command.register(362, Viewlet.wrapViewletCommand('EditorText', EditorToggleBlockComment.editorToggleBlockComment))\n Command.register(363, Viewlet.wrapViewletCommand('EditorText', EditorMoveSelection.editorMoveSelection))\n Command.register(364, Viewlet.wrapViewletCommand('EditorText', EditorCut.editorCut))\n Command.register(365, Viewlet.wrapViewletCommand('EditorText', EditorCopy.editorCopy))\n Command.register(366, Viewlet.wrapViewletCommand('EditorText', EditorSelectAll.editorSelectAll))\n Command.register(367, Viewlet.wrapViewletCommand('EditorText', EditorMoveRectangleSelection.editorMoveRectangleSelection))\n Command.register(368, Viewlet.wrapViewletCommand('EditorText', EditorCursorWordPartRight.editorCursorWordPartRight))\n Command.register(369, Viewlet.wrapViewletCommand('EditorText', EditorCursorWordPartLeft.editorCursorWordPartLeft))\n Command.register(370, Viewlet.wrapViewletCommand('EditorText', EditorBlur.editorBlur)) // TODO needed?\n Command.register(373, Viewlet.wrapViewletCommand('EditorText', EditorToggleComment.editorToggleComment))\n Command.register(374, Viewlet.wrapViewletCommand('EditorText', EditorDeleteAllLeft.editorDeleteAllLeft))\n Command.register(375, Viewlet.wrapViewletCommand('EditorText', EditorDeleteAllRight.editorDeleteAllRight))\n Command.register(376, Viewlet.wrapViewletCommand('EditorText', EditorHandleTripleClick.editorHandleTripleClick))\n Command.register(377, Viewlet.wrapViewletCommand('EditorText', EditorSelectLine.editorSelectLine))\n Command.register(378, Viewlet.wrapViewletCommand('EditorText', EditorSave.editorSave))\n Command.register(379, Viewlet.wrapViewletCommand('EditorText', EditorHandleContextMenu.editorHandleContextMenu))\n Command.register(380, Viewlet.wrapViewletCommand('EditorText', EditorSelectCharacterLeft.editorSelectCharacterLeft))\n Command.register(381, Viewlet.wrapViewletCommand('EditorText', EditorSelectCharacterRight.editorSelectCharacterRight))\n Command.register(382, Viewlet.wrapViewletCommand('EditorText', EditorPasteText.editorPasteText))\n Command.register(383, Viewlet.wrapViewletCommand('EditorText', EditorPaste.editorPaste))\n Command.register(384, Viewlet.wrapViewletCommand('EditorText', EditorSetDeltaY.editorSetDeltaY))\n Command.register(385, Viewlet.wrapViewletCommand('EditorText', EditorHandleDoubleClick.editorHandleDoubleClick))\n Command.register(386, Viewlet.wrapViewletCommand('EditorText', EditorMoveSelectionPx.editorMoveSelectionPx))\n Command.register(387, Viewlet.wrapViewletCommand('EditorText', EditorMoveRectangleSelectionPx.editorMoveRectangleSelectionPx))\n Command.register(388, Viewlet.wrapViewletCommand('EditorText', EditorFormat.editorFormat))\n Command.register(389, Viewlet.wrapViewletCommand('EditorText', EditorHandleMouseMove.editorHandleMouseMove))\n Command.register(390, Viewlet.wrapViewletCommand('EditorText', EditorSelectNextOccurrence.editorSelectNextOccurrence))\n Command.register(391, Viewlet.wrapViewletCommand('EditorText', EditorSelectAllOccurrences.editorSelectAllOccurrences))\n Command.register(392, Viewlet.wrapViewletCommand('EditorText', EditorHandleTab.editorHandleTab))\n Command.register(393, Viewlet.wrapViewletCommand('EditorText', EditorCancelSelection.editorCancelSelection))\n Command.register(394, Viewlet.wrapViewletCommand('EditorText', EditorUnindent.editorUnindent))\n Command.register(395, Viewlet.wrapViewletCommand('EditorText', EditorUndo.editorUndo))\n Command.register(396, Viewlet.wrapViewletCommand('EditorText', EditorCursorSet.editorCursorSet))\n Command.register(397, Viewlet.wrapViewletCommand('EditorText', EditorDeleteWordPartLeft.editorDeleteWordPartLeft))\n Command.register(398, Viewlet.wrapViewletCommand('EditorText', EditorDeleteWordPartRight.editorDeleteWordPartRight))\n Command.register(399, Viewlet.wrapViewletCommand('EditorText', EditorHandleScrollBarMove.editorHandleScrollBarMove))\n Command.register(400, Viewlet.wrapViewletCommand('EditorText', EditorHandleScrollBarClick.editorHandleScrollBarClick))\n Command.register(401, Viewlet.wrapViewletCommand('EditorText', EditorSelectWordRight.editorSelectWordRight))\n Command.register(402, Viewlet.wrapViewletCommand('EditorText', EditorSelectWordLeft.editorSelectWordLeft))\n Command.register(403, Viewlet.wrapViewletCommand('EditorText', EditorSelectInsideString.editorSelectInsideString))\n Command.register(404, Viewlet.wrapViewletCommand('EditorText', EditorHandleTouchStart.editorHandleTouchStart))\n Command.register(405, Viewlet.wrapViewletCommand('EditorText', EditorHandleTouchMove.editorHandleTouchMove))\n Command.register(406, Viewlet.wrapViewletCommand('EditorText', EditorHandleTouchEnd.editorHandleTouchEnd))\n Command.register(407, Viewlet.wrapViewletCommand('EditorText', EditorHandleBeforeInputFromContentEditable.handleBeforeInputFromContentEditable))\n Command.register(408, Viewlet.wrapViewletCommand('EditorText', EditorHandleNativeSelectionChange.editorHandleNativeSelectionChange))\n Command.register(409, Viewlet.wrapViewletCommand('EditorText', EditorCommandIndentMore.editorIndentMore))\n Command.register(410, Viewlet.wrapViewletCommand('EditorText', EditorCommandIndentLess.editorIndentLess))\n Command.register(411, Viewlet.wrapViewletCommand('EditorText', EditorComposition.editorCompositionStart))\n Command.register(412, Viewlet.wrapViewletCommand('EditorText', EditorComposition.editorCompositionUpdate))\n Command.register(413, Viewlet.wrapViewletCommand('EditorText', EditorComposition.editorCompositionEnd))\n Command.register(414, Viewlet.wrapViewletCommand('EditorText', EditorGoToDefinition.editorGoToDefinition))\n Command.register(415, Viewlet.wrapViewletCommand('EditorText', EditorHandleMouseMoveWithAltKey.editorHandleMouseMoveWithAltKey))\n // TODO command to set cursor position\n // TODO command copy line up/down\n // TODO command move line up/down\n\n Command.register(980, Viewlet.wrapViewletCommand('EditorText', EditorCompletion.open))\n Command.register(981, Viewlet.wrapViewletCommand('EditorText', EditorCompletion.close))\n Command.register(988, Viewlet.wrapViewletCommand('EditorText', EditorCompletion.openFromType))\n Command.register(989, Viewlet.wrapViewletCommand('EditorText', EditorSetLanguageId.setLanguageId))\n Command.register(990, Viewlet.wrapViewletCommand('EditorText', EditorGoToTypeDefinition.editorGoToTypeDefinition))\n Command.register(991, Viewlet.wrapViewletCommand('EditorText', EditorApplyEdit.editorApplyEdit))\n Command.register(992, Viewlet.wrapViewletCommand('EditorText', EditorSetDecorations.setDecorations))\n}\n","import * as Command from '../Command/Command.js'\nimport * as KeyBindings from './KeyBindings.js'\n\nexport const __initialize__ = () => {\n Command.register(1422, KeyBindings.handleKeyBinding)\n Command.register(1423, KeyBindings.hydrate)\n}\n","import * as SharedProcess from '../SharedProcess/SharedProcess.js'\n\nexport const openNativeFolder = async (absolutePath) => {\n await SharedProcess.invoke(\n /* Native.openFolder */ 'Native.openFolder',\n /* path */ absolutePath\n )\n}\n","import * as Open from '../Open/Open.js'\nimport * as Platform from '../Platform/Platform.js'\n\nexport const openExtensionsFolder = async () => {\n const extensionsFolder = await Platform.getExtensionsPath()\n await Open.openNativeFolder(extensionsFolder)\n}\n\nexport const openCachedExtensionsFolder = async () => {\n const cachedExtensionsFolder = await Platform.getCachedExtensionsPath()\n await Open.openNativeFolder(cachedExtensionsFolder)\n}\n","import * as Command from '../Command/Command.js'\nimport * as Extensions from './Extensions.js'\n\nexport const __initialize__ = () => {\n Command.register(7650, Extensions.openExtensionsFolder)\n Command.register(7651, Extensions.openCachedExtensionsFolder)\n}\n","import * as Command from '../Command/Command.js'\nimport * as ErrorHandling from '../ErrorHandling/ErrorHandling.js'\nimport * as FileSystem from '../FileSystem/FileSystem.js'\nimport * as GlobalEventBus from '../GlobalEventBus/GlobalEventBus.js'\nimport * as IconTheme from '../IconTheme/IconTheme.js'\nimport * as RendererProcess from '../RendererProcess/RendererProcess.js'\nimport * as SharedProcess from '../SharedProcess/SharedProcess.js' // TODO should not import shared process -> use command.execute instead (maybe)\nimport * as Workspace from '../Workspace/Workspace.js'\nimport * as Viewlet from '../Viewlet/Viewlet.js' // TODO should not import viewlet manager -> avoid cyclic dependency\n\n// TODO viewlet should only have create and refresh functions\n// every thing else can be in a separate module <viewlet>.lazy.js\n// and <viewlet>.ipc.js\n\n// viewlet: creating | refreshing | done | disposed\n// TODO recycle viewlets (maybe)\n\nconst ITEM_HEIGHT = 22 // TODO handle zoom\n\nexport const name = 'Explorer'\n\nconst getParentStartIndex = (dirents, index) => {\n const dirent = dirents[index]\n let startIndex = index - 1\n while (startIndex >= 0 && dirents[startIndex].depth >= dirent.depth) {\n startIndex--\n }\n return startIndex\n}\n\nconst getParentEndIndex = (dirents, index) => {\n const dirent = dirents[index]\n let endIndex = index + 1\n while (endIndex < dirents.length && dirents[endIndex].depth > dirent.depth) {\n endIndex++\n }\n return endIndex\n}\n\nconst priorityMapFoldersFirst = {\n folder: 1,\n directory: 1,\n file: 0,\n unknown: 0,\n socket: 0,\n}\n\nconst compareDirentType = (direntA, direntB) => {\n return (\n priorityMapFoldersFirst[direntB.type] -\n priorityMapFoldersFirst[direntA.type]\n )\n}\n\nconst compareDirentName = (direntA, direntB) => {\n return direntA.name.localeCompare(direntB.name)\n}\n\nconst compareDirent = (direntA, direntB) => {\n return (\n compareDirentType(direntA, direntB) || compareDirentName(direntA, direntB)\n )\n}\n\nconst toDisplayDirents = (state, rawDirents, parentDirent) => {\n rawDirents.sort(compareDirent) // TODO maybe shouldn't mutate input argument, maybe sort after mapping\n // TODO figure out whether this uses too much memory (name,path -> redundant, depth could be computed on demand)\n const toDisplayDirent = (rawDirent, index) => {\n const path = parentDirent.path\n ? [parentDirent.path, rawDirent.name].join(state.pathSeparator)\n : [state.root, rawDirent.name].join(state.pathSeparator)\n return {\n name: rawDirent.name,\n posInSet: index + 1,\n setSize: rawDirents.length,\n depth: parentDirent.depth + 1,\n type: rawDirent.type,\n path, // TODO storing absolute path might be too costly, could also store relative path here\n icon: IconTheme.getIcon(rawDirent),\n }\n }\n return rawDirents.map(toDisplayDirent)\n}\n\nconst getChildDirents = async (state, parentDirent) => {\n // TODO use event/actor based code instead, this is impossible to cancel right now\n // also cancel updating when opening new folder\n // const dispose = state => state.pendingRequests.forEach(cancelRequest)\n // TODO should use FileSystem directly in this case because it is globally available anyway\n // and more typesafe than Command.execute\n // and more performant\n const uri = parentDirent.path\n const rawDirents = await FileSystem.readDirWithFileTypes(uri)\n const displayDirents = toDisplayDirents(state, rawDirents, parentDirent)\n return displayDirents\n}\n\n// TODO instead of root string, there should be a root dirent\n\nexport const create = (id, uri, left, top, width, height) => {\n return {\n root: '',\n dirents: [],\n focusedIndex: -1,\n hoverIndex: -1,\n top,\n left,\n height,\n deltaY: 0,\n minLineY: 0,\n maxLineY: 0,\n pathSeparator: '',\n version: 0,\n editingIndex: -1,\n }\n}\n\nconst getPathSeparator = (root) => {\n return FileSystem.getPathSeparator(root)\n}\n\nexport const loadContent = async (state) => {\n const root = Workspace.state.workspacePath\n const pathSeparator = await getPathSeparator(root) // TODO only load path separator once\n const dirents = await getTopLevelDirents({ root, pathSeparator })\n return {\n ...state,\n root,\n dirents,\n maxLineY: Math.round(state.height / ITEM_HEIGHT),\n pathSeparator,\n }\n}\n\nexport const updateIcons = (state) => {\n for (const dirent of state.dirents) {\n dirent.icon = IconTheme.getIcon(dirent)\n }\n}\n\nexport const contentLoaded = async (state) => {\n // console.trace({ state })\n // TODO execute command directly\n // TODO this should a promise and be awaited\n await scheduleDirents(state)\n}\n\nconst getTopLevelDirents = ({ root, pathSeparator }) => {\n if (!root) {\n return []\n }\n return getChildDirents(\n { root, pathSeparator },\n {\n depth: 0,\n path: root,\n type: 'directory',\n }\n )\n}\n\nexport const contentLoadedEffects = (state) => {\n // TODO why is this event emitted?\n GlobalEventBus.emitEvent('dirents.update', state.dirents)\n\n // TODO create should not have side effects\n // TODO dispose listener when explorer is disposed\n // TODO hoist function\n GlobalEventBus.addListener('languages.changed', async () => {\n updateIcons(state)\n await scheduleDirents(state)\n })\n\n // TODO hoist function\n GlobalEventBus.addListener('workspace.change', async () => {\n state.root = Workspace.state.workspacePath\n const newState = await loadContent(state)\n Viewlet.state.instances['Explorer'].state = newState\n await contentLoaded(newState)\n // TODO\n })\n\n GlobalEventBus.addListener('iconTheme.change', async () => {\n await contentLoaded(state)\n })\n}\n\nconst getVisible = (state) => {\n return state.dirents.slice(state.minLineY, state.maxLineY)\n}\n\nconst scheduleDirents = async (state) => {\n const visibleDirents = getVisible(state)\n await RendererProcess.invoke(\n /* Viewlet.send */ 3024,\n /* id */ 'Explorer',\n /* method */ 'updateDirents',\n /* visibleDirents */ visibleDirents\n )\n}\n\nconst updateViewport = (state) => {\n const minLineY = Math.round(state.deltaY / ITEM_HEIGHT)\n const maxLineY = minLineY + Math.round(state.height / ITEM_HEIGHT)\n // TODO this should be functional (return new state)\n state.minLineY = minLineY\n state.maxLineY = maxLineY\n}\n\nexport const setDeltaY = async (state, deltaY) => {\n if (deltaY < 0) {\n deltaY = 0\n } else if (deltaY > state.dirents.length * ITEM_HEIGHT - state.height) {\n deltaY = Math.max(state.dirents.length * ITEM_HEIGHT - state.height, 0)\n }\n if (state.deltaY === deltaY) {\n return\n }\n state.deltaY = deltaY\n updateViewport(state)\n await scheduleDirents(state)\n}\n\nexport const handleWheel = async (state, deltaY) => {\n await setDeltaY(state, state.deltaY + deltaY)\n}\n\nexport const handleContextMenu = async (state, x, y, index) => {\n state.focusedIndex = index\n console.log('ctx menu', index, state)\n await Command.execute(\n /* ContextMenu.show */ 951,\n /* x */ x,\n /* y */ y,\n /* id */ 'explorer'\n )\n}\n\nexport const getFocusedDirent = (state) => {\n const dirent = state.dirents[state.focusedIndex]\n return dirent\n}\n\n// TODO support multiselection and removing multiple dirents\nexport const removeDirent = async (state) => {\n if (state.focusedIndex === -1) {\n return\n }\n const dirent = getFocusedDirent(state)\n const absolutePath = dirent.path\n try {\n // TODO handle error\n await FileSystem.remove(absolutePath)\n } catch (error) {\n // TODO vscode shows error as alert (no stacktrace) and retry button\n // maybe should show alert as well, but where to put stacktrace?\n // on web should probably show notification (dialog)\n // ErrorHandling.handleError(error)\n await ErrorHandling.showErrorDialog(error)\n return\n }\n console.log('remove dirent')\n const newVersion = ++state.version\n // TODO race condition\n // const newState = await loadContent(state)\n if (state.version !== newVersion || state.disposed) {\n return\n }\n // TODO is it possible to make this more functional instead of mutating state?\n // maybe every function returns a new state?\n const index = state.dirents.indexOf(dirent)\n state.dirents.splice(index, 1)\n let indexToFocus = -1\n\n if (state.dirents.length === 0) {\n indexToFocus = -1\n } else if (index < state.focusedIndex) {\n indexToFocus = state.focusedIndex - 1\n } else if (index === state.focusedIndex) {\n indexToFocus = Math.max(state.focusedIndex - 1, 0)\n } else {\n indexToFocus = Math.max(state.focusedIndex - 1, 0)\n }\n\n // TODO removing of file and setting focus should happen at the same time\n await scheduleDirents(state)\n await focusIndex(state, indexToFocus)\n}\n\nconst updateDirents = async (state) => {\n const newVersion = ++state.version\n const newState = await loadContent(state)\n if (state.version !== newVersion || state.disposed) {\n return\n }\n Object.assign(state, newState)\n await contentLoaded(state)\n}\n\nexport const renameDirent = async (state) => {\n const index = state.focusedIndex\n state.editingIndex = index\n const dirent = state.dirents[index]\n const name = dirent.name\n await RendererProcess.invoke(\n /* Viewlet.invoke */ 3024,\n /* id */ 'Explorer',\n /* method */ 'showRenameInputBox',\n /* index */ index,\n /* name */ name\n )\n}\n\nexport const cancelRename = async (state) => {\n const index = state.editingIndex\n const dirent = state.dirents[index]\n state.editingIndex = -1\n await RendererProcess.invoke(\n /* Viewlet.invoke */ 3024,\n /* id */ 'Explorer',\n /* method */ 'hideRenameBox',\n /* index */ index,\n /* dirent */ dirent\n )\n}\n\n// TODO use posInSet and setSize properties to compute more effectively\n/**\n * @internal\n */\nexport const computeRenamedDirent = (dirents, index, newName) => {\n let startIndex = index\n let innerEndIndex = index + 1\n let insertIndex = -1\n let posInSet = -1\n const oldDirent = dirents[index]\n const newDirent = {\n ...oldDirent,\n name: newName,\n path: oldDirent.path.slice(0, -oldDirent.name.length) + newName,\n }\n const depth = newDirent.depth\n // TODO\n for (; startIndex >= 0; startIndex--) {\n const dirent = dirents[startIndex]\n // console.log(dirent, startIndex)\n console.log('check', dirent.path)\n if (dirent.depth > depth) {\n console.log('continue', dirent.path, startIndex)\n\n continue\n }\n if (dirent.depth < depth) {\n console.log('break', dirent.depth, depth)\n break\n }\n console.log({ startIndex })\n console.log('comp', compareDirent(dirent, newDirent))\n if (compareDirent(dirent, newDirent) === 1) {\n console.log('is smaller', dirent.path, newDirent.path)\n insertIndex = startIndex\n posInSet = dirent.posInSet\n // dirent.posInSet++\n } else {\n console.log('is larger', dirent.path, newDirent.path)\n }\n }\n startIndex++\n console.log({ insertIndex, startIndex })\n for (; innerEndIndex < dirents.length; innerEndIndex++) {\n const dirent = dirents[innerEndIndex]\n if (dirent.depth <= depth) {\n break\n }\n dirent.path = newDirent.path + dirent.path.slice(oldDirent.path.length)\n }\n innerEndIndex--\n\n let endIndex = innerEndIndex + 1\n\n for (; endIndex < dirents.length; endIndex++) {\n const dirent = dirents[endIndex]\n if (dirent.depth > depth) {\n continue\n }\n if (dirent.depth < depth) {\n break\n }\n if (insertIndex === -1 && compareDirent(dirent, newDirent === -1)) {\n console.log('bigger', dirent.path)\n for (; endIndex < dirents.length; endIndex++) {\n const childDirent = dirents[endIndex]\n console.log(childDirent)\n }\n insertIndex = endIndex\n posInSet = dirent.posInSet + 1\n }\n }\n endIndex--\n // console.log({endi /})\n\n for (let j = startIndex; j < index; j++) {\n const dirent = dirents[j]\n if (dirent.depth === depth) {\n dirent.posInSet++\n }\n }\n for (let j = index; j < endIndex; j++) {\n const dirent = dirents[j]\n if (dirent.depth === depth) {\n dirent.posInSet--\n }\n }\n\n // for (let j = startIndex; j < index; j++) {\n // const dirent = dirents[j]\n // dirent.posInSet++\n // }\n\n if (insertIndex === -1) {\n insertIndex = index\n return {\n focusedIndex: index,\n newDirents: [\n ...dirents.slice(0, index),\n newDirent,\n ...dirents.slice(index + 1),\n ],\n }\n }\n newDirent.posInSet = posInSet\n\n console.log({ startIndex, endIndex, index, innerEndIndex, insertIndex })\n const newDirents = [...dirents]\n if (index < insertIndex) {\n insertIndex--\n }\n newDirents.splice(index, 1)\n newDirents.splice(insertIndex, 0, newDirent)\n\n return { newDirents, focusedIndex: insertIndex }\n}\n\nexport const acceptRename = async (state) => {\n const index = state.editingIndex\n state.editingIndex = -1\n const renamedDirent = state.dirents[index]\n const newDirentName = await RendererProcess.invoke(\n /* Viewlet.invoke */ 3024,\n /* id */ 'Explorer',\n /* method */ 'hideRenameBox',\n /* index */ index,\n /* dirent */ renamedDirent\n )\n try {\n // TODO this does not work with rename of nested file\n const oldAbsolutePath = renamedDirent.path\n const newAbsolutePath = [state.root, newDirentName].join(\n state.pathSeparator\n )\n await FileSystem.rename(oldAbsolutePath, newAbsolutePath)\n } catch (error) {\n await ErrorHandling.showErrorDialog(error)\n return\n }\n const { dirents } = state\n const { newDirents, focusedIndex } = computeRenamedDirent(\n dirents,\n index,\n newDirentName\n )\n // TODO move focused index\n state.dirents = newDirents\n await contentLoaded(state)\n await focusIndex(state, focusedIndex)\n\n // await updateDirents(state)\n}\n\nexport const copyRelativePath = async (state) => {\n const dirent = getFocusedDirent(state)\n const relativePath = dirent.path.slice(1)\n // TODO handle error\n await Command.execute(/* ClipBoard.writeText */ 241, /* text */ relativePath)\n}\n\nexport const copyPath = async (state) => {\n const dirent = getFocusedDirent(state)\n // TODO windows paths\n // TODO handle error\n const path = dirent.path\n await Command.execute(/* ClipBoard.writeText */ 241, /* text */ path)\n}\n\nexport const openContainingFolder = async (state) => {\n // TODO handle error\n // TODO should return folder to open\n // TODO use command.execute instead\n await SharedProcess.invoke(\n /* Native.openFolder */ 'Native.openFolder',\n /* path */ state.root\n )\n}\n\nconst newDirent = async (state) => {\n // TODO do it like vscode, select position between folders and files\n const focusedIndex = state.focusedIndex\n const index = state.focusedIndex + 1\n if (focusedIndex !== -1) {\n const dirent = state.dirents[state.focusedIndex]\n console.log({ dirent, dirents: state.dirents, fi: state.focusedIndex })\n if (dirent.type === 'directory') {\n // TODO handle error\n await handleClickDirectory(state, dirent, focusIndex)\n }\n }\n state.editingIndex = index\n await RendererProcess.invoke(\n /* Viewlet.invoke */ 3024,\n /* id */ 'Explorer',\n /* method */ 'showCreateFileInputBox',\n /* index */ index\n )\n}\n\n// TODO much shared logic with newFolder\nexport const newFile = async (state) => {\n await newDirent(state)\n}\n\nconst cancelDirent = async (state) => {\n const index = state.editingIndex\n state.editingIndex = -1\n await RendererProcess.invoke(\n /* Viewlet.invoke */ 3024,\n /* id */ 'Explorer',\n /* method */ 'hideCreateFileInputBox',\n /* index */ index\n )\n}\n\nexport const cancelNewFile = async (state) => {\n await cancelDirent()\n}\n\nconst getParentFolder = (dirents, index, root) => {\n if (index === -1) {\n return root\n }\n return dirents[index].path\n}\n\nconst acceptDirent = async (state, type) => {\n const editingIndex = state.editingIndex\n const focusedIndex = state.focusedIndex\n state.editingIndex = -1\n const newFileName = await RendererProcess.invoke(\n /* Viewlet.invoke */ 3024,\n /* id */ 'Explorer',\n /* method */ 'hideCreateFileInputBox',\n /* index */ editingIndex\n )\n if (!newFileName) {\n // TODO show error message that file name must not be empty\n // below input box\n await ErrorHandling.showErrorDialog(\n new Error('file name must not be empty')\n )\n return\n }\n // console.log({ index: editingIndex, dirent: state.dirents[editingIndex] })\n const parentFolder = getParentFolder(state.dirents, focusedIndex, state.root)\n console.log({ parentFolder, focusedIndex, state })\n const absolutePath = [parentFolder, newFileName].join(state.pathSeparator)\n // TODO better handle error\n try {\n switch (type) {\n case 'file':\n await FileSystem.writeFile(absolutePath, '')\n break\n case 'folder':\n case 'directory':\n await FileSystem.mkdir(absolutePath)\n break\n default:\n break\n }\n } catch (error) {\n await ErrorHandling.showErrorDialog(error)\n return\n }\n console.log({ focusedIndex })\n console.log(state.dirents)\n const parentDirent = state.dirents[focusedIndex] || {\n depth: 0,\n path: state.root,\n }\n const depth = parentDirent.depth + 1\n const newDirent = {\n path: absolutePath,\n posInSet: -1,\n setSize: 1,\n depth,\n name: newFileName,\n type,\n icon: '',\n }\n newDirent.icon = IconTheme.getIcon(newDirent)\n let insertIndex = state.focusedIndex\n let deltaPosInSet = 0\n let posInSet = 1\n let setSize = 1\n let i = state.focusedIndex + 1\n for (; i < state.dirents.length; i++) {\n const dirent = state.dirents[i]\n if (dirent.depth !== depth) {\n break\n }\n const compareResult = compareDirent(dirent, newDirent)\n if (compareResult === 1) {\n insertIndex = i\n deltaPosInSet = 1\n } else {\n posInSet = dirent.posInSet + 1\n setSize = dirent.setSize + 1\n insertIndex = i\n }\n dirent.setSize++\n dirent.posInSet += deltaPosInSet\n }\n console.log({ insertIndex })\n newDirent.setSize = setSize\n newDirent.posInSet = posInSet\n state.dirents.splice(insertIndex + 1, 0, newDirent)\n\n console.log(state.dirents)\n // TODO insert dirent here\n // await updateDirents(state)\n await contentLoaded(state)\n}\n\n// TODO much duplicate logic with acceptNewFolder\nexport const acceptNewFile = async (state) => {\n await acceptDirent(state, 'file')\n}\n\nexport const acceptNewFolder = async (state) => {\n await acceptDirent(state, 'directory')\n}\n\n// TODO much copy paste with newFIle command\nexport const newFolder = async (state) => {\n await newDirent(state)\n}\n\nconst handleClickFile = async (state, dirent, index) => {\n await Command.execute(\n /* Main.openAbsolutePath */ 97,\n /* absolutePath */ dirent.path\n )\n}\n\nconst handleClickDirectory = async (state, dirent, index) => {\n dirent.type = 'directory-expanding'\n // TODO handle error\n const dirents = await getChildDirents(state, dirent)\n const newIndex = state.dirents.indexOf(dirent)\n if (newIndex === -1) {\n return\n }\n // console.log(state.dirents[index] === dirent)\n state.dirents.splice(newIndex + 1, 0, ...dirents)\n dirent.type = 'directory-expanded'\n dirent.icon = IconTheme.getIcon(dirent)\n await scheduleDirents(state)\n}\n\nconst handleClickDirectoryExpanding = async (state, dirent, index) => {\n dirent.type = 'directory'\n dirent.icon = IconTheme.getIcon(dirent)\n await RendererProcess.invoke(\n /* viewSend */ 3024,\n /* id */ 'Explorer',\n /* method */ 'collapse',\n /* index */ index,\n /* removeCount */ 0\n )\n}\n\nconst handleClickDirectoryExpanded = async (state, dirent, index) => {\n dirent.type = 'directory'\n dirent.icon = IconTheme.getIcon(dirent)\n const endIndex = getParentEndIndex(state.dirents, index)\n const removeCount = endIndex - index - 1\n // TODO race conditions and side effects are everywhere\n state.dirents.splice(index + 1, removeCount)\n await scheduleDirents(state)\n}\n\nexport const handleClick = async (state, index) => {\n if (index === -1) {\n state.focusedIndex = -1\n return\n }\n const actualIndex = index + state.minLineY\n state.focusedIndex = actualIndex\n const dirent = state.dirents[actualIndex]\n // TODO dirent type should be numeric\n switch (dirent.type) {\n case 'file':\n await handleClickFile(state, dirent, actualIndex)\n break\n // TODO decide on one name\n case 'folder':\n case 'directory':\n await handleClickDirectory(state, dirent, actualIndex)\n break\n case 'directory-expanding':\n await handleClickDirectoryExpanding(state, dirent, actualIndex)\n break\n case 'directory-expanded':\n await handleClickDirectoryExpanded(state, dirent, actualIndex)\n break\n default:\n break\n }\n}\n\nexport const handleClickCurrent = async (state) => {\n await handleClick(state, state.focusedIndex)\n}\n\nexport const focusIndex = async (state, index) => {\n state.focusedIndex = index\n await RendererProcess.invoke(\n /* viewSend */ 3024,\n /* id */ 'Explorer',\n /* method */ 'focusIndex',\n /* focusedIndex */ state.focusedIndex\n )\n}\n\nexport const focusNext = async (state) => {\n if (state.focusedIndex === state.dirents.length - 1) {\n return\n }\n await focusIndex(state, state.focusedIndex + 1)\n}\n\nexport const focusPrevious = async (state) => {\n switch (state.focusedIndex) {\n case -1:\n if (state.dirents.length === 0) {\n break\n }\n await focusIndex(state, state.dirents.length - 1)\n break\n case 0:\n break\n default:\n await focusIndex(state, state.focusedIndex - 1)\n break\n }\n}\n\nexport const focusFirst = async (state) => {\n if (state.dirents.length === 0 || state.focusedIndex === 0) {\n return\n }\n await focusIndex(state, 0)\n}\n\nexport const focusLast = async (state) => {\n if (\n state.dirents.length === 0 ||\n state.focusedIndex === state.dirents.length - 1\n ) {\n return\n }\n await focusIndex(state, state.dirents.length - 1)\n}\n\nexport const scrollUp = () => {}\n\nexport const scrollDown = () => {}\n// export const handleBlur=()=>{}\n\nexport const handleArrowRight = async (state) => {\n if (state.focusedIndex === -1) {\n return\n }\n const dirent = state.dirents[state.focusedIndex]\n switch (dirent.type) {\n case 'file':\n break\n case 'directory':\n await handleClickDirectory(state, dirent, state.focusedIndex)\n break\n case 'directory-expanded':\n if (state.focusedIndex === state.dirents.length - 1) {\n break\n }\n const nextDirent = state.dirents[state.focusedIndex + 1]\n if (nextDirent.depth === dirent.depth + 1) {\n await focusIndex(state, state.focusedIndex + 1)\n }\n break\n default:\n break\n }\n}\n\nconst focusParentFolder = async (state) => {\n const parentStartIndex = getParentStartIndex(\n state.dirents,\n state.focusedIndex\n )\n if (parentStartIndex === -1) {\n return\n }\n await focusIndex(state, parentStartIndex)\n}\n\nexport const handleArrowLeft = async (state) => {\n if (state.focusedIndex === -1) {\n return\n }\n const dirent = state.dirents[state.focusedIndex]\n switch (dirent.type) {\n case 'directory':\n case 'file':\n await focusParentFolder(state)\n break\n case 'directory-expanded':\n await handleClickDirectoryExpanded(state, dirent, state.focusedIndex)\n break\n default:\n // TODO handle expanding directory and cancel file system call to read child dirents\n break\n }\n}\n\nexport const handleUpload = async (state, dirents) => {\n for (const dirent of dirents) {\n // TODO switch\n // TODO symlink might not be possible to be copied\n // TODO create folder if type is 2\n if (dirent.type === /* File */ 1) {\n // TODO reading text might be inefficient for binary files\n // but not sure how else to send them via jsonrpc\n const content = await dirent.file.text()\n const absolutePath = [state.root, dirent.file.name].join(\n state.pathSeparator\n )\n await FileSystem.writeFile(absolutePath, content)\n }\n }\n}\n\nconst cancelRequest = (state) => {}\n\nexport const dispose = (state) => {\n if (!state.pendingRequests) {\n return\n }\n for (const request of state.pendingRequests) {\n cancelRequest(request)\n }\n state.pendingRequests = []\n // if (state.lastFocusedWidget === context) {\n // state.lastFocusedWidget = undefined\n // }\n}\n\nconst IMAGE_EXTENSIONS = new Set([\n '.png',\n '.jpeg',\n '.jpg',\n '.gif',\n '.svg',\n '.ico',\n])\n\nconst getFileExtension = (file) => {\n return file.slice(file.lastIndexOf('.'))\n}\n\nconst isImage = (dirent) => {\n // TODO explorer state must be updated when changing folder\n // This is just a workaround\n if (!dirent) {\n return false\n }\n const fileExtension = getFileExtension(dirent.path)\n return IMAGE_EXTENSIONS.has(fileExtension)\n}\n\nexport const handleMouseEnter = async (state, index) => {\n const dirent = state.dirents[index]\n if (!isImage(dirent)) {\n // TODO preload content maybe when it is a long hover\n return\n }\n const uri = `${state.root}${dirent.path}`\n const top = state.top + index * ITEM_HEIGHT\n const right = state.left\n await Command.execute(\n /* ImagePreview.show */ 9081,\n /* uri */ uri,\n /* top */ top,\n /* right */ right\n )\n}\n\n// TODO what happens when mouse leave and anther mouse enter event occur?\n// should update preview instead of closing and reopening\n\nexport const handleMouseLeave = async () => {\n // await Command.execute(/* ImagePreview.hide */ 9082)\n}\n\n// TODO on windows this would be different\nconst RE_PATH = /^\\/[a-z]+/\n\nconst isProbablyPath = (line) => {\n return RE_PATH.test(line)\n}\n\nconst getBaseName = (path, pathSeparator) => {\n return path.slice(path.lastIndexOf(pathSeparator) + 1)\n}\n\nexport const handleCopy = async (state) => {\n // TODO handle multiple files\n // TODO if not file is selected, what happens?\n const dirent = getFocusedDirent(state)\n if (!dirent) {\n console.info('[ViewletExplorer/handleCopy] no dirent selected')\n return\n }\n const absolutePath = dirent.path\n // TODO handle copy error gracefully\n const files = [absolutePath]\n await Command.execute(\n /* ClipBoard.writeNativeFiles */ 243,\n /* type */ 'copy',\n /* files */ files\n )\n}\n\nexport const handlePaste = async (state) => {\n const nativeFiles = await Command.execute(/* ClipBoard.readNativeFiles */ 244)\n if (nativeFiles.type === 'none') {\n console.info('[ViewletExplorer/handlePaste] no paths detected')\n return\n }\n console.log({ nativeFiles })\n // TODO detect cut/paste event, not sure if that is possible\n // TODO check that pasted folder is not a parent folder of opened folder\n // TODO support pasting multiple paths\n // TODO what happens when pasting multiple paths, but some of them error?\n // how many error messages should be shown? Should the operation be undone?\n // TODO what if it is a large folder and takes a long time to copy? Should show progress\n // TODO what if there is a permission error? Probably should show a modal to ask for permission\n // TODO if error is EEXISTS, just rename the copy (e.g. file-copy-1.txt, file-copy-2.txt)\n // TODO actual target should be selected folder\n // TODO but what if a file is currently selected? Then maybe the parent folder\n // TODO but will it work if the folder is a symlink?\n // TODO handle error gracefully when copy fails\n if (nativeFiles.type === 'copy') {\n for (const source of nativeFiles.files) {\n const target = `${state.root}${state.pathSeparator}${getBaseName(\n source,\n state.pathSeparator\n )}`\n await FileSystem.copy(source, target)\n }\n // await refresh(state)\n return\n }\n if (nativeFiles.type === 'cut') {\n for (const source of nativeFiles.files) {\n const target = `${state.root}/${getBaseName(source)}`\n await FileSystem.rename(source, target)\n }\n // await refresh(state)\n }\n // await refresh(state)\n}\n\nexport const resize = (state, dimensions) => {\n const maxLineY = state.minLineY + Math.round(dimensions.height / ITEM_HEIGHT)\n const newState = {\n ...state,\n ...dimensions,\n maxLineY,\n }\n const visibleDirents = getVisible(newState)\n const commands = [\n [\n /* Viewlet.send */ 3024,\n /* id */ 'Explorer',\n /* method */ 'updateDirents',\n /* visibleDirents */ visibleDirents,\n ],\n ]\n return {\n newState: {\n ...state,\n ...dimensions,\n maxLineY,\n },\n commands,\n }\n}\n\nexport const expandAll = async (state) => {\n console.log('EXPAND ALL')\n const { dirents, focusedIndex } = state\n if (focusedIndex === -1) {\n return\n }\n const dirent = dirents[focusedIndex]\n const depth = dirent.depth\n for (const dirent of dirents) {\n if (dirent.depth === depth && dirent.type === 'directory') {\n // TODO expand\n dirent.type = 'directory-expanding'\n // TODO handle error\n const childDirents = await getChildDirents(state, dirent)\n const newIndex = dirents.indexOf(dirent)\n if (newIndex === -1) {\n continue\n }\n // console.log(state.dirents[index] === dirent)\n dirents.splice(newIndex + 1, 0, ...childDirents)\n dirent.type = 'directory-expanded'\n // await expand(state, dirent.index)\n }\n }\n console.log({ dirents: [...dirents] })\n await scheduleDirents(state)\n}\n\nconst isTopLevel = (dirent) => {\n return dirent.depth === 1\n}\n\nconst toCollapsedDirent = (dirent) => {\n if (dirent.type === 'directory-expanded') {\n return {\n ...dirent,\n type: 'directory',\n }\n }\n return dirent\n}\n\nexport const collapseAll = async (state) => {\n const newDirents = state.dirents.filter(isTopLevel).map(toCollapsedDirent)\n state.dirents = newDirents\n await scheduleDirents(state)\n}\n","import * as Command from '../Command/Command.js'\nimport * as ViewletExplorer from './ViewletExplorer.js'\nimport * as Viewlet from './Viewlet.js'\n\nexport const __initialize__ = () => {\n Command.register(142, Viewlet.wrapViewletCommand('Explorer', ViewletExplorer.focusNext))\n Command.register(143, Viewlet.wrapViewletCommand('Explorer', ViewletExplorer.focusPrevious))\n Command.register(144, Viewlet.wrapViewletCommand('Explorer', ViewletExplorer.scrollUp))\n Command.register(145, Viewlet.wrapViewletCommand('Explorer', ViewletExplorer.scrollDown))\n Command.register(146, Viewlet.wrapViewletCommand('Explorer', ViewletExplorer.handleClickCurrent))\n Command.register(147, Viewlet.wrapViewletCommand('Explorer', ViewletExplorer.newFile))\n Command.register(148, Viewlet.wrapViewletCommand('Explorer', ViewletExplorer.openContainingFolder))\n Command.register(149, Viewlet.wrapViewletCommand('Explorer', ViewletExplorer.copyPath))\n Command.register(150, Viewlet.wrapViewletCommand('Explorer', ViewletExplorer.copyRelativePath))\n Command.register(151, Viewlet.wrapViewletCommand('Explorer', ViewletExplorer.removeDirent))\n Command.register(152, Viewlet.wrapViewletCommand('Explorer', ViewletExplorer.newFolder))\n Command.register(153, Viewlet.wrapViewletCommand('Explorer', ViewletExplorer.getFocusedDirent))\n Command.register(154, Viewlet.wrapViewletCommand('Explorer', ViewletExplorer.handleArrowRight))\n Command.register(155, Viewlet.wrapViewletCommand('Explorer', ViewletExplorer.handleArrowLeft))\n Command.register(156, Viewlet.wrapViewletCommand('Explorer', ViewletExplorer.focusFirst))\n Command.register(157, Viewlet.wrapViewletCommand('Explorer', ViewletExplorer.focusLast))\n Command.register(158, Viewlet.wrapViewletCommand('Explorer', ViewletExplorer.renameDirent))\n Command.register(159, Viewlet.wrapViewletCommand('Explorer', ViewletExplorer.handleMouseEnter))\n Command.register(160, Viewlet.wrapViewletCommand('Explorer', ViewletExplorer.handleMouseLeave))\n Command.register(161, Viewlet.wrapViewletCommand('Explorer', ViewletExplorer.handleClick))\n Command.register(162, Viewlet.wrapViewletCommand('Explorer', ViewletExplorer.handleContextMenu))\n Command.register(163, Viewlet.wrapViewletCommand('Explorer', ViewletExplorer.handleWheel))\n Command.register(164, Viewlet.wrapViewletCommand('Explorer', ViewletExplorer.setDeltaY))\n Command.register(165, Viewlet.wrapViewletCommand('Explorer', ViewletExplorer.handlePaste))\n Command.register(166, Viewlet.wrapViewletCommand('Explorer', ViewletExplorer.handleCopy))\n Command.register(167, Viewlet.wrapViewletCommand('Explorer', ViewletExplorer.cancelRename))\n Command.register(168, Viewlet.wrapViewletCommand('Explorer', ViewletExplorer.acceptRename))\n Command.register(169, Viewlet.wrapViewletCommand('Explorer', ViewletExplorer.cancelNewFile))\n Command.register(170, Viewlet.wrapViewletCommand('Explorer', ViewletExplorer.acceptNewFile))\n Command.register(171, Viewlet.wrapViewletCommand('Explorer', ViewletExplorer.expandAll))\n Command.register(172, Viewlet.wrapViewletCommand('Explorer', ViewletExplorer.collapseAll))\n}\n","import * as Platform from '../Platform/Platform.js'\nimport * as SharedProcess from '../SharedProcess/SharedProcess.js'\nimport * as Workspace from '../Workspace/Workspace.js'\n\nexport const state = {\n count: 0,\n decorations: [],\n listeners: [],\n}\n\nexport const onDidChangeCount = (listener) => {\n state.listeners.push(listener)\n}\n\nexport const setCount = (count) => {\n state.count = count\n for (const listener of state.listeners) {\n listener()\n }\n}\n\nexport const updateDecorations = () => {\n for (const listener of state.listeners) {\n listener()\n }\n}\n\nexport const getBadgeCount = async () => {\n if (Platform.getPlatform() === 'web') {\n return 0\n }\n const workspacePath = Workspace.getWorkspacePath()\n const count = await SharedProcess.invoke(\n /* ExtensionHost.getSourceControlBadgeCount */ 'ExtensionHostSourceControl.getSourceControlBadgeCount',\n /* cwd */ workspacePath\n )\n return count\n}\n","import * as Command from '../Command/Command.js'\nimport * as SourceControl from './SourceControl.js'\n\nexport const __initialize__ = () => {\n Command.register(1300, SourceControl.updateDecorations)\n}\n","import * as SharedProcess from '../SharedProcess/SharedProcess.js'\nimport * as RendererProcess from '../RendererProcess/RendererProcess.js'\nimport * as Workspace from '../Workspace/Workspace.js'\nimport * as Id from '../Id/Id.js'\n\nexport const name = 'Terminal'\n\nexport const create = () => {\n return {\n disposed: false,\n id: 0,\n }\n}\n\nexport const loadContent = async (state) => {\n // TODO this should be async and open a pty\n return {\n ...state,\n id: Id.create(),\n }\n}\n\nexport const contentLoaded = (state) => {\n // Terminal.refresh(state)\n}\n\nexport const contentLoadedEffects = async (state) => {\n // TODO this should be invoke\n SharedProcess.send(\n /* createTerminal */ 'Terminal.create',\n /* id */ state.id,\n /* cwd */ Workspace.state.workspacePath\n )\n}\n\nexport const handleData = (state, data) => {\n // Terminal.handleData(state, data)\n const parsedData = new Uint8Array(data.data)\n RendererProcess.send([\n /* ViewletTerminal.write */ 9922,\n /* data */ parsedData,\n ])\n}\n\nexport const write = async (state, input) => {\n await SharedProcess.invoke(\n /* Terminal.write */ 'Terminal.write',\n /* id */ state.id,\n /* input */ input\n )\n}\n\nexport const dispose = (state) => {\n return {\n ...state,\n disposed: true,\n }\n}\n\nexport const resize = async (state, width, height) => {\n // TODO columnWidth etc. should be in renderer process\n const columnWidth = 8.43332\n const rowHeight = 14\n // const columns = Math.round(width / columnWidth)\n const columns = 7\n const rows = Math.round(height / rowHeight)\n await SharedProcess.invoke(\n /* Terminal.resize */ 'Terminal.resize',\n /* id */ state.id,\n /* columns */ columns,\n /* rows */ rows\n )\n\n // Terminal.resize(state, width, height)\n}\n\nexport const clear = (state) => {\n RendererProcess.send([\n /* ViewletTerminal.write */ 9922,\n /* data */ new TextEncoder().encode('TODO clear terminal'),\n ])\n}\n","import * as Command from '../Command/Command.js'\nimport * as ViewletTerminal from './ViewletTerminal.js'\nimport * as Viewlet from './Viewlet.js'\n\nexport const __initialize__ = () => {\n Command.register(4870, Viewlet.wrapViewletCommand('Terminal', ViewletTerminal.write))\n Command.register(4871 , Viewlet.wrapViewletCommand('Terminal', ViewletTerminal.clear))\n}\n","export const open = () => {\n console.log('TODO open color picker')\n}\n\nexport const close = () => {\n console.log('TODO close color picker')\n}\n","import * as Command from '../Command/Command.js'\nimport * as ColorPicker from './ColorPicker.js'\n\nexport const __initialize__ = () => {\n Command.register(1400, ColorPicker.open)\n Command.register(1401, ColorPicker.close)\n\n}\n","import * as SharedProcess from '../SharedProcess/SharedProcess.js'\n\nexport const install = (id) => {\n return SharedProcess.invoke(\n /* ExtensionManagement.install */ 'ExtensionManagement.install',\n /* id */ id\n )\n}\n\nexport const uninstall = (id) => {\n return SharedProcess.invoke(\n /* ExtensionManagement.uninstall */ 'ExtensionManagement.uninstall',\n /* id */ id\n )\n}\n\nexport const disable = async (id) => {\n return SharedProcess.invoke(\n /* ExtensionManagement.disable */ 'ExtensionManagement.disable',\n /* id */ id\n )\n}\n\nexport const enable = async (id) => {\n return SharedProcess.invoke(\n /* ExtensionManagement.enable */ 'ExtensionManagement.enable',\n /* id */ id\n )\n}\n\nexport const getAllExtensions = async () => {\n return SharedProcess.invoke(\n /* ExtensionManagement.getAllExtensions */ 'ExtensionManagement.getAllExtensions'\n )\n}\n\nconst isFulfilled = (result) => {\n return result.status === 'fulfilled'\n}\n\nconst getValue = (result) => {\n return result.value\n}\n\nexport const getWorkingExtensions = async () => {\n const allExtensions = await getAllExtensions()\n const fullFilledExtensions = allExtensions.filter(isFulfilled).map(getValue)\n}\n","import * as Command from '../Command/Command.js'\nimport * as Platform from '../Platform/Platform.js'\n\nexport const getMarketplaceExtensions = async (props) => {\n const marketplaceUrl = await Platform.getMarketPlaceUrl()\n const options = {\n searchParams: props,\n }\n return Command.execute(\n /* Ajax.getJson */ 270,\n /* url */ `${marketplaceUrl}/api/extensions/search`,\n /* options */ options\n )\n}\n","import * as Command from '../Command/Command.js'\nimport * as ErrorHandling from '../ErrorHandling/ErrorHandling.js'\nimport * as ExtensionManagement from '../ExtensionManagement/ExtensionManagement.js' // TODO use Command.execute instead\nimport * as ExtensionsMarketplace from '../ExtensionMarketplace/ExtensionMarketplace.js'\nimport * as RendererProcess from '../RendererProcess/RendererProcess.js'\nimport * as Platform from '../Platform/Platform.js'\nimport * as Assert from '../Assert/Assert.js'\n\nexport const ITEM_HEIGHT = 62\n\nconst MINIMUM_SLIDER_SIZE = 20\n\nexport const HEADER_HEIGHT = 35.94 // TODO improve this\n\nconst SUGGESTIONS = [\n '@builtin',\n '@disabled',\n '@enabled',\n '@installed',\n '@outdated',\n '@sort:installs',\n '@id:',\n '@category',\n]\n\nexport const name = 'Extensions'\n\n// then state can be recycled by Viewlet when there is only a single ViewletExtensions instance\n\nexport const create = (id, uri, left, top, width, height) => {\n return {\n extensions: [],\n filteredExtensions: [],\n searchValue: '',\n parsedValue: {\n isLocal: true, // TODO flatten this\n query: '',\n },\n suggestionState: /* Closed */ 0,\n disposed: false,\n focusedIndex: -1,\n deltaY: 0,\n minLineY: 0,\n maxLineY: 0,\n width,\n height,\n negativeMargin: 0,\n scrollBarHeight: 0,\n handleOffset: 0,\n top,\n left,\n finalDeltaY: 2728,\n }\n}\n\nconst getVisible = (state) => {\n return state.filteredExtensions.slice(state.minLineY, state.maxLineY)\n}\n\nconst getListHeight = (state) => {\n return state.height - HEADER_HEIGHT\n}\n\nexport const loadContent = async (state) => {\n // TODO just get local extensions on demand (not when query string is already different)\n\n // TODO get installed extensions from extension host\n // TODO just get local extensions on demand (not when query string is already different)\n const extensions = await ExtensionManagement.getAllExtensions()\n const viewObjects = filterExtensions(\n extensions.map(toInstalledViewObject),\n state.parsedValue\n )\n\n const listHeight = getListHeight(state)\n const contentHeight = viewObjects.length * ITEM_HEIGHT\n const scrollBarHeight = getScrollBarHeight(state.height, contentHeight)\n\n console.log({ scrollBarHeight })\n return {\n ...state,\n extensions,\n filteredExtensions: viewObjects,\n maxLineY: Math.round(listHeight / ITEM_HEIGHT),\n scrollBarHeight,\n }\n}\n\nexport const contentLoaded = async (state) => {\n // if (state.searchValue === '') {\n // const visible = getVisible(state)\n // await RendererProcess.invoke(\n // /* Viewlet.invoke */ 3024,\n // /* id */ 'Extensions',\n // /* method */ 'setExtensions',\n // /* viewObjects */ visible,\n // /* negativeMargin */ -state.deltaY\n // )\n // return\n // }\n // await RendererProcess.invoke(\n // /* Viewlet.invoke */ 3024,\n // /* id */ 'Extensions',\n // /* method */ 'setExtensions',\n // /* viewObjects */ [],\n // /* negativeMargin */ 0\n // )\n}\n\nconst RE_PUBLISHER = /^[a-z\\d\\-]+/\n\n// TODO handle case when extension is of type number|array|null|string\nconst getPublisher = (extension) => {\n if (!extension || !extension.id) {\n return 'n/a'\n }\n // TODO handle case when id is not of type string -> should not crash application\n const match = extension.id.match(RE_PUBLISHER)\n if (!match) {\n return 'n/a'\n }\n return match[0]\n}\n\n// TODO all icon related logic should be here, not in renderer process\nconst getIcon = (extension) => {\n if (!extension || !extension.path || !extension.icon) {\n return ''\n }\n if (Platform.getPlatform() === 'remote') {\n return `/remote/${extension.path}/${extension.icon}` // TODO support windows paths\n }\n if (Platform.getPlatform() === 'electron') {\n return `/remote/${extension.path}/${extension.icon}` // TODO support windows paths\n }\n return ''\n}\n\nconst getName = (extension) => {\n if (extension && extension.name) {\n return extension.name\n }\n if (extension && extension.id) {\n return extension.id\n }\n return 'n/a'\n}\n\nconst getVersion = (extension) => {\n if (!extension || !extension.version) {\n return 'n/a'\n }\n return extension.version\n}\n\nconst getDescription = (extension) => {\n if (!extension || !extension.description) {\n return 'n/a'\n }\n return extension.description\n}\n\nconst getId = (extension) => {\n if (!extension || !extension.id) {\n return 'n/a'\n }\n return extension.id\n}\n\nconst toInstalledViewObject = (extension) => {\n return {\n name: getName(extension),\n publisher: getPublisher(extension),\n version: getVersion(extension),\n description: getDescription(extension),\n // TODO type field: builtin|marketplace|external\n // TODO should be status\n state: 'installed',\n id: getId(extension),\n icon: getIcon(extension),\n }\n}\n\nconst toDisabledViewObject = (extension) => {\n return {\n name: extension.name,\n publisher: extension.authorId || extension.publisher,\n version: extension.version,\n // TODO type field: builtin|marketplace|external\n // TODO should be status\n state: 'disabled',\n id: extension.id,\n }\n}\n\nexport const dispose = () => {}\n\nconst RE_PARAM = /@\\w+/g\n\n// TODO test sorting and filtering\nconst parseValue = (value) => {\n const parameters = Object.create(null)\n // TODO this is not very functional code (assignment)\n const replaced = value.replace(RE_PARAM, (match, by, order) => {\n if (match.startsWith('@installed')) {\n parameters.installed = true\n }\n if (match.startsWith('@enabled')) {\n parameters.enabled = true\n }\n if (match.startsWith('@disabled')) {\n parameters.disabled = true\n }\n if (match.startsWith('@builtin')) {\n parameters.builtin = true\n }\n if (match.startsWith('@sort')) {\n // TODO\n parameters.sort = 'installs'\n }\n if (match.startsWith('@id')) {\n // TODO\n parameters.id = 'abc'\n }\n if (match.startsWith('@outdated')) {\n parameters.outdated = true\n }\n return ''\n })\n const isLocal =\n parameters.enabled ||\n parameters.builtin ||\n parameters.disabled ||\n parameters.outdated\n return {\n query: replaced,\n isLocal,\n params: parameters,\n }\n}\n\nconst matchesParsedValue = (extension, parsedValue) => {\n // TODO handle error when extension.name is not of type string\n if (extension && extension.name) {\n return extension.name.includes(parsedValue.query)\n }\n // TODO handle error when extension id is not of type string\n if (extension && extension.id) {\n return extension.id.includes(parsedValue.query)\n }\n return false\n}\n\nconst filterExtensions = (extensions, parsedValue) => {\n const filteredExtensions = []\n for (const extension of extensions) {\n if (matchesParsedValue(extension, parsedValue)) {\n filteredExtensions.push(extension)\n }\n }\n // TODO make this more efficient / more functional\n for (let i = 0; i < filteredExtensions.length; i++) {\n filteredExtensions[i].setSize = filteredExtensions.length\n filteredExtensions[i].posInSet = i + 1\n filteredExtensions[i].top = i * ITEM_HEIGHT\n }\n return filteredExtensions\n}\n\nconst getExtensionsLocal = (parsedValue) => {\n // TODO get local extensions from shared process\n // return state.localExtensions\n return []\n}\n\nconst getExtensionsMarketplace = (parsedValue) => {\n return ExtensionsMarketplace.getMarketplaceExtensions({\n q: parsedValue.query,\n ...parsedValue.params,\n })\n}\n\nconst getExtensions = (parsedValue) => {\n if (parsedValue.isLocal) {\n return getExtensionsLocal(parsedValue)\n }\n return getExtensionsMarketplace(parsedValue)\n}\n\nconst toUiExtension = (extension, index) => {\n return {\n name: extension.name,\n authorId: extension.authorId,\n version: extension.version,\n id: extension.id,\n }\n}\n\nconst toDisplayExtensions = (extensions) => {\n const toDisplayExtension = (extension, index) => {\n return {\n name: extension.name,\n posInSet: index + 1,\n setSize: extensions.length,\n }\n }\n return extensions.map(toDisplayExtension)\n}\n\n// TODO debounce\nexport const handleInput = async (state, value) => {\n try {\n // TODO make this functional somehow\n state.searchValue = value\n // TODO cancel ongoing requests\n // TODO handle errors\n const parsedValue = parseValue(value)\n // TODO let not good here, error handling should be automatic,\n // exceptions handled by supervisor\n const extensions = await getExtensions(parsedValue)\n\n // TODO race condition: viewlet might already be disposed after this\n\n if (state.searchValue !== value) {\n return state\n }\n const filteredExtensions = filterExtensions(extensions, parsedValue)\n const displayExtensions = toDisplayExtensions(filteredExtensions)\n return {\n ...state,\n extensions,\n filteredExtensions,\n minLineY: 0,\n deltaY: 0,\n }\n\n // TODO handle out of order responses (a bit complicated)\n // for now just assume everything comes back in order\n } catch (error) {\n ErrorHandling.handleError(error)\n // console.error(error)\n // TODO show error in viewlet\n await RendererProcess.invoke(\n /* viewletSend */ 3024,\n /* id */ 'Extensions',\n /* method */ 'setError',\n /* error */ `Failed to load extensions from marketplace: ${error}`\n )\n }\n}\n\nexport const focusIndex = (state, index) => {\n if (index === -1) {\n return {\n ...state,\n focusedIndex: -1,\n }\n }\n const listHeight = getListHeight(state)\n if (index < state.minLineY + 1) {\n // scroll up\n const minLineY = index\n const maxLineY = minLineY + Math.ceil(listHeight / ITEM_HEIGHT)\n const negativeMargin = -minLineY * ITEM_HEIGHT\n return {\n ...state,\n focusedIndex: index,\n minLineY,\n maxLineY,\n negativeMargin,\n }\n }\n if (index >= state.maxLineY - 1) {\n // scroll down\n const maxLineY = index + 1\n const minLineY = maxLineY - Math.ceil(listHeight / ITEM_HEIGHT)\n const negativeMargin =\n -minLineY * ITEM_HEIGHT + (listHeight % ITEM_HEIGHT) - ITEM_HEIGHT\n return {\n ...state,\n focusedIndex: index,\n minLineY,\n maxLineY,\n negativeMargin,\n }\n }\n return {\n ...state,\n focusedIndex: index,\n }\n}\n\n// TODO lazyload this\nexport const handleClick = (state, index) => {\n return focusIndex(state, index)\n}\n\nexport const focusNext = (state) => {\n if (state.focusedIndex === state.filteredExtensions.length - 1) {\n return state\n }\n return focusIndex(state, state.focusedIndex + 1)\n}\n\nexport const focusNextPage = (state) => {\n if (state.focusedIndex === state.filteredExtensions.length - 1) {\n return state\n }\n const indexNextPage = Math.min(\n state.maxLineY + (state.maxLineY - state.minLineY) - 2,\n state.filteredExtensions.length - 1\n )\n return focusIndex(state, indexNextPage)\n}\n\nexport const focusPrevious = (state) => {\n if (state.focusedIndex === 0 || state.focusedIndex === -1) {\n return state\n }\n return focusIndex(state, state.focusedIndex - 1)\n}\n\nexport const focusPreviousPage = (state) => {\n if (state.focusedIndex === 0 || state.focusedIndex === -1) {\n return state\n }\n\n const indexPreviousPage = Math.max(\n state.minLineY - (state.maxLineY - state.minLineY) + 1,\n 0\n )\n return focusIndex(state, indexPreviousPage)\n}\n\nexport const focusFirst = (state) => {\n if (state.filteredExtensions.length === 0) {\n return state\n }\n return focusIndex(state, 0)\n}\n\nexport const focusLast = (state) => {\n if (state.filteredExtensions.length === 0) {\n return state\n }\n return focusIndex(state, state.filteredExtensions.length - 1)\n}\n\n// TODO show error / warning when installment fails / times out\nexport const handleInstall = async (state, id) => {\n await RendererProcess.invoke(\n /* viewletSend */ 3024,\n /* id */ 'Extensions',\n /* method */ 'setExtensionState',\n /* id */ id,\n /* state */ 'installing'\n )\n try {\n await ExtensionManagement.install(/* id */ id)\n } catch (error) {\n // TODO have multi send command\n await RendererProcess.invoke(\n /* viewletSend */ 3024,\n /* id */ 'Extensions',\n /* method */ 'setExtensionState',\n /* id */ id,\n /* state */ 'uninstalled'\n )\n // TODO use command.execute\n ErrorHandling.handleError(error)\n return\n }\n await RendererProcess.invoke(\n /* viewletSend */ 3024,\n /* id */ 'Extensions',\n /* method */ 'setExtensionState',\n /* id */ id,\n /* state */ 'installed'\n )\n}\n\n// TODO lazyload this\nexport const handleUninstall = async (state, id) => {\n await RendererProcess.invoke(\n /* viewletSend */ 3024,\n /* id */ 'Extensions',\n /* method */ 'setExtensionState',\n /* id */ id,\n /* state */ 'uninstalling'\n )\n try {\n await ExtensionManagement.uninstall(id)\n } catch (error) {\n await RendererProcess.invoke(\n /* viewletSend */ 3024,\n /* id */ 'Extensions',\n /* method */ 'setExtensionState',\n /* id */ id,\n /* state */ 'installed'\n )\n ErrorHandling.handleError(error)\n return\n }\n await RendererProcess.invoke(\n /* viewletSend */ 3024,\n /* id */ 'Extensions',\n /* method */ 'setExtensionState',\n /* id */ id,\n /* state */ 'uninstalled'\n )\n}\n\n// TODO lazyload this\nexport const handleEnable = async (state, id) => {\n try {\n await ExtensionManagement.enable(id)\n } catch (error) {\n await RendererProcess.invoke(\n /* viewletSend */ 3024,\n /* id */ 'Extensions',\n /* method */ 'setExtensionState',\n /* id */ id,\n /* state */ 'disabled'\n )\n ErrorHandling.handleError(error)\n return\n }\n await RendererProcess.invoke(\n /* viewletSend */ 3024,\n /* id */ 'Extensions',\n /* method */ 'setExtensionState',\n /* id */ id,\n /* state */ 'enabled'\n )\n}\n\n// TODO lazyload this\nexport const handleDisable = async (state, id) => {\n try {\n await ExtensionManagement.disable(id)\n } catch (error) {\n console.error(error)\n ErrorHandling.handleError(error)\n return\n }\n await RendererProcess.invoke(\n /* viewletSend */ 3024,\n /* id */ 'Extensions',\n /* method */ 'setExtensionState',\n /* id */ id,\n /* state */ 'disabled'\n )\n}\n\n// TODO pass index instead\nexport const handleContextMenu = async (state, x, y, extensionId) => {\n await Command.execute(\n /* ContextMenu.show */ 951,\n /* x */ x,\n /* y */ y,\n /* id */ 'manageExtension'\n )\n}\n\nexport const openSuggest = async (state) => {\n const filteredSuggestions = SUGGESTIONS\n state.suggestionState = /* Open */ 1\n await RendererProcess.invoke(\n /* viewletSend */ 3024,\n /* id */ 'Extensions',\n /* method */ 'openSuggest',\n /* suggestions */ filteredSuggestions\n )\n}\n\nexport const closeSuggest = async (state) => {\n state.suggestionState = /* Closed */ 0\n await RendererProcess.invoke(\n /* viewletSend */ 3024,\n /* id */ 'Extensions',\n /* method */ 'closeSuggest'\n )\n}\n\nexport const toggleSuggest = async (state) => {\n switch (state.suggestionState) {\n case /* Closed */ 0:\n await openSuggest(state)\n break\n case /* Open */ 1:\n await closeSuggest(state)\n break\n default:\n break\n }\n}\n\nexport const resize = (state, dimensions) => {\n // TODO should just return new state, render function can take old state and new state and return render commands\n const listHeight = getListHeight(dimensions)\n const maxLineY = state.minLineY + Math.ceil(listHeight / ITEM_HEIGHT)\n return {\n newState: {\n ...state,\n ...dimensions,\n maxLineY,\n },\n commands: [],\n }\n}\n\nexport const setDeltaY = (state, deltaY) => {\n console.log({ deltaY })\n Assert.object(state)\n Assert.number(deltaY)\n const listHeight = getListHeight(state)\n if (deltaY < 0) {\n deltaY = 0\n } else if (\n deltaY >\n state.filteredExtensions.length * ITEM_HEIGHT - listHeight\n ) {\n deltaY = Math.max(\n state.filteredExtensions.length * ITEM_HEIGHT - listHeight,\n 0\n )\n }\n if (state.deltaY === deltaY) {\n return state\n }\n // TODO when it only moves by one px, extensions don't need to be rerendered, only negative margin\n const minLineY = Math.floor(deltaY / ITEM_HEIGHT)\n const maxLineY = minLineY + Math.round(listHeight / ITEM_HEIGHT)\n const negativeMargin = -Math.round(deltaY)\n return {\n ...state,\n deltaY,\n minLineY,\n maxLineY,\n negativeMargin,\n }\n // await scheduleExtensions(state)\n}\n\nexport const handleWheel = (state, deltaY) => {\n return setDeltaY(state, state.deltaY + deltaY)\n}\n\nconst getScrollBarHeight = (editorHeight, contentHeight) => {\n if (editorHeight > contentHeight) {\n return 0\n }\n return Math.max(\n Math.round(editorHeight ** 2 / contentHeight),\n MINIMUM_SLIDER_SIZE\n )\n}\n\nconst getNewPercent = (state, relativeY) => {\n if (relativeY <= state.height - state.scrollBarHeight / 2) {\n // clicked in middle\n return relativeY / (state.height - state.scrollBarHeight)\n }\n // clicked at bottom\n return 1\n}\n\nexport const handleScrollBarMove = (state, y) => {\n const relativeY = y - state.top - HEADER_HEIGHT - state.handleOffset\n console.log('handle offset', state.handleOffset)\n const newPercent = getNewPercent(state, relativeY)\n const newDeltaY = newPercent * state.finalDeltaY\n console.log({ relativeY, newPercent, newDeltaY })\n return setDeltaY(state, newDeltaY)\n}\n\nconst getNewDeltaPercent = (state, relativeY) => {\n if (relativeY <= state.scrollBarHeight / 2) {\n // clicked at top\n return 0\n }\n if (relativeY <= state.height - state.scrollBarHeight / 2) {\n // clicked in middle\n return (\n (relativeY - state.scrollBarHeight / 2) /\n (state.height - state.scrollBarHeight)\n )\n }\n // clicked at bottom\n return 1\n}\n\nexport const handleScrollBarClick = (state, y) => {\n const relativeY = y - state.top - HEADER_HEIGHT\n const newPercent = getNewDeltaPercent(state, relativeY)\n console.log({\n relativeY,\n top: state.top,\n headerHeight: HEADER_HEIGHT,\n newPercent,\n })\n const newDeltaY = newPercent * state.finalDeltaY\n\n return {\n ...setDeltaY(state, newDeltaY),\n handleOffset: state.scrollBarHeight / 2,\n }\n}\n\nexport const hasFunctionalRender = true\n\nexport const render = (oldState, newState) => {\n const changes = []\n if (oldState === newState) {\n return changes\n }\n if (\n oldState.filteredExtensions !== newState.filteredExtensions ||\n oldState.minLineY !== newState.minLineY ||\n oldState.maxLineY !== newState.maxLineY\n ) {\n const visibleExtensions = getVisible(newState)\n changes.push([\n /* Viewlet.send */ 3024,\n /* id */ 'Extensions',\n /* method */ 'setExtensions',\n /* visibleExtensions */ visibleExtensions,\n ])\n }\n if (\n oldState.filteredExtensions.length !== newState.filteredExtensions.length\n ) {\n const contentHeight = newState.filteredExtensions.length * ITEM_HEIGHT\n changes.push([\n /* Viewlet.send */ 3024,\n /* id */ 'Extensions',\n /* method */ 'setContentHeight',\n /* contentHeight */ contentHeight,\n ])\n }\n\n if (oldState.negativeMargin !== newState.negativeMargin) {\n changes.push([\n /* Viewlet.send */ 3024,\n /* id */ 'Extensions',\n /* method */ 'setNegativeMargin',\n /* negativeMargin */ newState.negativeMargin,\n ])\n }\n\n if (oldState.focusedIndex !== newState.focusedIndex) {\n changes.push([\n /* Viewlet.send */ 3024,\n /* id */ 'Extensions',\n /* method */ 'setFocusedIndex',\n /* oldFocusedIndex */ oldState.focusedIndex - oldState.minLineY,\n /* newFocusedIndex */ newState.focusedIndex - newState.minLineY,\n ])\n }\n if (oldState.deltaY !== newState.deltaY) {\n const scrollBarY =\n (newState.deltaY / newState.finalDeltaY) *\n (newState.height - newState.scrollBarHeight)\n changes.push([\n /* Viewlet.send */ 3024,\n /* id */ 'Extensions',\n /* method */ 'setScrollBar',\n /* scrollBarY */ scrollBarY,\n /* scrollBarHeight */ newState.scrollBarHeight,\n ])\n }\n return changes\n}\n","import * as Command from '../Command/Command.js'\nimport * as ViewletExtensions from './ViewletExtensions.js'\nimport * as Viewlet from './Viewlet.js'\n\nexport const __initialize__ = () => {\n Command.register(860, Viewlet.wrapViewletCommand('Extensions', ViewletExtensions.openSuggest))\n Command.register(861, Viewlet.wrapViewletCommand('Extensions', ViewletExtensions.closeSuggest))\n Command.register(862, Viewlet.wrapViewletCommand('Extensions', ViewletExtensions.toggleSuggest))\n Command.register(863, Viewlet.wrapViewletCommand('Extensions', ViewletExtensions.handleInput))\n Command.register(864, Viewlet.wrapViewletCommand('Extensions', ViewletExtensions.handleContextMenu))\n Command.register(865, Viewlet.wrapViewletCommand('Extensions', ViewletExtensions.handleInstall))\n Command.register(866, Viewlet.wrapViewletCommand('Extensions', ViewletExtensions.handleUninstall))\n Command.register(867, Viewlet.wrapViewletCommand('Extensions', ViewletExtensions.handleClick))\n Command.register(868, Viewlet.wrapViewletCommand('Extensions', ViewletExtensions.focusIndex))\n Command.register(869, Viewlet.wrapViewletCommand('Extensions', ViewletExtensions.focusFirst))\n Command.register(870, Viewlet.wrapViewletCommand('Extensions', ViewletExtensions.focusLast))\n Command.register(871, Viewlet.wrapViewletCommand('Extensions', ViewletExtensions.focusPrevious))\n Command.register(872, Viewlet.wrapViewletCommand('Extensions', ViewletExtensions.focusNext))\n Command.register(873, Viewlet.wrapViewletCommand('Extensions', ViewletExtensions.handleWheel))\n Command.register(874, Viewlet.wrapViewletCommand('Extensions', ViewletExtensions.focusNextPage))\n Command.register(875, Viewlet.wrapViewletCommand('Extensions', ViewletExtensions.focusPreviousPage))\n Command.register(876, Viewlet.wrapViewletCommand('Extensions', ViewletExtensions.setDeltaY))\n Command.register(877, Viewlet.wrapViewletCommand('Extensions', ViewletExtensions.handleScrollBarMove))\n Command.register(878, Viewlet.wrapViewletCommand('Extensions', ViewletExtensions.handleScrollBarClick))\n}\n","import * as SharedProcess from '../SharedProcess/SharedProcess.js'\n\nexport const state = {\n async readText() {\n let text\n try {\n // @ts-ignore\n text = await navigator.clipboard.readText()\n } catch (error) {\n if (error.message === 'Read permission denied.') {\n console.warn(\n 'Failed to paste text: The Browser disallowed reading from clipboard'\n )\n } else if (\n error.message === 'navigator.clipboard.readText is not a function'\n ) {\n console.warn(\n 'Failed to paste text: The Clipboard Api is not available in Firefox'\n )\n } else {\n console.warn(error)\n }\n return\n }\n return text\n },\n async writeText(path) {\n try {\n // @ts-ignore\n await navigator.clipboard.writeText(path)\n } catch (error) {\n console.warn(error)\n }\n },\n}\n\nexport const readText = () => {\n return state.readText()\n}\n\nexport const writeText = async (path) => {\n await state.writeText(path)\n}\n\nexport const writeNativeFiles = (type, files) => {\n return SharedProcess.invoke(\n /* command */ 'ClipBoard.writeFiles',\n /* type */ type,\n /* files */ files\n )\n}\n\nexport const readNativeFiles = () => {\n return SharedProcess.invoke(/* command */ 'ClipBoard.readFiles')\n}\n","import * as Command from '../Command/Command.js'\nimport * as ClipBoard from './ClipBoard.js'\n\nexport const __initialize__ = () => {\n Command.register(240, ClipBoard.readText)\n Command.register(241, ClipBoard.writeText)\n Command.register(243, ClipBoard.writeNativeFiles)\n Command.register(244, ClipBoard.readNativeFiles)\n}\n","class HTTPError extends Error {\n constructor(response, request, options) {\n const code = response.status || response.status === 0 ? response.status : \"\";\n const title = response.statusText || \"\";\n const status = `${code} ${title}`.trim();\n const reason = status ? `status code ${status}` : \"an unknown error\";\n super(`Request failed with ${reason}`);\n this.name = \"HTTPError\";\n this.response = response;\n this.request = request;\n this.options = options;\n }\n}\nclass TimeoutError extends Error {\n constructor(request) {\n super(\"Request timed out\");\n this.name = \"TimeoutError\";\n this.request = request;\n }\n}\nconst isObject = (value) => value !== null && typeof value === \"object\";\nconst validateAndMerge = (...sources) => {\n for (const source of sources) {\n if ((!isObject(source) || Array.isArray(source)) && typeof source !== \"undefined\") {\n throw new TypeError(\"The `options` argument must be an object\");\n }\n }\n return deepMerge({}, ...sources);\n};\nconst mergeHeaders = (source1 = {}, source2 = {}) => {\n const result = new globalThis.Headers(source1);\n const isHeadersInstance = source2 instanceof globalThis.Headers;\n const source = new globalThis.Headers(source2);\n for (const [key, value] of source.entries()) {\n if (isHeadersInstance && value === \"undefined\" || value === void 0) {\n result.delete(key);\n } else {\n result.set(key, value);\n }\n }\n return result;\n};\nconst deepMerge = (...sources) => {\n let returnValue = {};\n let headers = {};\n for (const source of sources) {\n if (Array.isArray(source)) {\n if (!Array.isArray(returnValue)) {\n returnValue = [];\n }\n returnValue = [...returnValue, ...source];\n } else if (isObject(source)) {\n for (let [key, value] of Object.entries(source)) {\n if (isObject(value) && key in returnValue) {\n value = deepMerge(returnValue[key], value);\n }\n returnValue = {...returnValue, [key]: value};\n }\n if (isObject(source.headers)) {\n headers = mergeHeaders(headers, source.headers);\n returnValue.headers = headers;\n }\n }\n }\n return returnValue;\n};\nconst supportsAbortController = typeof globalThis.AbortController === \"function\";\nconst supportsStreams = typeof globalThis.ReadableStream === \"function\";\nconst supportsFormData = typeof globalThis.FormData === \"function\";\nconst requestMethods = [\"get\", \"post\", \"put\", \"patch\", \"head\", \"delete\"];\nconst responseTypes = {\n json: \"application/json\",\n text: \"text/*\",\n formData: \"multipart/form-data\",\n arrayBuffer: \"*/*\",\n blob: \"*/*\"\n};\nconst maxSafeTimeout = 2147483647;\nconst stop = Symbol(\"stop\");\nconst normalizeRequestMethod = (input) => requestMethods.includes(input) ? input.toUpperCase() : input;\nconst retryMethods = [\"get\", \"put\", \"head\", \"delete\", \"options\", \"trace\"];\nconst retryStatusCodes = [408, 413, 429, 500, 502, 503, 504];\nconst retryAfterStatusCodes = [413, 429, 503];\nconst defaultRetryOptions = {\n limit: 2,\n methods: retryMethods,\n statusCodes: retryStatusCodes,\n afterStatusCodes: retryAfterStatusCodes,\n maxRetryAfter: Number.POSITIVE_INFINITY\n};\nconst normalizeRetryOptions = (retry = {}) => {\n if (typeof retry === \"number\") {\n return {\n ...defaultRetryOptions,\n limit: retry\n };\n }\n if (retry.methods && !Array.isArray(retry.methods)) {\n throw new Error(\"retry.methods must be an array\");\n }\n if (retry.statusCodes && !Array.isArray(retry.statusCodes)) {\n throw new Error(\"retry.statusCodes must be an array\");\n }\n return {\n ...defaultRetryOptions,\n ...retry,\n afterStatusCodes: retryAfterStatusCodes\n };\n};\nconst timeout = async (request, abortController, options) => new Promise((resolve, reject) => {\n const timeoutId = setTimeout(() => {\n if (abortController) {\n abortController.abort();\n }\n reject(new TimeoutError(request));\n }, options.timeout);\n void options.fetch(request).then(resolve).catch(reject).then(() => {\n clearTimeout(timeoutId);\n });\n});\nconst delay = async (ms) => new Promise((resolve) => {\n setTimeout(resolve, ms);\n});\nclass Ky {\n constructor(input, options = {}) {\n var _a, _b;\n this._retryCount = 0;\n this._input = input;\n this._options = {\n credentials: this._input.credentials || \"same-origin\",\n ...options,\n headers: mergeHeaders(this._input.headers, options.headers),\n hooks: deepMerge({\n beforeRequest: [],\n beforeRetry: [],\n afterResponse: []\n }, options.hooks),\n method: normalizeRequestMethod((_a = options.method) !== null && _a !== void 0 ? _a : this._input.method),\n prefixUrl: String(options.prefixUrl || \"\"),\n retry: normalizeRetryOptions(options.retry),\n throwHttpErrors: options.throwHttpErrors !== false,\n timeout: typeof options.timeout === \"undefined\" ? 1e4 : options.timeout,\n fetch: (_b = options.fetch) !== null && _b !== void 0 ? _b : globalThis.fetch.bind(globalThis)\n };\n if (typeof this._input !== \"string\" && !(this._input instanceof URL || this._input instanceof globalThis.Request)) {\n throw new TypeError(\"`input` must be a string, URL, or Request\");\n }\n if (this._options.prefixUrl && typeof this._input === \"string\") {\n if (this._input.startsWith(\"/\")) {\n throw new Error(\"`input` must not begin with a slash when using `prefixUrl`\");\n }\n if (!this._options.prefixUrl.endsWith(\"/\")) {\n this._options.prefixUrl += \"/\";\n }\n this._input = this._options.prefixUrl + this._input;\n }\n if (supportsAbortController) {\n this.abortController = new globalThis.AbortController();\n if (this._options.signal) {\n this._options.signal.addEventListener(\"abort\", () => {\n this.abortController.abort();\n });\n }\n this._options.signal = this.abortController.signal;\n }\n this.request = new globalThis.Request(this._input, this._options);\n if (this._options.searchParams) {\n const textSearchParams = typeof this._options.searchParams === \"string\" ? this._options.searchParams.replace(/^\\?/, \"\") : new URLSearchParams(this._options.searchParams).toString();\n const searchParams = \"?\" + textSearchParams;\n const url = this.request.url.replace(/(?:\\?.*?)?(?=#|$)/, searchParams);\n if ((supportsFormData && this._options.body instanceof globalThis.FormData || this._options.body instanceof URLSearchParams) && !(this._options.headers && this._options.headers[\"content-type\"])) {\n this.request.headers.delete(\"content-type\");\n }\n this.request = new globalThis.Request(new globalThis.Request(url, this.request), this._options);\n }\n if (this._options.json !== void 0) {\n this._options.body = JSON.stringify(this._options.json);\n this.request.headers.set(\"content-type\", \"application/json\");\n this.request = new globalThis.Request(this.request, {body: this._options.body});\n }\n }\n static create(input, options) {\n const ky2 = new Ky(input, options);\n const fn = async () => {\n if (ky2._options.timeout > maxSafeTimeout) {\n throw new RangeError(`The \\`timeout\\` option cannot be greater than ${maxSafeTimeout}`);\n }\n await Promise.resolve();\n let response = await ky2._fetch();\n for (const hook of ky2._options.hooks.afterResponse) {\n const modifiedResponse = await hook(ky2.request, ky2._options, ky2._decorateResponse(response.clone()));\n if (modifiedResponse instanceof globalThis.Response) {\n response = modifiedResponse;\n }\n }\n ky2._decorateResponse(response);\n if (!response.ok && ky2._options.throwHttpErrors) {\n throw new HTTPError(response, ky2.request, ky2._options);\n }\n if (ky2._options.onDownloadProgress) {\n if (typeof ky2._options.onDownloadProgress !== \"function\") {\n throw new TypeError(\"The `onDownloadProgress` option must be a function\");\n }\n if (!supportsStreams) {\n throw new Error(\"Streams are not supported in your environment. `ReadableStream` is missing.\");\n }\n return ky2._stream(response.clone(), ky2._options.onDownloadProgress);\n }\n return response;\n };\n const isRetriableMethod = ky2._options.retry.methods.includes(ky2.request.method.toLowerCase());\n const result = isRetriableMethod ? ky2._retry(fn) : fn();\n for (const [type, mimeType] of Object.entries(responseTypes)) {\n result[type] = async () => {\n ky2.request.headers.set(\"accept\", ky2.request.headers.get(\"accept\") || mimeType);\n const response = (await result).clone();\n if (type === \"json\") {\n if (response.status === 204) {\n return \"\";\n }\n if (options.parseJson) {\n return options.parseJson(await response.text());\n }\n }\n return response[type]();\n };\n }\n return result;\n }\n _calculateRetryDelay(error) {\n this._retryCount++;\n if (this._retryCount < this._options.retry.limit && !(error instanceof TimeoutError)) {\n if (error instanceof HTTPError) {\n if (!this._options.retry.statusCodes.includes(error.response.status)) {\n return 0;\n }\n const retryAfter = error.response.headers.get(\"Retry-After\");\n if (retryAfter && this._options.retry.afterStatusCodes.includes(error.response.status)) {\n let after = Number(retryAfter);\n if (Number.isNaN(after)) {\n after = Date.parse(retryAfter) - Date.now();\n } else {\n after *= 1e3;\n }\n if (typeof this._options.retry.maxRetryAfter !== \"undefined\" && after > this._options.retry.maxRetryAfter) {\n return 0;\n }\n return after;\n }\n if (error.response.status === 413) {\n return 0;\n }\n }\n const BACKOFF_FACTOR = 0.3;\n return BACKOFF_FACTOR * 2 ** (this._retryCount - 1) * 1e3;\n }\n return 0;\n }\n _decorateResponse(response) {\n if (this._options.parseJson) {\n response.json = async () => this._options.parseJson(await response.text());\n }\n return response;\n }\n async _retry(fn) {\n try {\n return await fn();\n } catch (error) {\n const ms = Math.min(this._calculateRetryDelay(error), maxSafeTimeout);\n if (ms !== 0 && this._retryCount > 0) {\n await delay(ms);\n for (const hook of this._options.hooks.beforeRetry) {\n const hookResult = await hook({\n request: this.request,\n options: this._options,\n error,\n retryCount: this._retryCount\n });\n if (hookResult === stop) {\n return;\n }\n }\n return this._retry(fn);\n }\n throw error;\n }\n }\n async _fetch() {\n for (const hook of this._options.hooks.beforeRequest) {\n const result = await hook(this.request, this._options);\n if (result instanceof Request) {\n this.request = result;\n break;\n }\n if (result instanceof Response) {\n return result;\n }\n }\n if (this._options.timeout === false) {\n return this._options.fetch(this.request.clone());\n }\n return timeout(this.request.clone(), this.abortController, this._options);\n }\n _stream(response, onDownloadProgress) {\n const totalBytes = Number(response.headers.get(\"content-length\")) || 0;\n let transferredBytes = 0;\n return new globalThis.Response(new globalThis.ReadableStream({\n async start(controller) {\n const reader = response.body.getReader();\n if (onDownloadProgress) {\n onDownloadProgress({percent: 0, transferredBytes: 0, totalBytes}, new Uint8Array());\n }\n async function read() {\n const {done, value} = await reader.read();\n if (done) {\n controller.close();\n return;\n }\n if (onDownloadProgress) {\n transferredBytes += value.byteLength;\n const percent = totalBytes === 0 ? 0 : transferredBytes / totalBytes;\n onDownloadProgress({percent, transferredBytes, totalBytes}, value);\n }\n controller.enqueue(value);\n await read();\n }\n await read();\n }\n }));\n }\n}\n/*! MIT License © Sindre Sorhus */\nconst createInstance = (defaults) => {\n const ky2 = (input, options) => Ky.create(input, validateAndMerge(defaults, options));\n for (const method of requestMethods) {\n ky2[method] = (input, options) => Ky.create(input, validateAndMerge(defaults, options, {method}));\n }\n ky2.create = (newDefaults) => createInstance(validateAndMerge(newDefaults));\n ky2.extend = (newDefaults) => createInstance(validateAndMerge(defaults, newDefaults));\n ky2.stop = stop;\n return ky2;\n};\nconst ky = createInstance();\nexport default ky;\nexport {HTTPError, TimeoutError};\n","import ky, { HTTPError } from '../../../../../static/js/ky.js'\n\nexport const state = {\n async getJson(url, options) {\n // cannot use ky(url).json() because it sets \"accept: application/json\"\n // which doesn't work with preload, see\n // https://stackoverflow.com/questions/41655955/why-are-preload-link-not-working-for-json-requests#answer-48645748\n const response = await ky(url, options)\n return response.json()\n },\n async getText(url, options) {\n return ky(url, options).text()\n },\n}\n\n/**\n * @throws\n */\nexport const getJson = async (url, options = {}) => {\n try {\n const result = await state.getJson(url, options)\n return result\n } catch (error) {\n if (\n error &&\n error instanceof TypeError &&\n error.message === 'Failed to fetch'\n ) {\n throw new Error(\n `Failed to request json from \"${url}\". Make sure that the server has CORS enabled`,\n {\n cause: error,\n }\n )\n }\n if (error && error instanceof HTTPError) {\n let json\n try {\n json = await error.response.json()\n } catch {\n throw error\n }\n if (json && json.message) {\n throw new Error(`Failed to request json from \"${url}\": ${json.message}`)\n }\n }\n error.message = `Failed to request json from \"${url}\": ${error.message}`\n throw error\n }\n}\n\nexport const getJsonLocal = (url) => {\n return getJson(url, {\n mode: 'no-cors',\n })\n}\n\nexport const getText = async (url, options = {}) => {\n try {\n const result = await state.getText(url, options)\n return result\n } catch (error) {\n if (\n error &&\n error instanceof TypeError &&\n error.message === 'Failed to fetch'\n ) {\n throw new Error(\n `Failed to request text from \"${url}\". Make sure that the server has CORS enabled`,\n {\n cause: error,\n }\n )\n }\n throw new Error(`Failed to request text from \"${url}\"`, { cause: error })\n }\n}\n","import * as Command from '../Command/Command.js'\nimport * as Ajax from './Ajax.js'\n\n// TODO only use Ajax module via ipc -> that way is is always lazyloaded\nexport const __initialize__ = () => {\n Command.register(270, Ajax.getJson)\n Command.register(271, Ajax.getText)\n}\n","import * as Editor from '../Editor/Editor.js'\nimport * as Platform from '../Platform/Platform.js'\nimport * as SharedProcess from '../SharedProcess/SharedProcess.js'\n\n// TODO format should be executed in parallel with saving\n// -> fast save, no need to wait for formatting\n// -> fast formatting, no need to wait for save\n\n// TODO should format on save when closing/switching editor?\n\n// TODO format with cursor\n// TODO should be in editor folder\n\nconst onDidSaveEditor = async (editor) => {\n console.log('format', editor)\n // Editor.sync(editor)\n // console.log(textDocument)\n // TODO only transfer incremental edits from shared process\n // TODO also format with cursor\n const newContent = await SharedProcess.invoke(\n /* ExtensionHost.format */ 'ExtensionHost.format',\n /* textDocumentId */ editor.textDocument.id\n )\n if (typeof newContent !== 'string') {\n console.warn('something is wrong with format on save', newContent)\n return\n }\n console.log({ newContent })\n // TODO use incremental edit\n const documentEdits = [\n {\n type: /* replace */ 3,\n text: newContent,\n },\n ]\n Editor.scheduleDocumentAndCursorsSelections(editor, documentEdits)\n}\n\nexport const hydrate = async () => {\n if (Platform.getPlatform() === 'web') {\n }\n // TODO check preferences if format on save is enabled\n // EditorSave.onDidSave(onDidSaveEditor)\n}\n","import * as Command from '../Command/Command.js'\nimport * as Format from './Format.js'\n\nexport const __initialize__ = () => {\n Command.register(3380, Format.hydrate)\n}\n","import * as Command from '../Command/Command.js'\nimport * as ColorTheme from './ColorTheme.js'\n\nexport const __initialize__ = () => {\n Command.register(5610, ColorTheme.hydrate)\n Command.register(5611, ColorTheme.setColorTheme)\n}\n","import * as Command from '../Command/Command.js'\nimport * as IconTheme from './IconTheme.js'\n\nexport const __initialize__ = () => {\n // TODO command necessary?\n Command.register(3030, IconTheme.getIconThemeCss)\n // TODO hydrate should be an alias for reload/load\n Command.register(3031, IconTheme.hydrate)\n Command.register(3032, IconTheme.addIcons)\n}\n","import * as Command from '../Command/Command.js'\nimport * as Menu from './Menu.js'\n\nexport const __initialize__ = () => {\n Command.register(7400, Menu.show)\n Command.register(7401, Menu.hide)\n Command.register(7403, Menu.selectIndex)\n Command.register(7404, Menu.focusNext)\n Command.register(7405, Menu.focusPrevious)\n Command.register(7406, Menu.focusFirst)\n Command.register(7407, Menu.focusLast)\n Command.register(7408, Menu.focusIndex)\n Command.register(7409, Menu.handleMouseEnter)\n}\n","// TODO menu should not be needed initially, only when item is selected and menu is opened\nimport * as Menu from '../Menu/Menu.js'\nimport * as MenuEntries from '../MenuEntries/MenuEntries.js'\nimport * as RendererProcess from '../RendererProcess/RendererProcess.js'\n\nexport const state = {\n titleBarEntries: [],\n focusedIndex: 0,\n isMenuOpen: false,\n}\n\n// TODO put this in json (e.g. defaultTitleBarMenu.json) and load from cache storage or via ajax\n// TODO only compute once if is electron and filter out during build process\n\nexport const getEntries = async () => {\n state.titleBarEntries = await MenuEntries.getMenuEntries('titleBar')\n return state.titleBarEntries\n}\n\n/**\n * @param {number} index\n * @param {boolean} shouldBeFocused\n */\nconst openMenuAtIndex = async (index, shouldBeFocused) => {\n // TODO race conditions\n // TODO send renderer process\n // 1. open menu, items to show\n // 2. focus menu\n const id = state.titleBarEntries[index].id\n const items = await MenuEntries.getMenuEntries(id)\n Menu.state.menus = []\n const bounds = await RendererProcess.invoke(\n /* Viewlet.send */ 3024,\n /* id */ 'TitleBar',\n /* method */ 'menuGetEntryBounds',\n /* index */ index\n )\n const x = bounds.left\n const y = bounds.bottom\n const width = Menu.getMenuWidth()\n const height = Menu.getMenuHeight(items)\n const menuFocusedIndex = shouldBeFocused\n ? Menu.getIndexToFocusNextStartingAt(items, 0)\n : -1\n const menu = Menu.addMenuInternal({\n id,\n items,\n focusedIndex: menuFocusedIndex,\n level: Menu.state.menus.length,\n x,\n y,\n })\n RendererProcess.send([\n /* Viewlet.send */ 3024,\n /* id */ 'TitleBar',\n /* method */ 'menuOpen',\n /* unFocusIndex */ state.focusedIndex,\n /* index */ index,\n /* level */ menu.level,\n /* menuItems */ menu.items,\n /* menuFocusedIndex */ menuFocusedIndex,\n /* focus */ shouldBeFocused,\n /* x */ x,\n /* y */ y,\n /* width */ width,\n /* height */ height,\n ])\n state.isMenuOpen = true\n}\n\n/**\n * @param {boolean} focus\n */\nexport const openMenu = async (focus) => {\n if (state.focusedIndex === -1) {\n return\n }\n await openMenuAtIndex(state.focusedIndex, focus)\n}\n\nexport const closeMenu = (keepFocus) => {\n // TODO send to renderer process\n // 1. close menu\n // 2. focus top level entry\n const focusIndex = keepFocus ? state.focusedIndex : -1\n // TODO use Viewlet.dispose instead\n RendererProcess.send([\n /* Viewlet.send */ 3024,\n /* id */ 'TitleBar',\n /* method */ 'menuClose',\n /* unFocusIndex */ state.focusedIndex,\n /* focusIndex */ focusIndex,\n ])\n state.isMenuOpen = false\n}\n\nexport const toggleMenu = async () => {\n if (state.isMenuOpen) {\n closeMenu(/* keepFocus */ true)\n } else {\n await openMenu(/* focus */ false)\n }\n}\n\nexport const focusIndex = async (index) => {\n if (state.isMenuOpen) {\n await openMenuAtIndex(index, /* focus */ false)\n } else {\n RendererProcess.send([\n /* TitleBarMenuBar.focusIndex */ 1371,\n /* unFocusIndex */ state.focusedIndex,\n /* index */ index,\n ])\n }\n state.focusedIndex = index\n}\n\nexport const toggleIndex = async (index) => {\n if (state.isMenuOpen && state.focusedIndex === index) {\n closeMenu(/* keepFocus */ true)\n } else {\n await openMenuAtIndex(index, /* focus */ false)\n }\n state.focusedIndex = index\n}\n\nexport const focus = async () => {\n await focusFirst()\n}\n\nconst getIndexToFocusPreviousStartingAt = (items, index) => {\n return (index + items.length) % items.length\n}\n\nexport const focusPrevious = async () => {\n const indexToFocus = getIndexToFocusPreviousStartingAt(\n state.titleBarEntries,\n state.focusedIndex - 1\n )\n await focusIndex(indexToFocus)\n}\n\nconst getIndexToFocusNextStartingAt = (items, index) => {\n return index % items.length\n}\n\nexport const focusNext = async () => {\n console.log('ff next')\n const indexToFocus = getIndexToFocusNextStartingAt(\n state.titleBarEntries,\n state.focusedIndex + 1\n )\n await focusIndex(indexToFocus)\n}\n\nexport const focusFirst = async () => {\n const indexToFocus = getIndexToFocusNextStartingAt(state.titleBarEntries, 0)\n await focusIndex(indexToFocus)\n}\n\nexport const focusLast = async () => {\n const indexToFocus = getIndexToFocusPreviousStartingAt(\n state.titleBarEntries,\n state.titleBarEntries.length - 1\n )\n await focusIndex(indexToFocus)\n}\n\nexport const handleKeyArrowLeft = async () => {\n if (state.isMenuOpen && Menu.state.menus.length > 1) {\n return\n }\n // TODO menu collapse\n await focusPrevious()\n}\n\nexport const handleKeyArrowUp = () => {\n if (!state.isMenuOpen) {\n return\n }\n Menu.focusPrevious()\n}\n\nexport const handleKeyArrowRight = async () => {\n console.log('arrow right')\n if (state.isMenuOpen) {\n // if menu can open sub menu to the right -> do that\n const menu = Menu.state.menus.at(-1)\n const item = menu.items[menu.focusedIndex]\n if (item.flags === /* SubMenu */ 4) {\n await Menu.showSubMenu(Menu.state.menus.length - 1, menu.focusedIndex)\n return\n }\n }\n await focusNext()\n}\n\nexport const handleKeyHome = async () => {\n if (state.isMenuOpen) {\n Menu.focusFirst()\n } else {\n await focusFirst()\n }\n}\n\n// TODO this is also use for pagedown -> maybe find a better name for this function\nexport const handleKeyEnd = async () => {\n if (state.isMenuOpen) {\n Menu.focusLast()\n } else {\n await focusLast()\n }\n}\n\n// TODO this is same as handle key enter -> merge the functions\nexport const handleKeySpace = async () => {\n if (state.isMenuOpen) {\n await Menu.selectCurrent()\n } else {\n openMenu(/* focus */ true)\n }\n}\n\nexport const handleKeyEnter = async () => {\n if (state.isMenuOpen) {\n await Menu.selectCurrent()\n } else {\n openMenu(/* focus */ true)\n }\n}\n\nexport const handleKeyEscape = () => {\n if (!state.isMenuOpen) {\n return\n }\n closeMenu(/* keepFocus */ true)\n}\n\nexport const handleKeyArrowDown = async () => {\n if (state.isMenuOpen) {\n Menu.focusNext()\n } else {\n await openMenu(/* focus */ true)\n }\n}\n","import * as Command from '../Command/Command.js'\nimport * as TitleBarMenuBar from './TitleBarMenuBar.js'\n\nexport const __initialize__ = () => {\n Command.register(4610, TitleBarMenuBar.toggleIndex)\n Command.register(4611, TitleBarMenuBar.hydrate)\n Command.register(4612, TitleBarMenuBar.focus)\n Command.register(4613, TitleBarMenuBar.focusIndex)\n Command.register(4614, TitleBarMenuBar.focusPrevious)\n Command.register(4615, TitleBarMenuBar.focusNext)\n Command.register(4616, TitleBarMenuBar.closeMenu)\n Command.register(4617, TitleBarMenuBar.openMenu)\n Command.register(4618, TitleBarMenuBar.handleKeyArrowDown)\n Command.register(4619, TitleBarMenuBar.handleKeyArrowUp)\n Command.register(4620, TitleBarMenuBar.handleKeyArrowRight)\n Command.register(4621, TitleBarMenuBar.handleKeyHome)\n Command.register(4622, TitleBarMenuBar.handleKeyEnd)\n Command.register(4623, TitleBarMenuBar.handleKeySpace)\n Command.register(4624, TitleBarMenuBar.handleKeyEnter)\n Command.register(4625, TitleBarMenuBar.handleKeyEscape)\n Command.register(4626, TitleBarMenuBar.handleKeyArrowLeft)\n}\n","import * as Command from '../Command/Command.js'\nimport * as ErrorHandling from './ErrorHandling.js'\n\nexport const __initialize__ = () => {\n Command.register(440, ErrorHandling.handleError)\n}\n","// TODO maybe rename this module to Focus\n\nimport * as RendererProcess from '../RendererProcess/RendererProcess.js'\n\nconst PART_TITLE_BAR = 1\nconst PART_MAIN = 2\nconst PART_PANEL = 3\nconst PART_STATUS_BAR = 4\nconst PART_SIDE_BAR = 5\nconst PART_ACTIVITY_BAR = 6\n\nexport const state = {\n focusedPart: PART_TITLE_BAR,\n}\n\nexport const focusActivityBar = () => {\n RendererProcess.send([/* ActivityBar.focus */ 717115])\n}\n\nexport const focusStatusBar = () => {\n RendererProcess.send([/* StatusBar.focus */ 8882])\n}\n\nexport const focusPanel = () => {\n RendererProcess.send([/* Panel.focus */ 6664])\n}\n\nexport const focusSideBar = () => {\n RendererProcess.send([/* SideBar.focus */ 5554])\n}\n\nexport const focusTitleBar = () => {\n RendererProcess.send([/* TitleBar.focus */ 1331])\n}\n\nexport const focusMain = () => {\n RendererProcess.send([/* Main.focus */ 2145])\n}\n\nexport const focusNextTerminal = () => {\n // TODO\n}\n\nexport const focusPreviousTerminal = () => {\n // TODO\n}\n\nexport const focusPart = (part) => {\n state.focusedPart = part\n switch (state.focusedPart) {\n case PART_TITLE_BAR:\n focusTitleBar()\n break\n case PART_MAIN:\n focusMain()\n break\n case PART_PANEL:\n focusPanel()\n break\n case PART_STATUS_BAR:\n focusStatusBar()\n break\n case PART_SIDE_BAR:\n focusSideBar()\n break\n case PART_ACTIVITY_BAR:\n focusActivityBar()\n break\n default:\n throw console.warn(`unknown part ${part}`)\n }\n}\n\nconst getNextPart = (part) => {\n switch (part) {\n case PART_TITLE_BAR:\n return PART_MAIN\n case PART_MAIN:\n return PART_PANEL\n case PART_PANEL:\n return PART_STATUS_BAR\n case PART_STATUS_BAR:\n return PART_SIDE_BAR\n case PART_SIDE_BAR:\n return PART_ACTIVITY_BAR\n case PART_ACTIVITY_BAR:\n return PART_TITLE_BAR\n default:\n throw console.warn(`unknown part ${part}`)\n }\n}\n\nconst getPreviousPart = (part) => {\n switch (part) {\n case PART_TITLE_BAR:\n return PART_ACTIVITY_BAR\n case PART_MAIN:\n return PART_TITLE_BAR\n case PART_PANEL:\n return PART_MAIN\n case PART_STATUS_BAR:\n return PART_PANEL\n case PART_SIDE_BAR:\n return PART_STATUS_BAR\n case PART_ACTIVITY_BAR:\n return PART_SIDE_BAR\n default:\n throw console.warn(`unknown part ${part}`)\n }\n}\n\nconst isVisiblePart = (part) => {\n // TODO\n return true\n}\n\nconst getVisiblePart = (part, fn) => {\n const nextPart = fn(part)\n if (isVisiblePart(nextPart)) {\n return nextPart\n }\n return getVisiblePart(nextPart, fn)\n}\n\nconst getVisiblePartNext = (part) => {\n return getVisiblePart(part, getNextPart)\n}\n\nconst getVisiblePartPrevious = (part) => {\n return getVisiblePart(part, getPreviousPart)\n}\n\nconst getCurrentPart = () => {\n // TODO ask renderer process\n return state.focusedPart\n}\n\nexport const focusNextPart = () => {\n const currentPart = getCurrentPart()\n const nextPart = getVisiblePartNext(currentPart)\n focusPart(nextPart)\n}\n\nexport const focusPreviousPart = () => {\n const currentPart = getCurrentPart()\n const previousPart = getVisiblePartPrevious(currentPart)\n focusPart(previousPart)\n}\n","import * as Command from '../Command/Command.js'\nimport * as Navigation from './Navigation.js'\n\nexport const __initialize__ = () => {\n Command.register(5740, Navigation.focusPreviousPart)\n Command.register(5741, Navigation.focusNextPart)\n Command.register(5742, Navigation.focusActivityBar)\n Command.register(5743, Navigation.focusStatusBar)\n Command.register(5744, Navigation.focusPanel)\n Command.register(5745, Navigation.focusSideBar)\n Command.register(5746, Navigation.focusTitleBar)\n Command.register(5747, Navigation.focusMain)\n}\n","import * as Platform from '../Platform/Platform.js'\n\nconst CACHE_NAME = 'lvce-runtime'\n\nconst shouldIgnoreError = (error) => {\n // Firefox throws dom exception in private mode\n return (\n error &&\n error instanceof DOMException &&\n error.message === 'The operation is insecure.'\n )\n}\n\nexport const state = {\n async getJson(key) {\n try {\n const response = await getResponse(key)\n if (!response) {\n return undefined\n }\n const json = await response.json()\n return json\n } catch (error) {\n if (shouldIgnoreError(error)) {\n return undefined\n }\n throw new Error(`Failed to get json from cache \"${key}\"`, {\n cause: error,\n })\n }\n },\n async setJson(key, value) {\n try {\n await setResponse(key, JSON.stringify(value), 'application/json')\n } catch (error) {\n if (shouldIgnoreError(error)) {\n return\n }\n throw new Error(`Failed to put json into cache \"${key}\"`, {\n cause: error,\n })\n }\n },\n}\n// TODO when caches is not defined -> should return undefined\n\nconst getCache = async () => {\n return await caches.open(CACHE_NAME)\n}\n\nconst getResponse = async (key) => {\n if (typeof caches === 'undefined') {\n return undefined\n }\n if (Platform.getPlatform() === 'electron' && key.startsWith('/')) {\n // workaround for custom protocol not working with cache storage\n key = 'https://example.com' + key\n }\n const cache = await getCache()\n const response = await cache.match(key)\n return response\n}\n\n/**\n * @throws\n */\nexport const getJson = (key) => {\n return state.getJson(key)\n}\n\n/**\n * @throws\n */\nexport const getTextFromCache = async (key) => {\n try {\n const response = await getResponse(key)\n if (!response) {\n return undefined\n }\n const text = await response.text()\n return text\n } catch (error) {\n if (shouldIgnoreError(error)) {\n return undefined\n }\n throw new Error(`Failed to get text from cache \"${key}\"`, {\n cause: error,\n })\n }\n}\n\nconst setResponse = async (key, value, contentType) => {\n if (typeof caches === 'undefined') {\n return\n }\n // TODO cache the cache (maybe)\n if (\n Platform.getPlatform() === 'electron' && // workaround for custom protocol not working with cache storage\n key.startsWith('/')\n ) {\n key = 'https://example.com' + key\n }\n if (typeof value !== 'string') {\n console.warn(`invalid value ${value}`)\n return\n }\n const cache = await caches.open(CACHE_NAME)\n await cache.put(\n key,\n new Response(value, {\n headers: new Headers({\n 'Content-Type': contentType,\n 'Content-Length': `${value.length}`,\n }),\n })\n )\n}\n\nexport const setText = async (key, value, contentType) => {\n try {\n await setResponse(key, value, contentType)\n } catch (error) {\n if (shouldIgnoreError(error)) {\n return undefined\n }\n throw new Error(`Failed to put item into cache \"${key}\"`, { cause: error })\n }\n}\n\nexport const setJson = async (key, value) => {\n return state.setJson(key, value)\n}\n\n/**\n * @throws\n */\nexport const clearCache = async () => {\n if (typeof caches === 'undefined') {\n return\n }\n try {\n await caches.delete(CACHE_NAME)\n } catch (error) {\n if (shouldIgnoreError(error)) {\n return\n }\n throw new Error('Failed to clear cache', {\n cause: error,\n })\n }\n}\n","import * as Command from '../Command/Command.js'\nimport * as CacheStorage from './CacheStorage.js'\n\n// TODO only use CacheStorage module via ipc -> that way is is always lazyloaded\n\nexport const __initialize__ = () => {\n Command.register(6800, CacheStorage.clearCache)\n Command.register(6801, CacheStorage.setJson)\n Command.register(6802, CacheStorage.getJson)\n}\n","import * as RendererProcess from '../RendererProcess/RendererProcess.js'\nimport * as Json from '../Json/Json.js'\n\nexport const clear = async () => {\n await RendererProcess.invoke(/* LocalStorage.clear */ 8986)\n}\n\nexport const getText = async (key) => {\n const item = await RendererProcess.invoke(\n /* LocalStorage.getItem */ 8987,\n /* key */ key\n )\n return item || ''\n}\n\nexport const getJson = async (key) => {\n const item = await getText(key)\n if (!item) {\n return undefined\n }\n try {\n return Json.parse(item)\n } catch {\n return undefined\n }\n}\n\nexport const setText = async (key, value) => {\n await RendererProcess.invoke(\n /* LocalStorage.setItem */ 8988,\n /* key */ key,\n /* value */ value\n )\n}\n\nexport const setJson = async (key, value) => {\n const stringifiedValue = Json.stringify(value)\n await setText(key, stringifiedValue)\n}\n","import * as Command from '../Command/Command.js'\nimport * as LocalStorage from './LocalStorage.js'\n\n// TODO only use LocalStorage module via ipc -> that way is is always lazyloaded\n\nexport const __initialize__ = () => {\n Command.register(6900, LocalStorage.clear)\n Command.register(6901, LocalStorage.setJson)\n Command.register(6902, LocalStorage.getJson)\n Command.register(6903, LocalStorage.getText)\n Command.register(6904, LocalStorage.setText)\n}\n","import * as RendererProcess from '../RendererProcess/RendererProcess.js'\nimport * as Json from '../Json/Json.js'\n\nexport const clear = async () => {\n await RendererProcess.invoke(/* SessionStorage.clear */ 8976)\n}\n\nexport const getJson = async (key) => {\n const item = await RendererProcess.invoke(\n /* SessionStorage.getItem */ 8977,\n /* key */ key\n )\n if (!item) {\n return undefined\n }\n try {\n return Json.parse(item)\n } catch {\n return undefined\n }\n}\n\nexport const setJson = async (key, value) => {\n const stringifiedValue = Json.stringify(value)\n await RendererProcess.invoke(\n /* SessionStorage.setItem */ 8978,\n /* key */ key,\n /* value */ stringifiedValue\n )\n}\n","import * as Command from '../Command/Command.js'\nimport * as SessionStorage from './SessionStorage.js'\n\n// TODO only use SessionStorage module via ipc -> that way is is always lazyloaded\n\nexport const __initialize__ = () => {\n Command.register(6755, SessionStorage.clear)\n Command.register(6756, SessionStorage.getJson)\n}\n","import * as Command from '../Command/Command.js'\nimport * as Callback from './Callback.js'\n\nexport const __initialize__ = () => {\n Command.register(67330, Callback.resolve)\n Command.register(67331, Callback.reject)\n}\n","/**\n * @param {string} id\n */\nexport const getCommandInfo = (id) => {\n switch (id) {\n case 'file.openFolder':\n return 1492\n case 'file.openRecent':\n return 18926\n case 'help.about':\n return 1493\n case 'main.openEditor':\n return 88\n case 'main.save':\n return 89\n case 'main.closeActiveEditor':\n return 93\n case 'main.closeEditor':\n return 99\n case 'main.closeAllEditors':\n return 94\n case 'main.focusFirst':\n return 101\n case 'main.focusLast':\n return 102\n case 'main.focusPrevious':\n return 103\n case 'main.focusNext':\n return 104\n case 'viewletExplorer.focusNext':\n return 142\n case 'viewletExplorer.focusPrevious':\n return 143\n case 'viewletExplorer.scrollUp':\n return 144\n case 'viewletExplorer.scrollDown':\n return 145\n case 'viewletExplorer.handleClickCurrent':\n return 146\n case 'viewletExplorer.newFile':\n return 147\n case 'viewletExplorer.openContainingFolder':\n return 148\n case 'viewletExplorer.copyPath':\n return 149\n case 'viewletExplorer.copyRelativePath':\n return 150\n case 'viewletExplorer.removeDirent':\n return 151\n case 'viewletExplorer.newFolder':\n return 152\n case 'viewletExplorer.handleArrowRight':\n return 154\n case 'viewletExplorer.handleArrowLeft':\n return 155\n case 'viewletExplorer.focusFirst':\n return 156\n case 'viewletExplorer.focusLast':\n return 157\n case 'viewletExplorer.rename':\n return 158\n case 'viewletExplorer.handlePaste':\n return 165\n case 'viewletExplorer.handleCopy':\n return 166\n case 'viewletExplorer.cancelRename':\n return 167\n case 'viewletExplorer.acceptRename':\n return 168\n case 'viewletExplorer.cancelNewFile':\n return 169\n case 'viewletExplorer.acceptNewFile':\n return 170\n case 'viewletExplorer.expandAll':\n return 171\n case 'viewletExplorer.collapseAll':\n return 172\n case 'editor.handleContextMenu':\n return 87\n case 'editor.cursorDown':\n return 341\n case 'editor.cursorLeft':\n return 342\n case 'editor.cursorRight':\n return 343\n case 'editor.cursorUp':\n return 344\n case 'editor.type':\n return 345\n case 'editor.deleteLeft':\n return 346\n case 'editor.deleteRight':\n return 347\n case 'editor.insertLineBreak':\n return 348\n case 'editor.copyLineUp':\n return 349\n case 'editor.copyLineDown':\n return 350\n case 'editor.moveLineDown':\n return 351\n case 'editor.cursorWordLeft':\n return 352\n case 'editor.cursorWordRight':\n return 353\n case 'editor.deleteWordLeft':\n return 354\n case 'editor.deleteWordRight':\n return 355\n case 'editor.moveLineUp':\n return 356\n case 'editor.tabCompletion':\n return 357\n case 'editor.cursorHome':\n return 358\n case 'editor.cursorEnd':\n return 359\n case 'editor.handleClick':\n return 360\n case 'editor.handleDoubleClick':\n return 361\n case 'editor.toggleBlockComment':\n return 362\n case 'editor.moveSelection':\n return 363\n case 'editor.cut':\n return 364\n case 'editor.copy':\n return 365\n case 'editor.selectAll':\n return 366\n case 'editor.moveRectangleSelection':\n return 367\n case 'editor.cursorWordPartRight':\n return 368\n case 'editor.cursorWordPartLeft':\n return 369\n case 'editor.blur':\n return 370\n case 'editor.scheduleDocument':\n return 372\n case 'editor.toggleComment':\n return 373\n case 'editor.deleteAllLeft':\n return 374\n case 'editor.deleteAllRight':\n return 375\n case 'editor.handleTripleClick':\n return 376\n case 'editor.selectLine':\n return 377\n case 'editor.selectCharacterLeft':\n return 380\n case 'editor.selectCharacterRight':\n return 381\n case 'editor.selectWordLeft':\n return 402\n case 'editor.selectWordRight':\n return 401\n case 'editor.format':\n return 388\n case 'editor.selectNextOccurrence':\n return 390\n case 'editor.selectAllOccurrences':\n return 391\n case 'editor.handleTab':\n return 392\n case 'editor.cancelSelection':\n return 393\n case 'editor.unindent':\n return 394\n case 'editor.undo':\n return 395\n case 'editor.formatForced':\n return -1\n case 'editor.deleteWordPartLeft':\n return 397\n case 'editor.deleteWordPartRight':\n return 398\n case 'editor.indentMore':\n return 409\n case 'editor.indentLess':\n return 410\n case 'viewService.toggleView':\n return 1105\n case 'viewletExtensions.openSuggest':\n return 860\n case 'viewletExtensions.closeSuggest':\n return 861\n case 'viewletExtensions.toggleSuggest':\n return 862\n case 'contextMenu.select':\n return 950\n case 'contextMenu.show':\n return 951\n // TODO decide on one name\n case 'contextMenu.hide':\n case 'contextMenu.close':\n return 952\n case 'menu.focusFirst':\n return 7406\n case 'menu.focusLast':\n return 7407\n case 'menu.focusNext':\n return 7404\n case 'menu.focusPrevious':\n return 7405\n case 'contextMenu.selectCurrent':\n return 957\n case 'editorCompletion.open':\n return 980\n case 'editorCompletion.close':\n return 981\n case 'editorCompletion.selectIndex':\n return 982\n case 'editorCompletion.focusFirst':\n return 983\n case 'editorCompletion.focusLast':\n return 984\n case 'editorCompletion.focusNext':\n return 985\n case 'editorCompletion.focusPrevious':\n return 986\n case 'editorCompletion.selectCurrent':\n return 987\n case 'editorCompletion.openFromType':\n return 988\n case 'quickPickHide':\n return 71178\n case 'layout.showSideBar':\n return 1100\n case 'layout.hideSideBar':\n return 1101\n case 'layout.toggleSideBar':\n return 1102\n case 'layout.showPanel':\n return 1103\n case 'layout.hidePanel':\n return 1104\n case 'layout.togglePanel':\n return 1105\n case 'layout.showActivityBar':\n return 1106\n case 'layout.hideActivityBar':\n return 1107\n case 'layout.toggleActivityBar':\n return 1108\n case 'focus.set':\n return 1103\n case 'focus.output':\n // TODO arg\n return 1103\n case 'focus.search':\n // TODO arg\n return 1103\n case 'focus.sourceControl':\n // TODO arg\n return 1103\n case 'focus.debugAndRun':\n // TODO arg\n return 1103\n case 'focus.extensions':\n // TODO arg\n return 1103\n case 'focus.nextPart':\n return 5741\n case 'focus.previousPart':\n return 5740\n case 'focus.statusBar':\n return 5743\n case 'window.close':\n return 8084\n case 'window.reload':\n return 8080\n case 'window.makeScreenshot':\n return 8085\n case 'window.minimize':\n return 8081\n case 'window.maximize':\n return 8082\n case 'window.unmaximize':\n return 8083\n case 'developer.measureLatencyBetweenExtensionHostAndSharedProcess':\n return 281\n case 'developer.measureLatencyBetweenSharedProcessAndRendererProcess':\n return 282\n case 'developer.showState':\n return 283\n case 'developer.startupPerformance':\n return 833\n case 'developer.showMemoryUsage':\n return 834\n case 'developer.allocateMemoryInSharedProcess':\n return 822\n case 'developer.crashSharedProcess':\n return 823\n case 'developer.createSharedProcessHeapSnapshot':\n return 824\n case 'developer.createSharedProcessProfile':\n return 825\n case 'developer.showIconThemeCss':\n return 826\n case 'developer.reloadIconTheme':\n return 827\n case 'developer.clearCache':\n return 828\n case 'developer.toggleDeveloperTools':\n return 831\n case 'developer.crashMainProcess':\n return 832\n case 'developer.openConfigFolder':\n return 835\n case 'developer.openDataFolder':\n return 836\n case 'developer.openCacheFolder':\n return 838\n case 'developer.openProcessExplorer':\n return 839\n case 'preferences.openSettingsJson':\n return 1200\n case 'preferences.openUserKeyBindings':\n return 1201\n case 'preferences.openDefaultKeyBindings':\n return 1202\n case 'preferences.selectColorTheme':\n return 18925\n case 'extensions.openExtensionsFolder':\n return 7650\n case 'extensions.openCachedExtensionsFolder':\n return 7651\n case 'viewletExtensions.focusFirst':\n return 869\n case 'viewletExtensions.focusLast':\n return 870\n case 'viewletExtensions.focusPrevious':\n return 871\n case 'viewletExtensions.focusNext':\n return 872\n case 'viewletExtensions.focusNextPage':\n return 874\n case 'viewletExtensions.focusPreviousPage':\n return 875\n case 'focus.activityBar':\n return 8003\n case 'focus.titleBar':\n return 4512\n case 'developer.reloadColorTheme':\n return 829\n case 'developer.showColorThemeCss':\n return 830\n case 'activityBar.focusNext':\n return 8004\n case 'activityBar.focusFirst':\n return 8006\n case 'activityBar.focusLast':\n return 8007\n case 'activityBar.focusPrevious':\n return 8005\n case 'activityBar.selectCurrent':\n return 8008\n case 'terminal.clear':\n return 4871\n case 'editor.openColorPicker':\n return 1400\n case 'editor.closeColorPicker':\n return 1401\n case 'quickPick.show':\n return 71179\n case 'quickPick.hide':\n return 71178\n case 'quickPick.selectCurrentIndex':\n return 71180\n case 'quickPick.handleInput':\n return 71181\n case 'quickPick.selectIndex':\n return 71182\n // TODO maybe rename to showCommands\n case 'menu.show':\n return 7400\n case 'menu.hide':\n return 7401\n case 'quickPick.openCommandPalette':\n return 7611\n case 'quickPick.openView':\n return 7612\n case 'quickPick.focusFirst':\n return 18920\n case 'quickPick.focusLast':\n return 18921\n case 'quickPick.focusPrevious':\n return 18922\n case 'quickPick.focusNext':\n return 18923\n case 'quickPick.openGoToLine':\n return 18924\n case 'titleBarMenuBar.handleClick':\n return 4610\n case 'titleBarMenuBar.focus':\n return 4612\n case 'titleBarMenuBar.focusIndex':\n return 4613\n case 'titleBarMenuBar.focusPrevious':\n return 4614\n case 'titleBarMenuBar.focusNext':\n return 4615\n case 'titleBarMenuBar.closeMenu':\n return 4616\n case 'titleBarMenuBar.openMenu':\n return 4617\n case 'navigation.focusPreviousPart':\n return 5740\n case 'navigation.focusNextPart':\n return 5741\n case 'editorRename.open':\n return 3300\n case 'editorRename.finish':\n return 3301\n case 'editorRename.abort':\n return 3302\n case 'editor.goToDefinition':\n return 414\n case 'editor.selectInsideString':\n return 403\n case 'notification.create':\n return 900\n case 'notification.dispose':\n return 901\n case 'viewletSourceControl.acceptInput':\n return 6532\n case 'dialog.close':\n return 1495\n case 'audio.playBell':\n return 4444\n case 'serviceWorker.uninstall':\n return 5784\n case 'developer.openLogsFolder':\n return 837\n case 'workbench.newWindow':\n return 8086\n case 'contextMenu.noop':\n return 958\n case 'viewletLocations.focusFirst':\n return 7101\n case 'viewletLocations.focusLast':\n return 7102\n case 'viewletLocations.focusNext':\n return 7103\n case 'viewletLocations.focusPrevious':\n return 7104\n case 'viewletLocations.selectCurrent':\n return 7105\n default:\n console.warn(`[CommandInfo] unknown command \"${id}\"`)\n return -1\n }\n}\n","import * as Command from '../Command/Command.js'\nimport * as CommandInfo from './CommandInfo.js'\n\nexport const __initialize__ = () => {\n Command.register(1592, CommandInfo.getCommandInfo)\n}\n","import * as Command from '../Command/Command.js'\nimport * as Platform from '../Platform/Platform.js'\nimport * as RendererProcess from '../RendererProcess/RendererProcess.js'\nimport * as SharedProcess from '../SharedProcess/SharedProcess.js'\n\nexport const state = {\n dialog: undefined,\n}\n\nexport const openFolder = async () => {\n if (Platform.getPlatform() === 'web') {\n console.warn('open folder - not implemented')\n return\n }\n if (Platform.getPlatform() === 'remote') {\n const path = await RendererProcess.invoke(\n /* Dialog.prompt */ 7833,\n /* message */ 'Choose path:'\n )\n await Command.execute(/* Workspace.setPath */ 7633, /* path */ path)\n return\n }\n const folders = await SharedProcess.invoke(\n /* Electron.showOpenDialog */ 'Electron.showOpenDialog'\n )\n if (!folders || folders.length === 0) {\n return\n }\n const path = folders[0]\n await Command.execute(/* Workspace.setPath */ 7633, /* path */ path)\n}\n\nexport const showAbout = async () => {\n if (Platform.getPlatform() === 'web' || Platform.getPlatform() === 'remote') {\n console.warn('show about - not implemented')\n return\n }\n await SharedProcess.invoke(/* Electron.about */ 'Electron.about')\n}\n\nexport const showMessage = async (message, options) => {\n if (state.dialog) {\n console.info('cannot show multiple dialogs at the same time')\n return\n }\n // TODO implement actual dialog component for web\n // RendererProcess.invoke(/* Dialog.alert */ 7834, /* message */ message)\n // TODO on electron use native dialog\n if (!options) {\n options = ['Show Command Output', 'Cancel', 'Open Git Log']\n }\n console.log({ message })\n state.dialog = {\n message,\n options,\n }\n\n if (Platform.getPlatform() === 'electron') {\n const index = await SharedProcess.invoke(\n /* Electron.showMessageBox */ 'Electron.showMessageBox',\n /* message */ message.message,\n /* buttons */ options\n )\n\n if (index === -1) {\n // TODO can this even happen?\n return\n }\n await handleClick(index)\n // console.log({ result: index })\n // state.dialog = undefined\n } else {\n await RendererProcess.invoke(\n /* Dialog.showErrorDialogWithOptions */ 7835,\n /* message */ message,\n /* options */ options\n )\n }\n}\n\nexport const close = async () => {\n // TODO support closing of electron dialogs\n if (!state.dialog) {\n console.info('no dialog to close')\n return\n }\n state.dialog = undefined\n await RendererProcess.invoke(/* Dialog.close */ 7836)\n}\n\nexport const handleClick = async (index) => {\n const dialog = state.dialog\n const option = dialog.options[index]\n // TODO handle case when index is out of bounds\n console.log({ option })\n switch (option) {\n case 'Show Command Output':\n await close()\n const uri = `data://${dialog.message.stderr}`\n await Command.execute(/* Main.openUri */ 97, uri)\n // TODO show stderr in editor\n // TODO close dialog\n break\n default:\n break\n }\n}\n","import * as Command from '../Command/Command.js'\nimport * as Dialog from './Dialog.js'\n\nexport const __initialize__ = () => {\n Command.register(1492, Dialog.openFolder)\n Command.register(1493, Dialog.showAbout)\n Command.register(1494, Dialog.showMessage)\n Command.register(1495, Dialog.close)\n Command.register(1496, Dialog.handleClick)\n}\n","import * as Command from '../Command/Command.js'\nimport * as Workspace from './Workspace.js'\n\nexport const __initialize__ = () => {\n Command.register(7633, Workspace.setPath)\n Command.register(7634, Workspace.hydrate)\n Command.register(7635, Workspace.setUri)\n}\n","const rgba = (r, g, b, a) => {\n r = Math.min(255, Math.max(0, r)) | 0\n g = Math.min(255, Math.max(0, g)) | 0\n b = Math.min(255, Math.max(0, b)) | 0\n return {\n r,\n g,\n b,\n a,\n }\n}\n\nconst darken = () => {}\n\nconst lighten = () => {}\n\nconst transparent = (color, factor) => {\n return color\n}\n\nconst isValidHexColor = (value) => {\n return true\n}\n\nconst toColorRule = ([key, value]) => {\n return ` --${key}: ${value};`\n}\n\nconst toTokenColorRule = (tokenColor) => {\n return `.Token.${tokenColor.name} { color: ${tokenColor.foreground} }`\n}\n\nexport const createColorThemeFromJson = (colorThemeId, colorThemeJson) => {\n if (!colorThemeJson) {\n console.warn(\n `color theme json for \"${colorThemeId}\" is empty: \"${colorThemeJson}\"`\n )\n return ''\n }\n if (typeof colorThemeJson !== 'object') {\n console.warn(\n `color theme json for \"${colorThemeId}\" cannot be converted to css: \"${colorThemeJson}\"`\n )\n return ''\n }\n if (Array.isArray(colorThemeJson)) {\n console.warn(\n `color theme json for \"${colorThemeId}\" cannot be converted to css, it must be of type object but was of type array`\n )\n return ''\n }\n const colors = colorThemeJson.colors\n if (!colors) {\n return ''\n }\n if (!colors.ActivityBarInactiveForeground) {\n // TODO don't assign, avoid mutation\n colors.ActivityBarInactiveForeground = transparent(\n colors.ActivityBarForeground,\n 0.4\n )\n }\n const colorRules = Object.entries(colors).map(toColorRule)\n const tokenColors = colorThemeJson.tokenColors || []\n const tokenColorRules = tokenColors.map(toTokenColorRule)\n const extraRules = []\n if (colors.ContrastBorder) {\n console.log('has contrast border')\n extraRules.push(`#ActivityBar, #SideBar {\n border-left: 1px solid var(--ContrastBorder);\n}`, `#Panel {\n border-top: 1px solid var(--ContrastBorder);\n}`, `#StatusBar {\n border-top: 1px solid var(--ContrastBorder);\n}`, `.ActivityBarItemBadge {\n border: 1px solid var(--ContrastBorder);\n}`, `#QuickPick {\n border: 1px solid var(--ContrastBorder);\n}`)\n }\n const colorThemeCss = `:root {\\n${colorRules.join(\n '\\n'\n )}\\n}\\n\\n${tokenColorRules.join('\\n')}\\n\\n${extraRules.join('\\n')}`\n return colorThemeCss\n}\n\n// for (let i = 0; i < 10000; i++) {\n// createColorThemeFromJson({\n// type: 'dark',\n// colors: {\n// ActivityBarBackground: 'rgb(40, 46, 47)',\n// ActivityBarForeground: '#878f8c',\n// ActivityBarActiveBackground: '#1f2727',\n\n// EditorBackGround: '#1e2324',\n// EditorScrollBarBackground: 'rgba(57, 71, 71, 0.6)',\n// EditorCursorBackground: '#a8df5a',\n\n// ListActiveSelectionBackground: '#515f59',\n// ListActiveSelectionForeground: '#ffffff',\n// ListHoverBackground: '#405c5033',\n// ListHoverForeground: '#e0e0e0',\n// ListInactiveSelectionBackground: '#3b474280',\n\n// MainBackground: '#1e2324',\n\n// PanelBackground: '#1b2020',\n// PanelBorderTopColor: 'rgba(128, 128, 128, 0.35)',\n\n// SideBarBackground: '#1b2020',\n\n// StatusBarBackground: 'rgb(40, 46, 47)',\n// StatusBarBorderTopColor: '#222222',\n\n// TabActiveBackground: '#24292a',\n// TabInactiveBackground: '#282e2f',\n\n// TitleBarBackground: 'rgb(40, 46, 47)',\n// TitleBarBorderBottomColor: '#222',\n// TitleBarColor: '#cccccc',\n// TitleBarColorInactive: 'rgba(204, 204, 204, 0.6)',\n// },\n// }) //?.\n// }\n","import * as Command from '../Command/Command.js'\nimport * as ColorThemeFromJson from './ColorThemeFromJson.js'\n\nexport const __initialize__ = () => {\n Command.register(232, ColorThemeFromJson.createColorThemeFromJson)\n}\n","import * as Command from '../Command/Command.js'\nimport * as RecentlyOpened from './RecentlyOpened.js'\n\nexport const __initialize__ = () => {\n Command.register(5430, RecentlyOpened.getRecentlyOpened)\n Command.register(5432, RecentlyOpened.clearRecentlyOpened)\n Command.register(5433, RecentlyOpened.addToRecentlyOpened)\n Command.register(5434, RecentlyOpened.hydrate)\n}\n","import * as Command from '../Command/Command.js'\nimport * as FileSystem from './FileSystem.js'\n\n// TODO who calls this?\n// TODO how to return value?\n\nexport const __initialize__ = () => {\n Command.register(501, FileSystem.readFile)\n Command.register(502, FileSystem.remove)\n Command.register(503, FileSystem.readDirWithFileTypes)\n}\n\n// TODO maybe no ipc needed for this module\n","import * as SharedProcess from '../SharedProcess/SharedProcess.js'\nimport * as Workspace from '../Workspace/Workspace.js'\n\nexport const findInWorkspace = async (searchTerm) => {\n // TODO ask shared process\n const root = Workspace.state.workspacePath\n const result = await SharedProcess.invoke(\n /* Search.search */ 'Search.search',\n /* folder */ root,\n /* searchTerm */ searchTerm\n )\n return result\n}\n","import * as Command from '../Command/Command.js'\nimport * as FindInWorkspace from './FindInWorkspace.js'\n\nexport const __initialize__ = () => {\n Command.register(5200, FindInWorkspace.findInWorkspace)\n console.log('register command')\n console.log(Command.state.commands)\n}\n","import * as Assert from '../Assert/Assert.js'\nimport * as ExtensionHost from './ExtensionHostCore.js'\nimport * as ExtensionHostManagement from './ExtensionHostManagement.js'\n\nexport const executeDiagnosticProvider = async (editor) => {\n await ExtensionHostManagement.activateByEvent(\n `onDiagnostic:${editor.languageId}`\n )\n const diagnostics = await ExtensionHost.invoke(\n /* ExtensionHost.executeDiagnosticProvider */ 'ExtensionHost.executeDiagnosticProvider',\n /* documentId */ editor.id\n )\n Assert.array(diagnostics)\n return diagnostics\n}\n","import * as ExtensionHostDiagnostics from '../ExtensionHost/ExtensionHostDiagnostic.js'\nimport * as Platform from '../Platform/Platform.js'\nimport * as RendererProcess from '../RendererProcess/RendererProcess.js'\n\nconst getDiagnostics = async (editor) => {\n if (Platform.getPlatform() === 'web') {\n console.info('diagnostics not yet implemented for web')\n return []\n }\n const diagnostics = await ExtensionHostDiagnostics.executeDiagnosticProvider(\n editor\n )\n console.log({ diagnostics })\n return diagnostics\n}\n\nconst getDiagnosticType = (diagnostic) => {\n return diagnostic.type\n}\n\nconst getVisibleDiagnostics = (editor, diagnostics) => {\n const visibleDiagnostics = []\n for (const diagnostic of diagnostics) {\n visibleDiagnostics.push({\n top: (diagnostic.rowIndex - editor.minLineY) * editor.rowHeight,\n left: diagnostic.columnIndex * editor.columnWidth,\n width: 20,\n height: editor.rowHeight,\n type: getDiagnosticType(diagnostic),\n })\n }\n return visibleDiagnostics\n}\n\nconst getScrollBarDiagnostics = (editor, diagnostics) => {\n const scrollBarDecorations = []\n for (const diagnostic of diagnostics) {\n scrollBarDecorations.push({\n top: (diagnostic.rowIndex / editor.lines.length) * editor.height,\n height: 2,\n })\n }\n return scrollBarDecorations\n}\n\nexport const runDiagnostics = async (editor) => {\n // Editor.sync(editor)\n const diagnostics = await getDiagnostics(editor)\n const visibleDiagnostics = getVisibleDiagnostics(editor, diagnostics)\n const scrollBarDiagnostics = getScrollBarDiagnostics(editor, diagnostics)\n // TODO only send visible diagnostics\n RendererProcess.send([\n /* Editor.renderDiagnostics */ 770,\n /* id */ editor.id,\n /* diagnostics */ visibleDiagnostics,\n /* scrollBarDiagnostics */ scrollBarDiagnostics,\n ])\n}\n\nconst runDiagnosticsAll = () => {\n // TODO loop over all editors\n // const editor = Main.state.activeEditor\n // if (!editor) {\n // return\n // }\n // runDiagnostics(editor)\n}\n\nconst onceIdle = (fn) => {\n // TODO treeshake the if/else away in production\n // @ts-ignore\n if (typeof window !== 'undefined' && 'requestIdleCallback' in window) {\n // @ts-ignore\n requestIdleCallback(fn)\n } else {\n setTimeout(fn, 0)\n }\n}\n\nexport const scheduleDiagnosticsAll = () => {\n onceIdle(runDiagnosticsAll)\n}\n\nexport const hydrate = () => {\n // TODO use global event bus to listen to text document changes\n // TODO use debounce with a configurable delay/debounce time specified in settings.json\n // setInterval(scheduleDiagnostics, 1000)\n // setTimeout(scheduleDiagnostics, 1000)\n // TextDocument.map({\n // created: scheduleDiagnosticsAll,\n // changed: scheduleDiagnosticsAll,\n // saved() {},\n // })\n}\n\n// TODO use audio cues for screenreader users,\n// vscode has implemented something recently, maybe can also use this\n//\n// var utterance = new SpeechSynthesisUtterance();\n// utterance.text = \"error on line 10, column 11\";\n// window.speechSynthesis.speak(utterance);\n\n// see also https://tink.uk/using-the-web-speech-api-to-simulate-css-speech-support/\n","import * as Command from '../Command/Command.js'\nimport * as EditorDiagnostics from './EditorDiagnostics.js'\n\nexport const __initialize__ = () => {\n Command.register(8786, EditorDiagnostics.hydrate)\n}\n","import * as ExtensionHost from '../ExtensionHost/ExtensionHostCore.js'\nimport * as ExtensionHostManagement from './ExtensionHostManagement.js'\n\nexport const executePrepareRenameProvider = async (editor, offset) => {\n await ExtensionHostManagement.activateByEvent(`onRename:${editor.languageId}`)\n return ExtensionHost.invoke(\n /* ExtensionHost.prepareRename */ 'ExtensionHostRename.executePrepareRename',\n /* documentId */ editor.id,\n /* offset */ offset\n )\n}\n\nexport const executeRenameProvider = async (editor, offset, newName) => {\n await ExtensionHostManagement.activateByEvent(`onRename:${editor.languageId}`)\n return ExtensionHost.invoke(\n /* ExtensionHost.rename */ 'ExtensionHostRename.executeRename',\n /* documentId */ editor.id,\n /* offset */ offset,\n /* newName */ newName\n )\n}\n","import * as Command from '../Command/Command.js'\nimport * as Editor from '../Editor/Editor.js'\nimport * as EditorPosition from '../EditorCommand/EditorCommandPosition.js'\nimport * as ExtensionHostRename from '../ExtensionHost/ExtensionHostRename.js'\nimport * as RendererProcess from '../RendererProcess/RendererProcess.js'\nimport * as TextDocument from '../TextDocument/TextDocument.js'\n\nexport const state = {\n editor: undefined,\n}\n\nconst prepareRename = async (editor) => {\n const offset = TextDocument.offsetAt(editor, editor.cursor)\n return ExtensionHostRename.executePrepareRenameProvider(editor, offset)\n}\n\nconst rename = (editor, newName) => {\n const offset = TextDocument.offsetAt(editor, editor.cursor)\n return ExtensionHostRename.executeRenameProvider(editor, offset)\n}\n\nexport const open = async (editor) => {\n // TODO handle error and add tests for handled error\n const prepareRenameResult = await prepareRename(editor)\n\n // TODO race condition, what is when editor is closed before promise resolves\n\n if (prepareRenameResult.canRename) {\n const x = EditorPosition.x(editor, editor.cursor)\n const y = EditorPosition.y(editor, editor.cursor)\n // const prepareRenameResult = await prepareRename(editor)\n // console.log({ prepareRenameResult })\n RendererProcess.send([\n /* EditorRename.openWidget */ 4512,\n /* x */ x,\n /* y */ y,\n ])\n } else {\n // TODO also show error when promise rejects\n await Command.execute(\n /* EditorError.show */ 3900,\n /* editor */ editor,\n /* message */ 'You cannot rename this element',\n /* position */ editor.cursor\n )\n }\n}\n\nconst toPositionBasedEdits = (textDocument, edits) => {\n const positionBasedEdits = []\n for (const edit of edits) {\n const start = TextDocument.positionAt(textDocument, edit.offset)\n const end = TextDocument.positionAt(\n textDocument,\n edit.offset + edit.inserted.length - edit.deleted\n )\n positionBasedEdits.push({\n start,\n end,\n inserted: edit.inserted.split('\\n'),\n deleted: [''],\n })\n console.log(edit)\n }\n return positionBasedEdits\n}\n\n// TODO how to best apply workspace edit?\nconst applyWorkspaceEdits = async (editor, workspaceEdits) => {\n if (workspaceEdits.length === 0) {\n return\n }\n const workspaceEdit = workspaceEdits[0]\n const positionBasedEdits = toPositionBasedEdits(\n editor.textDocument,\n workspaceEdit.edits\n )\n Editor.scheduleDocumentAndCursorsSelections(editor, positionBasedEdits)\n}\n\nexport const finish = async (editor) => {\n const newName = await RendererProcess.invoke(/* EditorRename.finish */ 4513)\n console.log('do actual rename', { value: newName })\n // TODO support canceling rename (e.g. when user presses escape)\n const workspaceEdits = await rename(editor, newName)\n await applyWorkspaceEdits(editor, workspaceEdits)\n // console.log({ workspaceEdits })\n // Editor.scheduleDocumentAndSelections(editor)\n // console.log({ workspaceEdits })\n}\n\nexport const abort = () => {\n RendererProcess.send([/* EditorRename.closeWidget */ 4514])\n}\n","import * as Command from '../Command/Command.js'\nimport * as EditorRename from './EditorRename.js'\n\nexport const __initialize__ = () => {\n Command.register(3300, EditorRename.open)\n Command.register(3301, EditorRename.finish)\n Command.register(3302, EditorRename.abort)\n}\n","import * as EditorPosition from '../EditorCommand/EditorCommandPosition.js'\nimport * as RendererProcess from '../RendererProcess/RendererProcess.js'\n\nexport const show = (editor, message, position) => {\n const x = EditorPosition.x(editor, position)\n const y = EditorPosition.y(editor, position)\n RendererProcess.send([\n /* EditorError.show */ 3700,\n /* message */ message,\n /* x */ x,\n /* y */ y,\n ])\n}\n","import * as Command from '../Command/Command.js'\nimport * as EditorError from './EditorError.js'\n\nexport const __initialize__ = () => {\n Command.register(3900, EditorError.show)\n}\n","import * as Command from '../Command/Command.js'\nimport * as Platform from '../Platform/Platform.js'\n\n// TODO should avoid many promises somehow\nconst toFastKeyBinding = async (keyBinding) => {\n const command = await Command.execute(\n /* CommandInfo.getCommandInfo */ 1592,\n /* id */ keyBinding.command\n )\n return {\n ...keyBinding,\n command,\n }\n}\n\n// TODO extension key bindings\n\nexport const getKeyBindings = async () => {\n const assetDir = Platform.getAssetDir()\n const defaultKeyBindings = await Command.execute(\n /* Ajax.getJson */ 270,\n /* url */ `${assetDir}/config/defaultKeyBindings.json`\n )\n const actualKeyBindings = await Promise.all(\n defaultKeyBindings.map(toFastKeyBinding)\n )\n const keyBindings = actualKeyBindings\n return keyBindings\n}\n","import * as Command from '../Command/Command.js'\nimport * as KeyBindingsInitial from './KeyBindingsInitial.js'\n\nexport const __initialize__ = () => {\n Command.register(8961, KeyBindingsInitial.getKeyBindings)\n}\n","import * as Command from '../Command/Command.js'\nimport * as SaveState from './SaveState.js'\n\nexport const __initialize__ = () => {\n Command.register(6661, SaveState.hydrate)\n}\n","import * as ExtensionHost from './ExtensionHostCore.js'\n\nexport const acceptInput = async (text) => {\n await ExtensionHost.invoke(\n /* ExtensionHost.sourceControlAcceptInput */ 'ExtensionHost.sourceControlAcceptInput',\n /* message */ text\n )\n}\n\nexport const getChangedFiles = async () => {\n return ExtensionHost.invoke(\n /* ExtensionHost.sourceControlGetChangedFiles */ 'ExtensionHost.sourceControlGetChangedFiles'\n )\n}\n\nexport const getFileBefore = async (path) => {\n return ExtensionHost.invoke(\n /* SourceControl.getFileBefore */ 'ExtensionHost.sourceControlGetFileBefore',\n /* path */ path\n )\n}\n","import * as ExtensionHostSourceControl from '../ExtensionHost/ExtensionHostSourceControl.js'\nimport * as FileSystem from '../FileSystem/FileSystem.js'\n\n// TODO when accept input is invoked multiple times, it should not lead to errors\n\nexport const name = 'Source Control'\n\nexport const create = () => {\n return {\n merge: [],\n index: [],\n untracked: [],\n workingTree: [],\n disposed: false,\n inputValue: '',\n }\n}\n\nexport const dispose = (state) => {\n return {\n ...state,\n disposed: true,\n }\n}\n\nexport const acceptInput = async (state, text) => {\n state.inputValue = text // TODO avoid side effect here\n await ExtensionHostSourceControl.acceptInput(text)\n return {\n ...state,\n inputValue: '',\n }\n}\n\nconst getChangedFiles = async () => {\n console.info('get changed files')\n const changedFiles = await ExtensionHostSourceControl.getChangedFiles()\n\n console.log({ changedFiles })\n\n return {\n index: [],\n merge: [],\n untracked: [],\n workingTree: changedFiles,\n gitRoot: '',\n }\n}\n\nexport const loadContent = async (state) => {\n const changedFiles = await getChangedFiles()\n return {\n ...state,\n index: changedFiles.index,\n merge: changedFiles.merge,\n untracked: changedFiles.untracked,\n workingTree: changedFiles.workingTree,\n gitRoot: changedFiles.gitRoot,\n }\n}\n\nexport const contentLoaded = async (state) => {\n // TODO\n // await RendererProcess.invoke(\n // /* Viewlet.send */ 3024,\n // /* id */ 'Source Control',\n // /* method */ 'setChangedFiles',\n // /* changedFiles */ state.changedFiles\n // )\n}\n\nexport const handleClick = async (state, index) => {\n const item = state.workingTree[index]\n const absolutePath = `${state.gitRoot}/${item.file}`\n // TODO handle error\n const [fileBefore, fileNow] = await Promise.all([\n ExtensionHostSourceControl.getFileBefore(item.file),\n FileSystem.readFile(absolutePath),\n ])\n const content = `before:\\n${fileBefore}\\n\\n\\nnow:\\n${fileNow}`\n // const content\n // await Main.openRawText(`diff://${absolutePath}`, content, 'plaintext')\n // await Main.openAbsolutePath(absolutePath)\n}\n\nexport const resize = (state, dimensions) => {\n return {\n newState: {\n ...state,\n ...dimensions,\n },\n commands: [],\n }\n}\n\nexport const hasFunctionalRender = true\n\nexport const render = (oldState, newState) => {\n const changes = []\n if (oldState.inputValue !== newState.inputValue) {\n changes.push([\n /* Viewlet.send */ 3024,\n /* id */ 'Source Control',\n /* method */ 'setInputValue',\n /* value */ newState.inputValue,\n ])\n }\n return changes\n}\n","import * as Command from '../Command/Command.js'\nimport * as ViewletSourceControl from './ViewletSourceControl.js'\nimport * as Viewlet from './Viewlet.js'\n\nexport const __initialize__ = () => {\n Command.register(6532, Viewlet.wrapViewletCommand('Source Control',ViewletSourceControl.acceptInput))\n}\n","import * as Command from '../Command/Command.js'\nimport * as ServiceWorker from './ServiceWorker.js'\n\nexport const __initialize__ = () => {\n Command.register(5783, ServiceWorker.hydrate)\n Command.register(5784, ServiceWorker.uninstall)\n}\n","import * as RendererProcess from '../RendererProcess/RendererProcess.js'\nimport * as FileSystem from '../FileSystem/FileSystem.js'\n\nexport const state = {\n uri: '',\n versionId: 0,\n}\n\nconst WIDTH = 170 // TODO how to keep in sync with css?\nconst SPACE = 10\nconst TRIANGLE_OFFSET_TOP = 22\nconst TRIANGLE_HEIGHT = 22\nconst TREE_ITEM_HEIGHT = 22\nconst TOP = TRIANGLE_OFFSET_TOP + (TREE_ITEM_HEIGHT - TRIANGLE_HEIGHT) / 2\n\nexport const show = async (uri, top, left) => {\n try {\n const version = ++state.versionId\n // TODO what to do on web? probably need to create blob url\n // or use https url for external images\n const blobUrl = await FileSystem.getBlobUrl(uri)\n if (version !== state.versionId) {\n return\n }\n await RendererProcess.invoke(\n /* Viewlet.hydrate */ 3028,\n /* id */ 'ImagePreview',\n /* imageUrl */ blobUrl,\n /* top */ top - TOP,\n /* left */ left - WIDTH - SPACE\n )\n } catch (error) {\n console.error(error)\n await RendererProcess.invoke(\n /* Viewlet.hydrate */ 3028,\n /* id */ 'ImagePreview',\n /* message */ 'Image could not be loaded',\n /* top */ top - TOP,\n /* left */ left - WIDTH - SPACE\n )\n }\n}\n\nexport const hide = async () => {\n ++state.versionId\n await RendererProcess.invoke(\n /* Viewlet.dispose */ 3026,\n /* id */ 'ImagePreview'\n )\n}\n","import * as Command from '../Command/Command.js'\nimport * as ImagePreview from './ImagePreview.js'\n\n// TODO only use ImagePreview module via ipc -> that way is is always lazyloaded\n\nexport const __initialize__ = () => {\n Command.register(9081, ImagePreview.show)\n Command.register(9082, ImagePreview.hide)\n}\n","/**\n * base64.ts\n *\n * Licensed under the BSD 3-Clause License.\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * References:\n * http://en.wikipedia.org/wiki/Base64\n *\n * @author Dan Kogai (https://github.com/dankogai)\n */\nconst version = '3.7.2';\n/**\n * @deprecated use lowercase `version`.\n */\nconst VERSION = version;\nconst _hasatob = typeof atob === 'function';\nconst _hasbtoa = typeof btoa === 'function';\nconst _hasBuffer = typeof Buffer === 'function';\nconst _TD = typeof TextDecoder === 'function' ? new TextDecoder() : undefined;\nconst _TE = typeof TextEncoder === 'function' ? new TextEncoder() : undefined;\nconst b64ch = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nconst b64chs = Array.prototype.slice.call(b64ch);\nconst b64tab = ((a) => {\n let tab = {};\n a.forEach((c, i) => tab[c] = i);\n return tab;\n})(b64chs);\nconst b64re = /^(?:[A-Za-z\\d+\\/]{4})*?(?:[A-Za-z\\d+\\/]{2}(?:==)?|[A-Za-z\\d+\\/]{3}=?)?$/;\nconst _fromCC = String.fromCharCode.bind(String);\nconst _U8Afrom = typeof Uint8Array.from === 'function'\n ? Uint8Array.from.bind(Uint8Array)\n : (it, fn = (x) => x) => new Uint8Array(Array.prototype.slice.call(it, 0).map(fn));\nconst _mkUriSafe = (src) => src\n .replace(/=/g, '').replace(/[+\\/]/g, (m0) => m0 == '+' ? '-' : '_');\nconst _tidyB64 = (s) => s.replace(/[^A-Za-z0-9\\+\\/]/g, '');\n/**\n * polyfill version of `btoa`\n */\nconst btoaPolyfill = (bin) => {\n // console.log('polyfilled');\n let u32, c0, c1, c2, asc = '';\n const pad = bin.length % 3;\n for (let i = 0; i < bin.length;) {\n if ((c0 = bin.charCodeAt(i++)) > 255 ||\n (c1 = bin.charCodeAt(i++)) > 255 ||\n (c2 = bin.charCodeAt(i++)) > 255)\n throw new TypeError('invalid character found');\n u32 = (c0 << 16) | (c1 << 8) | c2;\n asc += b64chs[u32 >> 18 & 63]\n + b64chs[u32 >> 12 & 63]\n + b64chs[u32 >> 6 & 63]\n + b64chs[u32 & 63];\n }\n return pad ? asc.slice(0, pad - 3) + \"===\".substring(pad) : asc;\n};\n/**\n * does what `window.btoa` of web browsers do.\n * @param {String} bin binary string\n * @returns {string} Base64-encoded string\n */\nconst _btoa = _hasbtoa ? (bin) => btoa(bin)\n : _hasBuffer ? (bin) => Buffer.from(bin, 'binary').toString('base64')\n : btoaPolyfill;\nconst _fromUint8Array = _hasBuffer\n ? (u8a) => Buffer.from(u8a).toString('base64')\n : (u8a) => {\n // cf. https://stackoverflow.com/questions/12710001/how-to-convert-uint8-array-to-base64-encoded-string/12713326#12713326\n const maxargs = 0x1000;\n let strs = [];\n for (let i = 0, l = u8a.length; i < l; i += maxargs) {\n strs.push(_fromCC.apply(null, u8a.subarray(i, i + maxargs)));\n }\n return _btoa(strs.join(''));\n };\n/**\n * converts a Uint8Array to a Base64 string.\n * @param {boolean} [urlsafe] URL-and-filename-safe a la RFC4648 §5\n * @returns {string} Base64 string\n */\nconst fromUint8Array = (u8a, urlsafe = false) => urlsafe ? _mkUriSafe(_fromUint8Array(u8a)) : _fromUint8Array(u8a);\n// This trick is found broken https://github.com/dankogai/js-base64/issues/130\n// const utob = (src: string) => unescape(encodeURIComponent(src));\n// reverting good old fationed regexp\nconst cb_utob = (c) => {\n if (c.length < 2) {\n var cc = c.charCodeAt(0);\n return cc < 0x80 ? c\n : cc < 0x800 ? (_fromCC(0xc0 | (cc >>> 6))\n + _fromCC(0x80 | (cc & 0x3f)))\n : (_fromCC(0xe0 | ((cc >>> 12) & 0x0f))\n + _fromCC(0x80 | ((cc >>> 6) & 0x3f))\n + _fromCC(0x80 | (cc & 0x3f)));\n }\n else {\n var cc = 0x10000\n + (c.charCodeAt(0) - 0xD800) * 0x400\n + (c.charCodeAt(1) - 0xDC00);\n return (_fromCC(0xf0 | ((cc >>> 18) & 0x07))\n + _fromCC(0x80 | ((cc >>> 12) & 0x3f))\n + _fromCC(0x80 | ((cc >>> 6) & 0x3f))\n + _fromCC(0x80 | (cc & 0x3f)));\n }\n};\nconst re_utob = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFFF]|[^\\x00-\\x7F]/g;\n/**\n * @deprecated should have been internal use only.\n * @param {string} src UTF-8 string\n * @returns {string} UTF-16 string\n */\nconst utob = (u) => u.replace(re_utob, cb_utob);\n//\nconst _encode = _hasBuffer\n ? (s) => Buffer.from(s, 'utf8').toString('base64')\n : _TE\n ? (s) => _fromUint8Array(_TE.encode(s))\n : (s) => _btoa(utob(s));\n/**\n * converts a UTF-8-encoded string to a Base64 string.\n * @param {boolean} [urlsafe] if `true` make the result URL-safe\n * @returns {string} Base64 string\n */\nconst encode = (src, urlsafe = false) => urlsafe\n ? _mkUriSafe(_encode(src))\n : _encode(src);\n/**\n * converts a UTF-8-encoded string to URL-safe Base64 RFC4648 §5.\n * @returns {string} Base64 string\n */\nconst encodeURI = (src) => encode(src, true);\n// This trick is found broken https://github.com/dankogai/js-base64/issues/130\n// const btou = (src: string) => decodeURIComponent(escape(src));\n// reverting good old fationed regexp\nconst re_btou = /[\\xC0-\\xDF][\\x80-\\xBF]|[\\xE0-\\xEF][\\x80-\\xBF]{2}|[\\xF0-\\xF7][\\x80-\\xBF]{3}/g;\nconst cb_btou = (cccc) => {\n switch (cccc.length) {\n case 4:\n var cp = ((0x07 & cccc.charCodeAt(0)) << 18)\n | ((0x3f & cccc.charCodeAt(1)) << 12)\n | ((0x3f & cccc.charCodeAt(2)) << 6)\n | (0x3f & cccc.charCodeAt(3)), offset = cp - 0x10000;\n return (_fromCC((offset >>> 10) + 0xD800)\n + _fromCC((offset & 0x3FF) + 0xDC00));\n case 3:\n return _fromCC(((0x0f & cccc.charCodeAt(0)) << 12)\n | ((0x3f & cccc.charCodeAt(1)) << 6)\n | (0x3f & cccc.charCodeAt(2)));\n default:\n return _fromCC(((0x1f & cccc.charCodeAt(0)) << 6)\n | (0x3f & cccc.charCodeAt(1)));\n }\n};\n/**\n * @deprecated should have been internal use only.\n * @param {string} src UTF-16 string\n * @returns {string} UTF-8 string\n */\nconst btou = (b) => b.replace(re_btou, cb_btou);\n/**\n * polyfill version of `atob`\n */\nconst atobPolyfill = (asc) => {\n // console.log('polyfilled');\n asc = asc.replace(/\\s+/g, '');\n if (!b64re.test(asc))\n throw new TypeError('malformed base64.');\n asc += '=='.slice(2 - (asc.length & 3));\n let u24, bin = '', r1, r2;\n for (let i = 0; i < asc.length;) {\n u24 = b64tab[asc.charAt(i++)] << 18\n | b64tab[asc.charAt(i++)] << 12\n | (r1 = b64tab[asc.charAt(i++)]) << 6\n | (r2 = b64tab[asc.charAt(i++)]);\n bin += r1 === 64 ? _fromCC(u24 >> 16 & 255)\n : r2 === 64 ? _fromCC(u24 >> 16 & 255, u24 >> 8 & 255)\n : _fromCC(u24 >> 16 & 255, u24 >> 8 & 255, u24 & 255);\n }\n return bin;\n};\n/**\n * does what `window.atob` of web browsers do.\n * @param {String} asc Base64-encoded string\n * @returns {string} binary string\n */\nconst _atob = _hasatob ? (asc) => atob(_tidyB64(asc))\n : _hasBuffer ? (asc) => Buffer.from(asc, 'base64').toString('binary')\n : atobPolyfill;\n//\nconst _toUint8Array = _hasBuffer\n ? (a) => _U8Afrom(Buffer.from(a, 'base64'))\n : (a) => _U8Afrom(_atob(a), c => c.charCodeAt(0));\n/**\n * converts a Base64 string to a Uint8Array.\n */\nconst toUint8Array = (a) => _toUint8Array(_unURI(a));\n//\nconst _decode = _hasBuffer\n ? (a) => Buffer.from(a, 'base64').toString('utf8')\n : _TD\n ? (a) => _TD.decode(_toUint8Array(a))\n : (a) => btou(_atob(a));\nconst _unURI = (a) => _tidyB64(a.replace(/[-_]/g, (m0) => m0 == '-' ? '+' : '/'));\n/**\n * converts a Base64 string to a UTF-8 string.\n * @param {String} src Base64 string. Both normal and URL-safe are supported\n * @returns {string} UTF-8 string\n */\nconst decode = (src) => _decode(_unURI(src));\n/**\n * check if a value is a valid Base64 string\n * @param {String} src a value to check\n */\nconst isValid = (src) => {\n if (typeof src !== 'string')\n return false;\n const s = src.replace(/\\s+/g, '').replace(/={0,2}$/, '');\n return !/[^\\s0-9a-zA-Z\\+/]/.test(s) || !/[^\\s0-9a-zA-Z\\-_]/.test(s);\n};\n//\nconst _noEnum = (v) => {\n return {\n value: v, enumerable: false, writable: true, configurable: true\n };\n};\n/**\n * extend String.prototype with relevant methods\n */\nconst extendString = function () {\n const _add = (name, body) => Object.defineProperty(String.prototype, name, _noEnum(body));\n _add('fromBase64', function () { return decode(this); });\n _add('toBase64', function (urlsafe) { return encode(this, urlsafe); });\n _add('toBase64URI', function () { return encode(this, true); });\n _add('toBase64URL', function () { return encode(this, true); });\n _add('toUint8Array', function () { return toUint8Array(this); });\n};\n/**\n * extend Uint8Array.prototype with relevant methods\n */\nconst extendUint8Array = function () {\n const _add = (name, body) => Object.defineProperty(Uint8Array.prototype, name, _noEnum(body));\n _add('toBase64', function (urlsafe) { return fromUint8Array(this, urlsafe); });\n _add('toBase64URI', function () { return fromUint8Array(this, true); });\n _add('toBase64URL', function () { return fromUint8Array(this, true); });\n};\n/**\n * extend Builtin prototypes with relevant methods\n */\nconst extendBuiltins = () => {\n extendString();\n extendUint8Array();\n};\nconst gBase64 = {\n version: version,\n VERSION: VERSION,\n atob: _atob,\n atobPolyfill: atobPolyfill,\n btoa: _btoa,\n btoaPolyfill: btoaPolyfill,\n fromBase64: decode,\n toBase64: encode,\n encode: encode,\n encodeURI: encodeURI,\n encodeURL: encodeURI,\n utob: utob,\n btou: btou,\n decode: decode,\n isValid: isValid,\n fromUint8Array: fromUint8Array,\n toUint8Array: toUint8Array,\n extendString: extendString,\n extendUint8Array: extendUint8Array,\n extendBuiltins: extendBuiltins,\n};\n// makecjs:CUT //\nexport { version };\nexport { VERSION };\nexport { _atob as atob };\nexport { atobPolyfill };\nexport { _btoa as btoa };\nexport { btoaPolyfill };\nexport { decode as fromBase64 };\nexport { encode as toBase64 };\nexport { utob };\nexport { encode };\nexport { encodeURI };\nexport { encodeURI as encodeURL };\nexport { btou };\nexport { decode };\nexport { isValid };\nexport { fromUint8Array };\nexport { toUint8Array };\nexport { extendString };\nexport { extendUint8Array };\nexport { extendBuiltins };\n// and finally,\nexport { gBase64 as Base64 };\n","import * as JsBase64 from '../../../../../static/js/js-base64.js'\n\nexport const decode = (encoded) => {\n const decoded = JsBase64.decode(encoded)\n return decoded\n}\n","import * as Command from '../Command/Command.js'\nimport * as Base64 from './Base64.js'\n\nexport const __initialize__ = () => {\n Command.register(7890, Base64.decode)\n}\n","function loadImage(src, crossOrigin) {\n return new Promise(function(resolve, reject) {\n var img = new Image();\n if (crossOrigin) {\n img.crossOrigin = crossOrigin;\n }\n img.onload = function() {\n resolve(img);\n };\n img.onerror = reject;\n img.src = src;\n });\n}\nfunction imgToCanvas(img) {\n var canvas = document.createElement(\"canvas\");\n canvas.width = img.width;\n canvas.height = img.height;\n var context = canvas.getContext(\"2d\");\n context.drawImage(img, 0, 0, img.width, img.height, 0, 0, img.width, img.height);\n return canvas;\n}\nfunction createBlob(parts, properties) {\n parts = parts || [];\n properties = properties || {};\n if (typeof properties === \"string\") {\n properties = {type: properties};\n }\n try {\n return new Blob(parts, properties);\n } catch (e) {\n if (e.name !== \"TypeError\") {\n throw e;\n }\n var Builder = typeof BlobBuilder !== \"undefined\" ? BlobBuilder : typeof MSBlobBuilder !== \"undefined\" ? MSBlobBuilder : typeof MozBlobBuilder !== \"undefined\" ? MozBlobBuilder : WebKitBlobBuilder;\n var builder = new Builder();\n for (var i = 0; i < parts.length; i += 1) {\n builder.append(parts[i]);\n }\n return builder.getBlob(properties.type);\n }\n}\nfunction createObjectURL(blob) {\n return (typeof URL !== \"undefined\" ? URL : webkitURL).createObjectURL(blob);\n}\nfunction revokeObjectURL(url) {\n return (typeof URL !== \"undefined\" ? URL : webkitURL).revokeObjectURL(url);\n}\nfunction blobToBinaryString(blob) {\n return new Promise(function(resolve, reject) {\n var reader = new FileReader();\n var hasBinaryString = typeof reader.readAsBinaryString === \"function\";\n reader.onloadend = function() {\n var result = reader.result || \"\";\n if (hasBinaryString) {\n return resolve(result);\n }\n resolve(arrayBufferToBinaryString(result));\n };\n reader.onerror = reject;\n if (hasBinaryString) {\n reader.readAsBinaryString(blob);\n } else {\n reader.readAsArrayBuffer(blob);\n }\n });\n}\nfunction base64StringToBlob(base64, type) {\n var parts = [binaryStringToArrayBuffer(atob(base64))];\n return type ? createBlob(parts, {type}) : createBlob(parts);\n}\nfunction binaryStringToBlob(binary, type) {\n return base64StringToBlob(btoa(binary), type);\n}\nfunction blobToBase64String(blob) {\n return blobToBinaryString(blob).then(btoa);\n}\nfunction dataURLToBlob(dataURL) {\n var type = dataURL.match(/data:([^;]+)/)[1];\n var base64 = dataURL.replace(/^[^,]+,/, \"\");\n var buff = binaryStringToArrayBuffer(atob(base64));\n return createBlob([buff], {type});\n}\nfunction blobToDataURL(blob) {\n return blobToBase64String(blob).then(function(base64String) {\n return \"data:\" + blob.type + \";base64,\" + base64String;\n });\n}\nfunction imgSrcToDataURL(src, type, crossOrigin, quality) {\n type = type || \"image/png\";\n return loadImage(src, crossOrigin).then(imgToCanvas).then(function(canvas) {\n return canvas.toDataURL(type, quality);\n });\n}\nfunction canvasToBlob(canvas, type, quality) {\n if (typeof canvas.toBlob === \"function\") {\n return new Promise(function(resolve) {\n canvas.toBlob(resolve, type, quality);\n });\n }\n return Promise.resolve(dataURLToBlob(canvas.toDataURL(type, quality)));\n}\nfunction imgSrcToBlob(src, type, crossOrigin, quality) {\n type = type || \"image/png\";\n return loadImage(src, crossOrigin).then(imgToCanvas).then(function(canvas) {\n return canvasToBlob(canvas, type, quality);\n });\n}\nfunction arrayBufferToBlob(buffer, type) {\n return createBlob([buffer], type);\n}\nfunction blobToArrayBuffer(blob) {\n return new Promise(function(resolve, reject) {\n var reader = new FileReader();\n reader.onloadend = function() {\n var result = reader.result || new ArrayBuffer(0);\n resolve(result);\n };\n reader.onerror = reject;\n reader.readAsArrayBuffer(blob);\n });\n}\nfunction arrayBufferToBinaryString(buffer) {\n var binary = \"\";\n var bytes = new Uint8Array(buffer);\n var length = bytes.byteLength;\n var i = -1;\n while (++i < length) {\n binary += String.fromCharCode(bytes[i]);\n }\n return binary;\n}\nfunction binaryStringToArrayBuffer(binary) {\n var length = binary.length;\n var buf = new ArrayBuffer(length);\n var arr = new Uint8Array(buf);\n var i = -1;\n while (++i < length) {\n arr[i] = binary.charCodeAt(i);\n }\n return buf;\n}\nexport {arrayBufferToBinaryString, arrayBufferToBlob, base64StringToBlob, binaryStringToArrayBuffer, binaryStringToBlob, blobToArrayBuffer, blobToBase64String, blobToBinaryString, blobToDataURL, canvasToBlob, createBlob, createObjectURL, dataURLToBlob, imgSrcToBlob, imgSrcToDataURL, revokeObjectURL};\nexport default null;\n","import * as BlobUtil from '../../../../../static/js/blob-util.js'\n\nexport const base64StringToBlob = (base64String) => {\n return BlobUtil.base64StringToBlob(base64String)\n}\n","import * as Command from '../Command/Command.js'\nimport * as Blob from './Blob.js'\n\nexport const __initialize__ = () => {\n Command.register(4356, Blob.base64StringToBlob)\n}\n","import * as Command from '../Command/Command.js'\nimport * as Open from './Open.js'\n\nexport const __initialize__ = () => {\n Command.register(1370, Open.openNativeFolder)\n}\n","import * as RendererProcess from '../RendererProcess/RendererProcess.js'\n\nexport const playBell = async () => {\n const src = '/sounds/bell.oga'\n await RendererProcess.invoke(/* Audio.play */ 3211, /* src */ src)\n}\n","import * as Command from '../Command/Command.js'\nimport * as Audio from './Audio.js'\n\nexport const __initialize__ = () => {\n Command.register(4444, Audio.playBell)\n}\n","import * as Command from '../Command/Command.js'\nimport * as GlobalEventBus from '../GlobalEventBus/GlobalEventBus.js'\nimport * as Layout from '../Layout/Layout.js'\nimport * as LifeCycle from '../LifeCycle/LifeCycle.js'\nimport * as ViewletManager from '../ViewletManager/ViewletManager.js'\nimport * as Viewlet from './Viewlet.js'\nimport * as Assert from '../Assert/Assert.js'\n\nexport const create = (id, uri, left, top, width, height) => {\n return {\n currentViewletId: '',\n left,\n top,\n width,\n height,\n }\n}\n\nexport const loadContent = async (state) => {\n const currentViewletId = await getSideBarViewlet()\n return {\n ...state,\n currentViewletId,\n }\n}\n\nexport const loadContentEffects = () => {\n LifeCycle.once(LifeCycle.PHASE_TWELVE, hydrateLazy)\n GlobalEventBus.addListener('Layout.hideSideBar', handleSideBarClose)\n}\n\nexport const contentLoaded = async (state) => {\n if (state.currentViewletId) {\n await openViewlet(state, state.currentViewletId)\n }\n}\n\nconst getSideBarViewlet = async () => {\n const cachedViewlet = await Command.execute(\n /* LocalStorage.getItem */ 6902,\n /* key */ 'sideBarPanel'\n )\n if (cachedViewlet) {\n return cachedViewlet\n }\n\n // TODO what if explorer has been deactivated\n // probably need to check activity bar items\n // but activity bar already has a dependency on sidebar\n return 'Explorer'\n}\n\nconst hydrateLazy = () => () => {\n // TODO update file icons in explorer\n}\n\nconst SIDE_BAR_TITLE_AREA_HEIGHT = 35\n\n// TODO add test for this\nexport const showOrHideViewlet = async (state, viewletId) => {\n Assert.object(state)\n Assert.string(viewletId)\n if (Layout.isSideBarVisible()) {\n // TODO don't depend on sidebar directly\n if (state.currentViewletId === viewletId) {\n await Layout.hideSideBar()\n } else {\n state.currentViewletId = viewletId\n await openViewlet(state, viewletId)\n }\n } else {\n console.log('show side bar')\n state.currentViewletId = viewletId\n // TODO race condition: what if sidebar should be hidden again\n // while sidebar is opening?\n await Layout.showSideBar()\n }\n}\n\nconst getContentDimensions = (dimensions) => {\n return {\n left: dimensions.left,\n top: dimensions.top + SIDE_BAR_TITLE_AREA_HEIGHT,\n width: dimensions.width,\n height: dimensions.height - SIDE_BAR_TITLE_AREA_HEIGHT,\n }\n}\n\n// TODO no default parameter -> monomorphism\nexport const openViewlet = async (state, id, focus = false) => {\n console.assert(typeof id === 'string')\n // if (state.currentViewletId) {\n // console.log('dispose current viewlet', state.currentViewletId)\n // Viewlet.dispose(state.currentViewletId)\n // }\n // state.currentViewletId = id\n const childDimensions = getContentDimensions(state)\n // TODO race condition (check if disposed after created)\n const viewlet = ViewletManager.create(\n ViewletManager.getModule,\n id,\n 'SideBar',\n 'builtin://',\n childDimensions.left,\n childDimensions.top,\n childDimensions.width,\n childDimensions.height\n )\n\n // if (state.currentViewletId !== id) {\n // console.log('return')\n\n // return\n // }\n // // TODO activity and sidebar changes should ideally be rendered at the same time\n // // but this works for now\n // RendererProcess.send([\n // /* Viewlet.appendViewlet */ 3029,\n // /* parentId */ 'SideBar',\n // /* childId */ id,\n // /* focus */ focus,\n // ])\n GlobalEventBus.emitEvent('SideBar.viewletChange', id)\n // await Viewlet.refresh(id)\n // TODO add keybinding to title\n // @ts-ignore\n await ViewletManager.load(viewlet, focus)\n}\n\nconst handleSideBarClose = (state) => {\n state.currentViewletId = ''\n}\n\nexport const dispose = (state) => {\n // state.currentViewletId = undefined\n}\n\nexport const openDefaultViewlet = async (state) => {\n await openViewlet(state, 'Explorer')\n}\n\nexport const close = (state) => {\n if (state.currentViewletId) {\n Viewlet.dispose(state.currentViewletId)\n }\n state.currentViewletId = undefined\n // RendererProcess.send([/* sideBarHide */ 5552, /* id */ id])\n}\n\nexport const resize = (state, dimensions) => {\n const childDimensions = getContentDimensions(dimensions)\n const commands = Viewlet.resize(state.currentViewletId, childDimensions)\n return {\n newState: {\n ...state,\n ...dimensions,\n },\n commands,\n }\n}\n","import * as Command from '../Command/Command.js'\nimport * as ViewletSideBar from './ViewletSideBar.js'\nimport * as Viewlet from './Viewlet.js'\n\nexport const __initialize__ = () => {\n Command.register(553, Viewlet.wrapViewletCommand('SideBar', ViewletSideBar.showOrHideViewlet))\n Command.register(554, Viewlet.wrapViewletCommand('SideBar', ViewletSideBar.openViewlet))\n}\n","import * as Id from '../Id/Id.js'\nimport * as Assert from '../Assert/Assert.js'\n\nexport const state = Object.create(null)\n\nexport const register = (listener) => {\n const id = Id.create()\n state[id] = listener\n return id\n}\n\nexport const execute = (id, ...args) => {\n Assert.number(id)\n const listener = state[id]\n if (!listener) {\n console.warn(`listener with id ${id} not found`)\n return\n }\n return listener(...args)\n}\n\nexport const unregister = (id) => {\n delete state[id]\n}\n","import * as ExtensionHost from './ExtensionHostCore.js'\nimport * as Listener from '../Listener/Listener.js'\nimport * as Platform from '../Platform/Platform.js'\nimport * as ExtensionHostManagement from './ExtensionHostManagement.js'\n\nexport const state = {\n changeListeners: [],\n}\n\nconst getStatusBarItemsFromExtension = (extension) => {\n if (!extension.statusBarItems) {\n return []\n }\n return extension.statusBarItems\n}\n\nconst getStatusBarItemsFromExtensions = (extensions) => {\n return extensions.flatMap(getStatusBarItemsFromExtension)\n}\n\nexport const getStatusBarItems = async () => {\n if (Platform.getPlatform() === 'web') {\n return []\n }\n await ExtensionHostManagement.activateByEvent('onStatusBarItem')\n const statusBarItems = await ExtensionHost.invoke(\n /* ExtensionHost.getStatusBarItems */ 'ExtensionHost.getStatusBarItems'\n )\n return statusBarItems\n}\n\n// TODO add function to dispose listener\nexport const onChange = async (listener) => {\n const id = Listener.register(listener)\n await ExtensionHost.invoke(\n /* ExtensionHostStatusBar.registerChangeListener */ 'ExtensionHostStatusBar.registerChangeListener',\n /* id */ id\n )\n}\n","import * as ExtensionHostStatusBarItems from '../ExtensionHost/ExtensionHostStatusBarItems.js'\n\nexport const name = 'Status Bar'\n\nexport const create = () => {\n return {\n statusBarItemsLeft: [],\n statusBarItemsRight: [],\n }\n}\n\nconst toUiStatusBarItem = (extensionHostStatusBarItem) => {\n return {\n name: extensionHostStatusBarItem.id,\n text: extensionHostStatusBarItem.id,\n tooltip: '',\n command: -1,\n icon: extensionHostStatusBarItem.icon || '',\n }\n}\n\nexport const loadContent = async (state) => {\n const extensionStatusBarItems =\n await ExtensionHostStatusBarItems.getStatusBarItems()\n\n const uiStatusBarItems = extensionStatusBarItems.map(toUiStatusBarItem)\n return {\n ...state,\n statusBarItemsLeft: [\n // {\n // name: 'RunTests',\n // text: 'Run Tests',\n // tooltip: '',\n // command: 909021,\n // },\n ...uiStatusBarItems,\n ],\n }\n}\n\nexport const contentLoaded = async (state) => {}\n\nexport const updateStatusBarItems = async (state) => {\n const newState = await loadContent(state)\n return newState\n}\n\nexport const contentLoadedEffects = (state) => {\n // TODO dispose listener\n const handleChange = async () => {\n if (state.disposed) {\n return\n }\n await updateStatusBarItems(state)\n console.log('status bar items changed')\n }\n // maybe return cleanup function from here like react hooks\n ExtensionHostStatusBarItems.onChange(handleChange)\n}\n\nconst updateArray = (items, newItem) => {\n const index = getIndex(items, newItem)\n const before = items.slice(0, index)\n const after = items.slice(index + 1)\n return [...before, newItem, ...after]\n}\n\nexport const itemLeftCreate = (state, name, text, tooltip) => {\n const newItem = {\n name,\n text,\n tooltip,\n }\n const statusBarItemsLeft = [...state.statusBarItemsLeft, newItem]\n return {\n ...state,\n statusBarItemsLeft,\n }\n}\n\nconst getIndex = (items, item) => {\n for (let i = 0; i < items.length; i++) {\n if (items[i].name === item.name) {\n return i\n }\n }\n return -1\n}\n\nexport const itemLeftUpdate = (state, newItem) => {\n return {\n ...state,\n statusBarItemsLeft: updateArray(state.statusBarItemsLeft, newItem),\n }\n}\n\nexport const itemRightCreate = (state, newItem) => {\n const statusBarItemsRight = [...state.statusBarItemsRight, newItem]\n return {\n ...state,\n statusBarItemsRight,\n }\n}\n\nexport const itemRightUpdate = (state, newItem) => {\n return {\n ...state,\n statusBarItemsRight: updateArray(state.statusBarItemsRight, newItem),\n }\n}\n\nexport const handleClick = (name) => {\n // sendExtensionWorker([/* statusBarItemHandleClick */ 7657, /* name */ name])\n}\n\nexport const resize = (state, dimensions) => {\n return {\n newState: {\n ...state,\n ...dimensions,\n },\n commands: [],\n }\n}\n\nexport const hasFunctionalRender = true\n\nexport const render = (oldState, newState) => {\n const changes = []\n if (\n oldState.statusBarItemsLeft !== newState.statusBarItemsLeft ||\n oldState.statusBarItemsRight !== newState.statusBarItemsRight\n ) {\n changes.push([\n /* Viewlet.invoke */ 3024,\n /* id */ 'StatusBar',\n /* method */ 'setItems',\n /* statusBarItemsLeft */ newState.statusBarItemsLeft,\n /* statusBarItemsRight */ newState.statusBarItemsRight,\n ])\n }\n return changes\n}\n","import * as Command from '../Command/Command.js'\nimport * as Viewlet from '../Viewlet/Viewlet.js'\nimport * as ViewletStatusBar from './ViewletStatusBar.js'\n\nexport const __initialize__ = () => {\n Command.register(2260, Viewlet.wrapViewletCommand('StatusBar', ViewletStatusBar.updateStatusBarItems))\n}\n","import * as Command from '../Command/Command.js'\nimport * as Listener from './Listener.js'\n\n\nexport const __initialize__ = () => {\n Command.register(3444, Listener.execute)\n}\n","import * as SharedProcess from '../SharedProcess/SharedProcess.js'\nimport * as RendererProcess from '../RendererProcess/RendererProcess.js'\nimport * as Command from '../Command/Command.js'\nimport * as Workspace from '../Workspace/Workspace.js'\n\n// TODO maybe create should have a container as param like vscode?\n// maybe not?\n\n// const toList = ([fileName, previews]) => [\n// {\n// type: 'fileName',\n// text: `file: ${fileName}`,\n// },\n// ...previews.map(({ preview }) => ({\n// type: 'preview',\n// text: preview,\n// })),\n// ]\n\nconst SEARCH_ORDER_FILE_NAMES = 1\n\nexport const name = 'Search'\n\nexport const create = () => {\n return {\n searchResults: [],\n stats: {},\n searchId: -1,\n value: '',\n disposed: false,\n fileCount: 0,\n }\n}\n\nexport const loadContent = async (state) => {\n return state\n}\n\nexport const contentLoaded = async () => {}\n\nexport const setValue = (state, value) => {\n state.value = value\n // TODO use Id module\n state.searchId = Math.random()\n SharedProcess.send(\n /* Search.search */ 907771,\n /* id */ state.id,\n /* searchId */ state.searchId\n )\n}\n\nexport const handleResult = async (state, result) => {\n if (result.version !== state.version) {\n return\n }\n await RendererProcess.invoke(\n /* viewletInvoke */ 3024,\n /* id */ state.id,\n /* method */ 'handleSearchResult',\n /* result */ result\n )\n}\n\nexport const dispose = async (state) => {\n // TODO cancel pending search\n if (state.state === 'searching') {\n // TODO this should be invoke\n await SharedProcess.invoke(\n /* Search.cancel */ 'Search.cancel',\n /* searchId */ state.searchId\n )\n }\n return {\n ...state,\n disposed: true,\n }\n}\n\nconst getPath = (result) => {\n return result[0]\n}\n\nconst compareResults = (resultA, resultB) => {\n const pathA = getPath(resultA)\n const pathB = getPath(resultB)\n return pathA.localeCompare(pathB)\n}\n\nconst toDisplayResults = (results) => {\n results.sort(compareResults)\n const displayResults = []\n for (const result of results) {\n const path = getPath(result)\n const absolutePath = Workspace.getAbsolutePath(path)\n displayResults.push({\n path: absolutePath,\n name: path,\n })\n }\n return displayResults\n}\n\nexport const handleInput = async (state, value) => {\n // TODO support streaming results\n // TODO support cancellation\n // TODO handle error\n // TODO use command.execute or use module directly?\n const results = await Command.execute(\n /* FindInWorkspace.findInWorkspace */ 5200,\n /* searchTerm */ value\n )\n // TODO send results to renderer process\n // TODO use virtual list because there might be many results\n console.log({\n value,\n results,\n })\n\n // TODO implement virtual list, only send visible items to renderer process\n\n // TODO maybe rename to result.items and result.stats\n const displayResults = toDisplayResults(results.results)\n return {\n ...state,\n searchResults: displayResults,\n fileCount: results.results.length, // TODO this is weird\n }\n}\n\nexport const handleClick = async (state, index) => {\n const searchResult = state.searchResults[index]\n console.log({ searchResult })\n await Command.execute(/* Main.openUri */ 97, /* uri */ searchResult.path)\n}\n\nexport const resize = (state, dimensions) => {\n return {\n newState: {\n ...state,\n ...dimensions,\n },\n commands: [],\n }\n}\n\nexport const hasFunctionalRender = true\n\nexport const render = (oldState, newState) => {\n console.log('RENDER')\n const changes = []\n if (oldState.searchResults !== newState.searchResults) {\n changes.push([\n /* viewletSend */ 3024,\n /* id */ 'Search',\n /* method */ 'setResults',\n /* results */ newState.searchResults,\n /* resultCount */ newState.searchResults.length,\n /* fileCount */ newState.fileCount,\n ])\n }\n return changes\n}\n","import * as Command from '../Command/Command.js'\nimport * as ViewletSearch from './ViewletSearch.js'\nimport * as Viewlet from './Viewlet.js'\n\nexport const __initialize__ = () => {\n Command.register(9444, Viewlet.wrapViewletCommand('Search', ViewletSearch.handleInput))\n Command.register(9445, Viewlet.wrapViewletCommand('Search', ViewletSearch.handleClick))\n}\n","import * as ExtensionHost from './ExtensionHostCore.js'\nimport * as ExtensionHostManagement from './ExtensionHostManagement.js'\n\nexport const executeCompletionProvider = async (editor, offset) => {\n await ExtensionHostManagement.activateByEvent(\n `onCompletion:${editor.languageId}`\n )\n return ExtensionHost.invoke(\n /* ExtensionHostCompletion.execute */ 'ExtensionHostCompletion.execute',\n /* textDocumentId */ editor.id,\n /* offset */ offset\n )\n}\n","import * as Command from '../Command/Command.js'\nimport * as EditorPosition from '../EditorCommand/EditorCommandPosition.js'\nimport * as ExtensionHostCompletion from '../ExtensionHost/ExtensionHostCompletion.js'\nimport * as TextDocument from '../TextDocument/TextDocument.js'\nimport * as Viewlet from '../Viewlet/Viewlet.js'\nimport * as IconTheme from '../IconTheme/IconTheme.js'\n\nexport const create = (id, uri, top, left, width, height) => {\n console.log({ id, uri, top, left, width, height })\n return {\n completionItems: [],\n focusedIndex: 0,\n isOpened: false,\n openingReason: 0,\n editor: undefined,\n abortController: new AbortController(),\n rowIndex: 0,\n columnIndex: 0,\n leadingWord: '',\n loadingTimeout: -1,\n filteredCompletionItems: [],\n visibleItems: [],\n x: 0,\n y: 0,\n }\n}\n\n// TODO possible to do this with events/state machine instead of promises -> enables canceling operations / concurrent calls\nconst getCompletions = async (editor) => {\n // Editor.sync(editor)\n const offset = TextDocument.offsetAt(editor, editor.cursor)\n const completions = await ExtensionHostCompletion.executeCompletionProvider(\n editor,\n offset\n )\n return completions\n}\n\nconst filterCompletionItems = (completionItems, word) => {\n const includesWord = (completionItem) => {\n return completionItem.label.includes(word)\n }\n const filteredCompletions = completionItems.filter(includesWord)\n return filteredCompletions\n}\n\nconst getEditor = () => {\n return Viewlet.getState('EditorText')\n}\n\nconst getLabel = (item) => {\n return item.label\n}\n\nconst getIconClassName = (item) => {\n switch (item.kind) {\n case /* Property */ 1:\n return 'IconProperty'\n case 2:\n return 'IconValue'\n case /* Function */ 3:\n return 'IconFunction'\n case /* Variable */ 4:\n return 'IconVariable'\n case /* Keyword */ 5:\n return 'IconKeyword'\n case /* Folder */ 6:\n return IconTheme.getFolderIcon({ name: item.label })\n case /* File */ 7:\n return IconTheme.getFileIcon({ name: item.label })\n default:\n return 'IconDefault'\n }\n}\n\nconst getVisibleItems = (filteredItems) => {\n const visibleItems = []\n for (const filteredItem of filteredItems) {\n visibleItems.push({\n label: getLabel(filteredItem),\n icon: getIconClassName(filteredItem),\n })\n }\n return visibleItems\n // for(const )\n}\n\nexport const loadContent = async (state) => {\n const editor = getEditor()\n const completionItems = await getCompletions(editor)\n const filteredCompletionItems = filterCompletionItems(completionItems, '')\n const x = EditorPosition.x(editor, editor.cursor)\n const y = EditorPosition.y(editor, editor.cursor)\n const visibleItems = getVisibleItems(filteredCompletionItems)\n console.log({ completionItems, filteredCompletionItems, visibleItems })\n return {\n ...state,\n completionItems,\n filteredCompletionItems,\n visibleItems,\n x,\n y,\n }\n}\n\nexport const loadingContent = () => {\n const editor = getEditor()\n console.log('show loading')\n const x = EditorPosition.x(editor, editor.cursor)\n const y = EditorPosition.y(editor, editor.cursor)\n const changes = [\n /* Viewlet.send */ 3024,\n /* id */ 'EditorCompletion',\n /* method */ 'showLoading',\n /* x */ x,\n /* y */ y,\n ]\n return changes\n}\n\nexport const contentLoaded = () => {\n // noop\n}\n\nexport const handleSelectionChange = (state, selectionChanges) => {}\n\nexport const advance = (state, word) => {\n const filteredCompletionItems = filterCompletionItems(\n state.completionItems,\n word\n )\n return {\n ...state,\n filteredCompletionItems,\n }\n}\n\nconst getInsertSnippet = (word, leadingWord) => {\n if (word.startsWith(leadingWord)) {\n return word.slice(leadingWord.length)\n }\n return word\n}\n\nconst select = async (state, completionItem) => {\n const { leadingWord } = state\n const word = completionItem.label\n const snippet = getInsertSnippet(word, leadingWord)\n // TODO type and dispose commands should be sent to renderer process at the same time\n await Command.execute(/* EditorType.editorType */ 345, /* text */ snippet)\n return {\n ...state,\n disposed: true,\n }\n}\n\nexport const selectIndex = (state, index) => {\n const completionItem = state.filteredCompletionItems[index]\n return select(state, completionItem)\n}\n\nexport const focusIndex = (state, index) => {\n return {\n ...state,\n focusedIndex: index,\n }\n}\n\nexport const focusFirst = (state) => {\n return focusIndex(state, 0)\n}\n\nexport const focusLast = (state) => {\n return focusIndex(state, state.completionItems.length - 1)\n}\n\nexport const focusPrevious = (state) => {\n if (state.focusedIndex === 0) {\n return focusLast(state)\n }\n return focusIndex(state, state.focusedIndex - 1)\n}\n\nexport const focusNext = (state) => {\n if (state.focusedIndex === state.completionItems.length - 1) {\n return focusFirst(state)\n }\n return focusIndex(state, state.focusedIndex + 1)\n}\n\nexport const hasFunctionalRender = true\n\nexport const render = (oldState, newState) => {\n const changes = []\n if (oldState.x !== newState.x || oldState.y !== newState.y) {\n changes.push([\n /* Viewlet.send */ 3024,\n /* id */ 'EditorCompletion',\n /* method */ 'setPosition',\n /* x */ newState.x,\n /* y */ newState.y,\n ])\n }\n if (oldState.visibleItems !== newState.visibleItems) {\n changes.push([\n /* Viewlet.send */ 3024,\n /* id */ 'EditorCompletion',\n /* method */ 'setItems',\n /* items */ newState.visibleItems,\n /* reason */ 1,\n ])\n }\n console.log({ changes })\n return changes\n}\n\nexport const dispose = (state) => {\n return {\n ...state,\n disposed: true,\n }\n}\n","import * as Command from '../Command/Command.js'\nimport * as Viewlet from '../Viewlet/Viewlet.js'\nimport * as ViewletEditorCompletion from './ViewletEditorCompletion.js'\n\nexport const __initialize__ = () => {\n Command.register(981, Viewlet.wrapViewletCommand('EditorCompletion', ViewletEditorCompletion.dispose))\n Command.register(982, Viewlet.wrapViewletCommand('EditorCompletion', ViewletEditorCompletion.selectIndex))\n Command.register(983, Viewlet.wrapViewletCommand('EditorCompletion', ViewletEditorCompletion.focusFirst))\n Command.register(984, Viewlet.wrapViewletCommand('EditorCompletion', ViewletEditorCompletion.focusLast))\n Command.register(985, Viewlet.wrapViewletCommand('EditorCompletion', ViewletEditorCompletion.focusNext))\n Command.register(986, Viewlet.wrapViewletCommand('EditorCompletion', ViewletEditorCompletion.focusPrevious))\n Command.register(987, Viewlet.wrapViewletCommand('EditorCompletion', ViewletEditorCompletion.selectCurrent))\n}\n","import * as Command from '../Command/Command.js'\nimport * as IconTheme from '../IconTheme/IconTheme.js'\n\nexport const name = 'Locations'\n\nexport const create = (id, uri) => {\n return {\n references: [],\n message: '',\n displayReferences: [],\n focusedIndex: -1,\n id,\n }\n}\n\nconst getMessage = (resultCount, fileCount) => {\n if (resultCount === 0) {\n return 'No Results'\n }\n if (resultCount === 1 && fileCount === 1) {\n return `1 result in 1 file`\n }\n if (fileCount === 1) {\n return `${resultCount} results in 1 file`\n }\n return `${resultCount} results in ${fileCount} files`\n}\n\nconst getName = (uri) => {\n return uri.slice(uri.lastIndexOf('/') + 1)\n}\n\nconst getDisplayReferences = (references) => {\n const fileMap = Object.create(null)\n const displayReferences = []\n let current = {\n uri: '',\n startOffset: 0,\n endOffset: 0,\n lineText: '',\n }\n let outerPosInSet = 1\n let innerPosInSet = 1\n let fileCount = 0\n let index = 0\n for (const reference of references) {\n if (reference.uri === current.uri) {\n displayReferences.push({\n depth: 2,\n posInSet: innerPosInSet++,\n setSize: 1,\n type: 'leaf',\n uri: '',\n name: '',\n lineText: reference.lineText,\n index: index++,\n })\n } else {\n fileCount++\n current = reference\n innerPosInSet = 1\n const name = getName(reference.uri)\n displayReferences.push({\n depth: 1,\n posInSet: outerPosInSet++,\n setSize: 1,\n type: 'expanded',\n uri: reference.uri,\n name,\n lineText: '',\n icon: IconTheme.getIcon({\n type: 'file',\n path: reference.uri,\n name,\n }),\n index: index++,\n })\n displayReferences.push({\n depth: 2,\n posInSet: innerPosInSet++,\n setSize: 1,\n type: 'leaf',\n uri: '',\n name: '',\n lineText: current.lineText,\n index: index++,\n })\n }\n }\n\n return {\n message: getMessage(references.length, fileCount),\n displayReferences,\n }\n}\n\n// TODO speed up this function by 130% by not running activation event (onReferences) again and again\n// e.g. (21ms activation event, 11ms getReferences) => (11ms getReferences)\nexport const loadContent = async (state, getReferences) => {\n const references = await getReferences()\n const { message, displayReferences } = getDisplayReferences(references)\n return {\n ...state,\n references,\n displayReferences,\n message,\n }\n}\n\nexport const contentLoaded = () => {}\n\nexport const dispose = (state) => {\n return {\n ...state,\n disposed: true,\n }\n}\n\nconst getUri = (state, index) => {\n for (let i = index; i >= 0; i--) {\n if (state.displayReferences[i].depth === 1) {\n return state.displayReferences[i].uri\n }\n }\n return ''\n}\n\nconst selectIndexLead = async (state, index) => {\n const uri = getUri(state, index)\n // TODO open file and jump to line\n await Command.execute(/* Main.openUri */ 97, /* uri */ uri)\n return {\n ...state,\n focusedIndex: index,\n }\n}\n\nconst selectIndexExpanded = (state, index) => {\n // TODO expand\n\n return { ...state, focusedIndex: index }\n}\n\nconst selectIndexCollapsed = (state, index) => {\n // TODO collapse\n\n return { ...state, focusedIndex: index }\n}\n\nexport const selectIndex = (state, index) => {\n const displayReference = state.displayReferences[index]\n switch (displayReference.type) {\n case 'leaf':\n return selectIndexLead(state, index)\n case 'expanded':\n return selectIndexExpanded(state, index)\n case 'collapsed':\n return selectIndexCollapsed(state, index)\n default:\n console.warn(displayReference)\n return state\n }\n}\n\nexport const hasFunctionalRender = true\n\nexport const render = (oldState, newState) => {\n const changes = []\n if (oldState.displayReferences !== newState.displayReferences) {\n // const message =\n changes.push([\n /* Viewlet.invoke */ 3024,\n /* id */ newState.id,\n /* method */ 'setLocations',\n /* references */ newState.displayReferences,\n ])\n }\n if (oldState.message !== newState.message) {\n changes.push([\n /* Viewlet.invoke */ 3024,\n /* id */ newState.id,\n /* method */ 'setMessage',\n /* message */ newState.message,\n ])\n }\n if (oldState.focusedIndex !== newState.focusedIndex) {\n changes.push([\n /* Viewlet.invoke */ 3024,\n /* id */ newState.id,\n /* method */ 'setFocusedIndex',\n /* oldFocusedIndex */ oldState.focusedIndex,\n /* newFocusedIndex */ newState.focusedIndex,\n ])\n }\n return changes\n}\n\nexport const focusIndex = (state, index) => {\n return {\n ...state,\n focusedIndex: index,\n }\n}\n\nexport const focusFirst = (state) => {\n if (state.displayReferences.length === 0) {\n return state\n }\n return focusIndex(state, 0)\n}\n\nexport const focusPrevious = (state) => {\n if (state.focusedIndex === 0 || state.focusedIndex === -1) {\n return state\n }\n return focusIndex(state, state.focusedIndex - 1)\n}\n\nexport const focusNext = (state) => {\n if (state.focusedIndex === state.displayReferences.length - 1) {\n return state\n }\n return focusIndex(state, state.focusedIndex + 1)\n}\n\nexport const focusLast = (state) => {\n if (state.focusedIndex === state.displayReferences.length - 1) {\n return state\n }\n return focusIndex(state, state.displayReferences.length - 1)\n}\n\nexport const selectCurrent = (state) => {\n if (state.focusedIndex === -1) {\n return state\n }\n return selectIndex(state, state.focusedIndex)\n}\n","import * as Command from '../Command/Command.js'\nimport * as ViewletLocations from './ViewletLocations.js'\nimport * as Viewlet from './Viewlet.js'\n\nexport const __initialize__ = () => {\n Command.register(7100, Viewlet.wrapViewletCommand('Locations', ViewletLocations.selectIndex))\n Command.register(7101, Viewlet.wrapViewletCommand('Locations', ViewletLocations.focusFirst))\n Command.register(7102, Viewlet.wrapViewletCommand('Locations', ViewletLocations.focusLast))\n Command.register(7103, Viewlet.wrapViewletCommand('Locations', ViewletLocations.focusNext))\n Command.register(7104, Viewlet.wrapViewletCommand('Locations', ViewletLocations.focusPrevious))\n Command.register(7105, Viewlet.wrapViewletCommand('Locations', ViewletLocations.selectCurrent))\n Command.register(7106, Viewlet.wrapViewletCommand('Locations', ViewletLocations.focusIndex))\n}\n","export const name = 'RunAndDebug'\n\nexport const create = (id) => {\n return {\n id,\n disposed: false,\n }\n}\n\nexport const loadContent = async (state) => {\n return state\n}\n\nexport const contentLoaded = async (state) => {}\n\n// TODO make sure dispose is actually called\nexport const dispose = (state) => {\n return {\n ...state,\n disposed: true,\n }\n}\n\nexport const resize = (state, dimensions) => {\n return {\n newState: {\n ...state,\n ...dimensions,\n },\n commands: [],\n }\n}\n","export const name = 'Debug Console'\n\nexport const create = () => {\n return {\n disposed: false,\n }\n}\n\nexport const loadContent = async (state) => {\n return state\n}\n\nexport const contentLoaded = async (state) => {}\n\nexport const dispose = (state) => {\n return {\n ...state,\n disposed: true,\n }\n}\n","import * as Platform from '../Platform/Platform.js'\nimport * as ExtensionHost from '../ExtensionHost/ExtensionHostCore.js'\n\nexport const getOutputChannels = () => {\n if (Platform.getPlatform() === 'web') {\n return []\n }\n return ExtensionHost.invoke(\n /* ExtensionHostOutput.getOutputChannels */ 'ExtensionHostOutput.getOutputChannels'\n )\n}\n","import * as RendererProcess from '../RendererProcess/RendererProcess.js'\nimport * as SharedProcess from '../SharedProcess/SharedProcess.js'\nimport * as ExtensionHostOutputChannel from '../ExtensionHost/ExtensionHostOutput.js'\n\nexport const name = 'Output'\n\nexport const create = () => {\n return {\n selectedIndex: -1,\n // TODO get list of outputChannels from extension host\n options: [],\n disposed: false,\n }\n}\n\nconst toExtensionHostOption = (outputChannel) => {\n return {\n name: outputChannel.id,\n file: outputChannel.path,\n }\n}\n\nexport const loadContent = async (state) => {\n // TODO get list of outputChannels from extension host\n\n const channels = await ExtensionHostOutputChannel.getOutputChannels()\n const options = [\n {\n name: 'Main',\n file: '/tmp/log-main.txt',\n },\n ...channels.map(toExtensionHostOption),\n ]\n const selectedIndex = 0\n // TODO duplicate send here\n await SharedProcess.invoke(\n /* OutputChannel.open */ 'OutputChannel.open',\n /* id */ 0,\n /* path */ options[selectedIndex].file\n )\n return {\n ...state,\n options,\n selectedIndex,\n }\n}\n\nexport const contentLoaded = async (state) => {\n await RendererProcess.invoke(\n /* Viewlet.invoke */ 3024,\n /* id */ 'Output',\n /* method */ 'setOptions',\n /* options */ state.options,\n /* selectedOptionIndex */ state.selectedIndex\n )\n}\n\nexport const setOutputChannel = async (state, option) => {\n state.selectedOption = option\n // TODO race condition\n await RendererProcess.invoke(\n /* viewletSend */ 3024,\n /* id */ 'Output',\n /* method */ 'clear'\n )\n // TODO race condition\n // TODO should use invoke\n await SharedProcess.invoke(\n /* OutputChannel.open */ 'OutputChannel.open',\n /* id */ 'Output',\n /* path */ state.selectedOption\n )\n}\n\nexport const handleData = async (state, data) => {\n console.log({ handleData: data })\n await RendererProcess.invoke(\n /* Viewlet.invoke */ 3024,\n /* id */ 'Output',\n /* method */ 'append',\n /* data */ data\n )\n}\n\nexport const dispose = async (state) => {\n state.disposed = true\n // TODO close output channel in shared process\n await SharedProcess.invoke(\n /* OutputChannel.close */ 'OutputChannel.close',\n /* id */ 'Output'\n )\n}\n\nexport const openFindWidget = async (state) => {\n // TODO use command.execute instead\n // TODO no lazy import here\n const FindWidget = await import('../FindWidget/FindWidget.js')\n FindWidget.create()\n}\n\nexport const closeFindWidget = async (state) => {\n // const FindWidget = await import('../FindWidget/FindWidget.js')\n // state\n // if(state.findWidget){\n // state.findWidget.dispose()\n // }\n}\n\nexport const handleError = (state, error) => {\n console.error(error)\n}\n","import * as ExtensionHostDiagnostic from '../ExtensionHost/ExtensionHostDiagnostic.js'\nimport * as Viewlet from '../Viewlet/Viewlet.js'\n\nexport const name = 'Problems'\n\nexport const create = () => {\n return {\n problems: [],\n disposed: false,\n }\n}\n\nconst toProblem = (diagnostic) => {\n return diagnostic.message\n}\n\nexport const loadContent = async (state) => {\n const instance = Viewlet.state.instances['EditorText']\n if (!instance) {\n return state\n }\n const editor = instance.state\n const diagnostics = await ExtensionHostDiagnostic.executeDiagnosticProvider(\n editor\n )\n const problems = diagnostics.map(toProblem)\n return {\n ...state,\n problems,\n }\n}\n\nexport const contentLoaded = async (state) => {}\n\nexport const dispose = (state) => {\n return {\n ...state,\n disposed: true,\n }\n}\n\nexport const hasFunctionalRender = true\n\nexport const render = (oldState, newState) => {\n const changes = []\n if (oldState.problems !== newState.problems) {\n changes.push([\n /* Viewlet.invoke */ 3024,\n /* id */ 'Problems',\n /* method */ 'setProblems',\n /* problems */ newState.problems,\n ])\n }\n return changes\n}\n","export const create = (id) => {\n return {\n disposed: false,\n }\n}\n\nexport const loadContent = async (state) => {\n console.log('noop')\n return state\n}\n\nexport const contentLoaded = async (state) => {}\n\nexport const dispose = (state) => {\n return {\n ...state,\n disposed: true,\n }\n}\n","import * as ExtensionHost from './ExtensionHostCore.js'\nimport * as ExtensionHostManagement from './ExtensionHostManagement.js'\nimport * as Platform from '../Platform/Platform.js'\n\nexport const executeSemanticTokenProvider = async (editor) => {\n if (Platform.getPlatform() === 'web') {\n return []\n }\n await ExtensionHostManagement.activateByEvent(\n `onSemanticTokens:${editor.languageId}`\n )\n return ExtensionHost.invoke(\n /* ExtensionHostSemanticTokens.execute */ 'ExtensionHostSemanticTokens.executeSemanticTokenProvider',\n /* textDocumentId */ editor.id\n )\n}\n","import * as TextDocument from '../TextDocument/TextDocument.js'\nimport * as ExtensionHost from './ExtensionHostCore.js'\nimport * as ExtensionHostManagement from '../ExtensionHost/ExtensionHostManagement.js'\n\n// TODO instead of sending full document from\n// shared process to renderer-worker to shared process\n// to extension host, extension host could just read file directly\n// or shared process could send extension host file to open\n// after sending file to renderer process\nexport const handleEditorCreate = async (editor) => {\n await ExtensionHostManagement.ensureExtensionHostIsStarted()\n const text = TextDocument.getText(editor)\n // TODO should use invoke\n await ExtensionHost.invoke(\n /* ExtensionHostTextDocument.syncFull */ 'ExtensionHostTextDocument.syncFull',\n /* uri */ editor.uri,\n /* documentId */ editor.id,\n /* languageId */ editor.languageId,\n /* text */ text\n )\n}\n\nexport const handleEditorChange = async (editor, changes) => {\n await ExtensionHostManagement.ensureExtensionHostIsStarted()\n await ExtensionHost.invoke(\n /* ExtensionHostTextDocument.syncIncremental */ 'ExtensionHostTextDocument.syncIncremental',\n /* textDocumentId */ editor.id,\n /* changes */ changes\n )\n}\n\nexport const handleEditorLanguageChange = async (editor) => {\n await ExtensionHostManagement.ensureExtensionHostIsStarted()\n await ExtensionHost.invoke(\n /* ExtensionHostTextDocument.setLanguageId */ 'ExtensionHostTextDocument.setLanguageId',\n /* textDocumentId */ editor.id,\n /* languageId */ editor.languageId\n )\n}\n","import * as Command from '../Command/Command.js'\nimport * as Editor from '../Editor/Editor.js'\nimport * as ExtensionHostSemanticTokens from '../ExtensionHost/ExtensionHostSemanticTokens.js'\nimport * as ExtensionHostTextDocument from '../ExtensionHost/ExtensionHostTextDocument.js'\nimport * as FileSystem from '../FileSystem/FileSystem.js'\nimport * as GlobalEventBus from '../GlobalEventBus/GlobalEventBus.js'\nimport * as Languages from '../Languages/Languages.js'\nimport * as Preferences from '../Preferences/Preferences.js'\nimport * as Tokenizer from '../Tokenizer/Tokenizer.js'\nimport * as Viewlet from '../Viewlet/Viewlet.js'\n\nconst COLUMN_WIDTH = 9 // TODO compute this automatically once\n\nconst getContent = async (uri) => {\n const content = await FileSystem.readFile(uri)\n return content ?? 'content could not be loaded'\n}\n\n// TODO how to connect this function with tokenizer?\nconst handleTokenizeChange = () => {\n const instances = Viewlet.state.instances\n const instance = instances.EditorText\n if (!instance) {\n console.log('no text editor')\n return\n }\n const state = instance.state\n const tokenizer = Tokenizer.getTokenizer(state.languageId)\n const newState = {\n ...instance.state,\n tokenizer,\n }\n Viewlet.setState('EditorText', newState)\n}\n\n// TODO uri?\nexport const create = (id, uri, left, top, width, height) => {\n const state = Editor.create(1, uri, 'unknown', '')\n const newState = Editor.setBounds(state, top, left, height, COLUMN_WIDTH)\n const languageId = Languages.getLanguageId(uri)\n return {\n ...newState,\n uri,\n rowHeight: 20,\n languageId,\n }\n}\n\nexport const loadContent = async (state) => {\n const rowHeight = Preferences.get('editor.lineHeight') || 20\n const fontSize = Preferences.get('editor.fontSize') || 15 // TODO find out if it is possible to use all numeric values for settings for efficiency, maybe settings could be an array\n const letterSpacing = Preferences.get('editor.letterSpacing') || 0.5\n const languageId = Languages.getLanguageId(state.uri)\n const tokenizer = Tokenizer.getTokenizer(languageId)\n const content = await getContent(state.uri)\n const newState = Editor.setText(state, content)\n return {\n ...newState,\n rowHeight,\n fontSize,\n letterSpacing,\n tokenizer,\n }\n}\n\nexport const contentLoaded = async (state) => {\n // Editor.renderText(state)\n}\n\nconst updateSemanticTokens = async (state) => {\n try {\n const newSemanticTokens =\n await ExtensionHostSemanticTokens.executeSemanticTokenProvider(state)\n await Command.execute(\n /* Editor.setDecorations */ 992,\n /* decorations */ newSemanticTokens\n )\n // TODO apply semantic tokens to editor and rerender\n // TODO possibly overlay semantic tokens as decorations\n } catch (error) {\n if (\n error &&\n error.message.startsWith(\n 'Failed to execute semantic token provider: VError: no semantic token provider found for'\n )\n ) {\n return\n }\n console.error(error)\n }\n}\n\nconst handleEditorChange = async (editor, changes) => {\n await ExtensionHostTextDocument.handleEditorChange(editor, changes)\n // TODO check if semantic highlighting is enabled in settings\n await updateSemanticTokens(editor)\n}\n\nexport const contentLoadedEffects = async (state) => {\n // TODO dispose listener\n // TODO don't like side effect here, where to put it?\n GlobalEventBus.addListener('languages.changed', handleLanguagesChanged)\n GlobalEventBus.addListener('tokenizer.changed', handleTokenizeChange)\n GlobalEventBus.addListener('editor.change', handleEditorChange)\n const newLanguageId = Languages.getLanguageId(state.uri)\n await Command.execute(\n /* Editor.setLanguageId */ 989,\n /* languageId */ newLanguageId\n )\n await ExtensionHostTextDocument.handleEditorCreate(state)\n // TODO check if semantic highlighting is enabled in settings\n await updateSemanticTokens(state)\n GlobalEventBus.emitEvent('editor.create', state)\n}\n\nconst handleLanguagesChanged = async () => {\n const instances = Viewlet.state.instances\n const instance = instances.EditorText\n if (!instance) {\n console.log('no text editor')\n return\n }\n const state = instance.state\n const newLanguageId = Languages.getLanguageId(state.uri)\n state.languageId = newLanguageId\n await ExtensionHostTextDocument.handleEditorLanguageChange(state)\n // if (state.languageId === newLanguageId) {\n // return\n // }\n // await Promise.all([\n // Editor.setLanguageId(state, newLanguageId),\n // ])\n await Command.execute(\n /* Editor.setLanguageId */ 989,\n /* languageId */ newLanguageId\n )\n\n const newEditor = instances.EditorText.state\n console.log({ newEditor })\n\n GlobalEventBus.emitEvent('editor.languageChange', newEditor, newLanguageId)\n // console.log({ state })\n}\n\nexport const resize = (state, dimensions) => {\n const newState = Editor.setBounds(\n state,\n dimensions.top,\n dimensions.left,\n dimensions.height,\n state.columnWidth\n )\n const commands = [Editor.renderTextAndCursorAndSelectionsCommands(newState)]\n return {\n newState,\n commands,\n }\n}\n\nexport const hasFunctionalRender = true\n\nexport const render = (oldState, newState) => {\n return Editor.render(oldState, newState)\n}\n","import * as FileSystem from '../FileSystem/FileSystem.js'\n\nexport const name = 'PlainText'\n\nexport const create = (id, uri, left, top, width, height) => {\n return {\n content: 'abc',\n uri,\n disposed: false,\n }\n}\n\nexport const loadContent = async (state) => {\n const content = await FileSystem.readFile(state.uri)\n return {\n ...state,\n content,\n }\n}\n\nexport const contentLoaded = async (state) => {}\n\nexport const dispose = (state) => {\n return {\n ...state,\n disposed: true,\n }\n}\n\nexport const hasFunctionalRender = true\n\nexport const render = (oldState, newState) => {\n const changes = []\n if (oldState.content !== newState.content) {\n changes.push([\n /* Viewlet.invoke */ 3024,\n /* id */ 'EditorPlainText',\n /* method */ 'setContent',\n /* content */ newState.content,\n ])\n }\n return changes\n}\n","export const name = 'EditorImage'\n\nexport const create = (id, uri, left, top, width, height) => {\n return {\n src: '',\n disposed: false,\n }\n}\n\nexport const loadContent = async (state) => {\n return {\n ...state,\n src: 'abc',\n }\n}\n\nexport const contentLoaded = async (state) => {}\n\nexport const dispose = (state) => {\n return {\n ...state,\n disposed: true,\n }\n}\n\nexport const hasFunctionalRender = true\n\nexport const render = (oldState, newState) => {\n const changes = []\n if (oldState.src !== newState.src) {\n changes.push([\n /* Viewlet.invoke */ 3024,\n /* id */ 'EditorImage',\n /* method */ 'setSrc',\n /* src */ `/remote${newState.src}`,\n ])\n }\n return changes\n}\n","import * as RendererProcess from '../RendererProcess/RendererProcess.js'\n\nexport const name = 'Clock'\n\nexport const create = (id, uri, left, top, width, height) => {\n return {\n id,\n interval: -1,\n disposed: false,\n }\n}\n\nexport const loadContent = (state) => {\n const update = async () => {\n await RendererProcess.invoke(\n /* Viewlet.invoke */ 3024,\n /* id */ state.id,\n /* method */ 'setTime',\n /* time */ Date.now()\n )\n }\n return {\n ...state,\n interval: setInterval(update, 1000),\n }\n}\n\n// TODO use contentLoadedEffects\n\nexport const contentLoaded = async (state) => {}\n\nexport const dispose = (state) => {\n clearInterval(state.interval)\n state.interval = -1\n state.disposed = true\n}\n","import * as TitleBarMenuBar from '../TitleBarMenuBar/TitleBarMenuBar.js'\nimport * as RendererProcess from '../RendererProcess/RendererProcess.js'\n\nexport const name = 'TitleBar'\n\nexport const create = () => {\n return {\n disposed: false,\n titleBarEntries: [],\n }\n}\n\nexport const loadContent = async (state) => {\n const titleBarEntries = await TitleBarMenuBar.getEntries()\n return {\n ...state,\n titleBarEntries,\n }\n}\n\nexport const contentLoaded = async (state) => {\n await RendererProcess.invoke(\n /* Viewlet.send */ 3024,\n /* id */ 'TitleBar',\n /* method */ 'menuSetEntries',\n /* titleBarEntries */ state.titleBarEntries\n )\n}\n\nexport const focus = async () => {\n await TitleBarMenuBar.focus()\n}\n\nexport const dispose = (state) => {\n return {\n ...state,\n disposed: true,\n }\n}\n\nexport const resize = (state, dimensions) => {\n return {\n newState: {\n ...state,\n ...dimensions,\n },\n commands: [],\n }\n}\n","import * as ExtensionHost from './ExtensionHostCore.js'\nimport * as ExtensionHostManagement from './ExtensionHostManagement.js'\n\nexport const executeReferenceProvider = async (editor, offset) => {\n await ExtensionHostManagement.activateByEvent(\n `onReferences:${editor.languageId}`\n )\n return ExtensionHost.invoke(\n /* ExtensionHost.executeReferenceProvider */ 'ExtensionHostReferences.executeReferenceProvider',\n /* textDocumentId */ editor.id,\n /* offset */ offset\n )\n}\n","import * as ExtensionHostReferences from '../ExtensionHost/ExtensionHostReference.js'\nimport * as TextDocument from '../TextDocument/TextDocument.js'\nimport * as Viewlet from '../Viewlet/Viewlet.js'\nimport * as ViewletLocations from './ViewletLocations.js'\n\nconst getReferences = async () => {\n const editor = Viewlet.state.instances['EditorText'].state\n const offset = TextDocument.offsetAt(editor, editor.cursor)\n const references = await ExtensionHostReferences.executeReferenceProvider(\n editor,\n offset\n )\n return references\n}\n\nexport const name = 'References'\n\nexport const create = ViewletLocations.create\n\n// TODO speed up this function by 130% by not running activation event (onReferences) again and again\n// e.g. (21ms activation event, 11ms getReferences) => (11ms getReferences)\nexport const loadContent = async (state) => {\n return ViewletLocations.loadContent(state, getReferences)\n}\n\n// TODO side effect is not good here, find a way to call ViewletLocations\nexport const contentLoaded = (state) => {\n Viewlet.state.instances['Locations'] = {\n factory: ViewletLocations,\n state,\n }\n}\n\nexport const dispose = ViewletLocations.dispose\n\nexport const hasFunctionalRender = ViewletLocations.hasFunctionalRender\n\nexport const render = ViewletLocations.render\n","import * as ExtensionHost from './ExtensionHostCore.js'\nimport * as ExtensionHostManagement from './ExtensionHostManagement.js'\n\nexport const executeImplementationProvider = async (editor, offset) => {\n await ExtensionHostManagement.activateByEvent(\n `onImplementation:${editor.languageId}`\n )\n return ExtensionHost.invoke(\n /* ExtensionHost.executeImplementationProvider */ 'ExtensionHostImplementation.executeImplementationProvider',\n /* textDocumentId */ editor.id,\n /* offset */ offset\n )\n}\n","import * as ExtensionHostImplementation from '../ExtensionHost/ExtensionHostImplementation.js'\nimport * as TextDocument from '../TextDocument/TextDocument.js'\nimport * as Viewlet from '../Viewlet/Viewlet.js'\nimport * as ViewletLocations from './ViewletLocations.js'\n\nexport const name = 'Implementations'\n\n// TODO speed up this function by 130% by not running activation event (onReferences) again and again\n// e.g. (21ms activation event, 11ms getReferences) => (11ms getReferences)\nconst getImplementations = async () => {\n const editor = Viewlet.state.instances['EditorText'].state\n const offset = TextDocument.offsetAt(editor, editor.cursor)\n const implementations =\n await ExtensionHostImplementation.executeImplementationProvider(\n editor,\n offset\n )\n console.log({ implementations })\n return implementations\n}\n\nexport const create = ViewletLocations.create\n\nexport const loadContent = async (state) => {\n return ViewletLocations.loadContent(state, getImplementations)\n}\n\nexport const contentLoaded = (state) => {\n Viewlet.state.instances['Locations'] = {\n factory: ViewletLocations,\n state,\n }\n}\n\nexport const dispose = ViewletLocations.dispose\n\nexport const hasFunctionalRender = ViewletLocations.hasFunctionalRender\n\nexport const render = ViewletLocations.render\n","import * as Viewlet from '../Viewlet/Viewlet.js' // TODO dependency to viewlet is not good\n\nconst toContextMenuItem = (activityBarItem) => {\n return {\n label: activityBarItem.id,\n id: 8000, // TODO\n flags: activityBarItem.enabled ? /* Checked */ 2 : /* Unchecked */ 3,\n }\n}\n\nexport const getMenuEntries = async () => {\n const activityBarItems =\n Viewlet.state.instances['ActivityBar'].state.activityBarItems\n return [\n ...activityBarItems.map(toContextMenuItem),\n {\n id: 'separator',\n label: 'Separator',\n flags: /* Separator */ 1,\n },\n {\n id: 'moveSideBarLeft',\n label: 'Move Side Bar Left', // TODO should be dynamic\n flags: /* None */ 0,\n command: /* TODO */ -1,\n },\n {\n id: 'hideActivityBar',\n label: 'Hide Activity Bar',\n flags: /* None */ 0,\n command: /* Layout.hideActivityBar */ 1107,\n },\n ]\n}\n","export const getMenuEntries = () => {\n return [\n {\n id: 'undo',\n label: 'Undo',\n flags: /* Disabled */ 5,\n command: /* TODO */ -1,\n },\n {\n id: 'redo',\n label: 'Redo',\n flags: /* Disabled */ 5,\n command: /* TODO */ -1,\n },\n {\n id: 'separator',\n label: '',\n flags: /* separator */ 1,\n command: /* TODO */ -1,\n },\n {\n id: 'cut',\n label: 'Cut',\n flags: /* None */ 0,\n command: /* EditorCut.editorCut */ 364,\n },\n {\n id: 'copy',\n label: 'Copy',\n flags: /* None */ 0,\n command: /* EditorCopy.editorCopy */ 365,\n },\n {\n id: 'paste',\n label: 'Paste',\n flags: /* None */ 0,\n command: /* EditorPaste.editorPaste */ 383,\n },\n {\n id: 'separator',\n label: '',\n flags: /* separator */ 1,\n command: /* TODO */ -1,\n },\n {\n id: 'toggle-line-comment',\n label: 'Toggle Line Comment',\n flags: /* None */ 0,\n command: /* EditorToggleLineComment.editorToggleLineComment */ 373,\n },\n {\n id: 'toggle-block-comment',\n label: 'Toggle Block Comment',\n flags: /* None */ 0,\n command: /* EditorToggleBlockComment.editorToggleBlockComment */ 362,\n },\n ]\n}\n","export const getMenuEntries = () => {\n return [\n {\n id: 'go-to-type-definition',\n label: 'Go To Type Definition',\n flags: /* None */ 0,\n command: /* EditorCommandGoToTypeDefinition.editorGoToTypeDefinition */ 990,\n },\n {\n id: 'find-all-references',\n label: 'Find all references',\n flags: /* None */ 0,\n command: /* ViewletSideBar.show */ 554,\n args: [/* id */ 'References', /* focus */ true],\n },\n {\n id: 'find-all-implementations',\n label: 'Find all implementations',\n flags: /* None */ 0,\n command: /* ViewletSideBar.show */ 554,\n args: [/* id */ 'Implementations', /* focus */ true],\n },\n {\n id: 'cut',\n label: 'Cut',\n flags: /* None */ 0,\n command: /* EditorCut.editorCut */ 364,\n },\n {\n id: 'copy',\n label: 'Copy',\n flags: /* None */ 0,\n command: /* EditorCopy.editorCopy */ 365,\n },\n {\n id: 'paste',\n label: 'Paste',\n flags: /* None */ 0,\n command: /* EditorPaste.editorPaste */ 383,\n },\n ]\n}\n","import * as Command from '../Command/Command.js'\n\nconst ALL_ENTRIES = [\n {\n id: 'newFile',\n label: 'New File',\n flags: /* None */ 0,\n command: /* ViewletExplorer.newFile */ 147,\n },\n {\n id: 'newFolder',\n label: 'New Folder',\n flags: /* None */ 0,\n command: /* ViewletExplorer.newFolder */ 152,\n },\n {\n id: 'openContainingFolder',\n label: 'Open Containing Folder',\n flags: /* None */ 0,\n command: /* ViewletExplorer.openContainingFolder */ 148,\n },\n {\n id: 'openInIntegratedTerminal',\n label: 'Open in integrated Terminal',\n flags: /* None */ 0,\n command: /* TODO */ -1,\n },\n {\n id: '',\n label: '',\n flags: /* Separator */ 1,\n command: /* None */ 0,\n },\n {\n id: 'cut',\n label: 'Cut',\n flags: /* None */ 0,\n command: /* TODO */ -1,\n },\n {\n id: 'copy',\n label: 'Copy',\n flags: /* None */ 0,\n command: /* ViewletExplorer.handleCopy */ 166,\n },\n {\n id: 'paste',\n label: 'Paste',\n flags: /* None */ 0,\n command: /* ViewletExplorer.handlePaste */ 165,\n },\n {\n id: '',\n label: '',\n flags: /* Separator */ 1,\n command: /* None */ 0,\n },\n {\n id: 'copyPath',\n label: 'Copy Path',\n flags: /* None */ 0,\n command: /* TODO */ -1,\n },\n {\n id: 'copyRelativePath',\n label: 'Copy Relative Path',\n flags: /* None */ 0,\n command: /* TODO */ -1,\n },\n {\n id: '',\n label: '',\n flags: /* Separator */ 1,\n command: /* None */ 0,\n },\n {\n id: 'rename',\n label: 'Rename',\n flags: /* None */ 0,\n command: /* ViewletExplorer.renameDirent */ 158,\n },\n {\n id: 'delete',\n label: 'Delete',\n flags: /* None */ 0,\n command: /* ViewletExplorer.removeDirent */ 151,\n },\n]\n\nconst isFileEntry = (entry) => {\n return entry.id !== 'newFile' && entry.id !== 'newFolder'\n}\n\nexport const getMenuEntries = async () => {\n // TODO explorer might already be disposed (race condition)\n const focusedDirent = await Command.execute(\n /* ViewletExplorer.getFocusedDirent */ 153\n )\n if (!focusedDirent) {\n return ALL_ENTRIES\n }\n switch (focusedDirent.type) {\n case 'directory':\n return ALL_ENTRIES\n case 'file':\n return ALL_ENTRIES.filter(isFileEntry)\n default:\n return ALL_ENTRIES\n }\n}\n","export const getMenuEntries = () => {\n return [\n {\n id: 'newFile',\n label: 'New File',\n flags: /* Disabled */ 5,\n command: /* TODO */ -1,\n },\n {\n id: 'newWindow',\n label: 'New Window',\n flags: /* None */ 0,\n command: /* Window.openNew */ 8086,\n },\n {\n id: 'separator',\n label: 'Separator',\n flags: /* Separator */ 1,\n command: /* None */ 0,\n },\n {\n id: 'openFile',\n label: 'Open File',\n flags: /* Disabled */ 5,\n command: /* TODO */ -1,\n },\n {\n id: 'openFolder',\n label: 'Open Folder',\n flags: /* None */ 0,\n command: 1492,\n },\n {\n id: 'openRecent',\n label: 'Open Recent',\n flags: /* SubMenu */ 4,\n command: /* None */ 0,\n },\n {\n id: 'separator',\n label: 'Separator',\n flags: /* Separator */ 1,\n command: /* None */ 0,\n },\n {\n id: 'exit',\n label: 'Exit',\n flags: /* None */ 0,\n command: /* Window.exit */ 8087,\n },\n ]\n}\n","export const getMenuEntries = () => {\n return []\n}\n","export const getMenuEntries = () => {\n return [\n {\n id: 'about',\n label: 'About',\n flags: /* None */ 0,\n command: 1493,\n },\n {\n id: 'toggleDeveloperTools',\n label: 'Toggle Developer Tools',\n flags: /* None */ 0,\n command: 831,\n },\n ]\n}\n","export const getMenuEntries = () => {\n return [\n {\n id: 'enable',\n label: 'Enable',\n flags: /* None */ 0,\n command: -1,\n },\n {\n id: 'disable',\n label: 'Disable',\n flags: /* None */ 0,\n command: -1,\n },\n {\n id: 'uninstall',\n label: 'Uninstall',\n flags: /* None */ 0,\n command: -1,\n },\n {\n id: 'installAnotherVersion',\n label: 'Install Another Version',\n flags: /* None */ 0,\n command: -1,\n },\n ]\n}\n","import * as Command from '../Command/Command.js'\n\nconst MAX_MENU_RECENT_ENTRIES = 10\n\nconst toMenuItem = (folder) => {\n return {\n label: folder,\n flags: /* None */ 0,\n command: /* Workspace.setPath */ 7633,\n args: [folder],\n }\n}\n\nconst getRecentlyOpened = () => {\n return Command.execute(/* RecentlyOpened.getRecentlyOpened */ 5430)\n}\n\nexport const getMenuEntries = async () => {\n const allItems = await getRecentlyOpened()\n const itemsToShow = allItems.slice(0, MAX_MENU_RECENT_ENTRIES)\n return [\n ...itemsToShow.map(toMenuItem),\n {\n id: 'separator',\n label: 'Separator',\n flags: /* Separator */ 1,\n command: /* RecentlyOpened.clearRecentlyOpened */ 5432,\n },\n {\n id: 'more',\n label: 'More...',\n flags: /* None */ 0,\n command: /* TODO show quick picker with more recently opened */ -1,\n },\n {\n id: 'separator',\n label: 'Separator',\n flags: /* Separator */ 1,\n command: /* RecentlyOpened.clearRecentlyOpened */ 5432,\n },\n {\n id: 'clearRecentlyOpened',\n label: 'Clear Recently Opened',\n flags: /* None */ 0,\n command: /* RecentlyOpened.clearRecentlyOpened */ 5432,\n },\n ]\n}\n","export const getMenuEntries = () => {\n return []\n}\n","export const getMenuEntries = () => {\n return [\n {\n id: 'selectAll',\n label: 'Select All',\n flags: /* None */ 0,\n command: /* EditorSelectAll.editorSelectAll */ 366,\n },\n ]\n}\n","export const getMenuEntries = () => {\n return [\n {\n id: 'settings',\n label: 'Settings',\n flags: /* None */ 0,\n command: /* Preferences.openSettingsJson */ 1200,\n },\n {\n id: 'keyboardShortcuts',\n label: 'Keyboard Shortcuts',\n flags: /* None */ 0,\n command: /* TODO */ -1,\n },\n {\n id: 'colorTheme',\n label: 'Color Theme',\n flags: /* None */ 0,\n command: /* QuickPick.openColorTheme */ 18925,\n },\n {\n id: 'checkForUpdates',\n label: 'Check For Updates',\n flags: /* None */ 0,\n command: /* TODO */ -1,\n },\n ]\n}\n","// TODO should pass tab uri as argument or tab index\nexport const getMenuEntries = () => {\n return [\n {\n id: 'tabClose',\n label: 'Close',\n flags: /* None */ 0,\n command: /* Main.closeFocusedTab */ 105,\n },\n {\n id: 'tabCloseOthers',\n label: 'Close Others',\n flags: /* None */ 0,\n command: /* Main.closeOthers */ 106,\n },\n {\n id: 'tabCloseToTheRight',\n label: 'Close to the Right',\n flags: /* None */ 0,\n command: /* Main.closeTabsToTheRight */ 107,\n },\n {\n id: 'tabCloseAll',\n label: 'Close All',\n flags: /* None */ 0,\n command: /* TODO */ -1,\n },\n ]\n}\n","export const getMenuEntries = () => {\n return []\n}\n","import * as Platform from '../Platform/Platform.js'\n\nexport const getMenuEntries = () => {\n if (Platform.getPlatform() === 'web') {\n return [\n {\n id: 'file',\n name: 'File',\n flags: /* None */ 0,\n },\n {\n id: 'edit',\n name: 'Edit',\n flags: /* None */ 0,\n },\n {\n id: 'selection',\n name: 'Selection',\n flags: /* None */ 0,\n },\n {\n id: 'view',\n name: 'View',\n flags: /* None */ 0,\n },\n {\n id: 'go',\n name: 'Go',\n flags: /* None */ 0,\n },\n ]\n }\n return [\n {\n id: 'file',\n name: 'File',\n flags: /* None */ 0,\n },\n {\n id: 'edit',\n name: 'Edit',\n flags: /* None */ 0,\n },\n {\n id: 'selection',\n name: 'Selection',\n flags: /* None */ 0,\n },\n {\n id: 'view',\n name: 'View',\n flags: /* None */ 0,\n },\n {\n id: 'go',\n name: 'Go',\n flags: /* None */ 0,\n },\n {\n id: 'run',\n name: 'Run',\n keyboardShortCut: 'Alt+r',\n flags: /* None */ 0,\n },\n {\n id: 'terminal',\n name: 'Terminal',\n keyboardShortCut: 'Alt+t',\n flags: /* None */ 0,\n },\n {\n id: 'help',\n name: 'Help',\n keyboardShortCut: 'Alt+h',\n flags: /* None */ 0,\n },\n ]\n}\n","export const getMenuEntries = () => {\n return []\n}\n","import * as Command from '../Command/Command.js'\n\nconst toContextMenuItem = (activityBarItem) => {\n return {\n label: activityBarItem.id,\n id: 8000, // TODO\n flags: /* None */ 0,\n command: -1,\n }\n}\n\nexport const getMenuEntries = async () => {\n const hiddenActivityBarItems = await Command.execute(\n /* ActivityBar.getHiddenItems */ 8011\n )\n return hiddenActivityBarItems.map(toContextMenuItem)\n}\n","import * as QuickPickNoop from './QuickPickNoop.js'\n\n// TODO cache quick pick items -> don't send every time from renderer worker to renderer process\n// maybe cache by id opening commands -> has all commands cached\n// when filtering -> sends all indices (uint16Array) to renderer process instead of filtered/sorted command objects\n\nconst RECENT_PICKS_MAX_SIZE = 3\n\n// const PROVIDER_NOOP = 0\n// const PROVIDER_COMMAND = 1\n// const PROVIDER_SYMBOL = 2\n// const PROVIDER_WORKSPACE_SYMBOL = 3\n// const PROVIDER_GO_TO_LINE = 4\n// const PROVIDER_VIEW = 5\n\nexport const state = {\n // providerId: PROVIDER_NOOP,\n provider: QuickPickNoop,\n prefix: 'string-that-should-never-match-another-string',\n}\n\n/**\n * @type {string}\n */\nexport const name = 'everything'\n\nexport const getPlaceholder = () => {\n return state.provider.getPlaceholder()\n}\n\nexport const getLabel = () => {\n return ''\n}\n\nexport const getHelpEntries = () => {\n return state.provider.getHelpEntries()\n}\n\nexport const getNoResults = () => {\n return state.provider.getNoResults()\n}\n\nconst getPrefix = (value) => {\n if (value.startsWith('>')) {\n return '>'\n }\n if (value.startsWith('@')) {\n return '@'\n }\n if (value.startsWith('#')) {\n return '#'\n }\n if (value.startsWith(':')) {\n return ':'\n }\n if (value.startsWith('view ')) {\n return 'view '\n }\n return ''\n}\n\nconst getQuickPickProvider = (prefix) => {\n // TODO could use enum for prefix\n // TODO could use regex to extract prefix\n // TODO or could check first letter char code (less comparisons)\n switch (prefix) {\n case '>':\n return import('./QuickPickCommand.js')\n case '@':\n return import('./QuickPickSymbol.js')\n case '#':\n return import('./QuickPickWorkspaceSymbol.js')\n case ':':\n return import('./QuickPickGoToLine.js')\n case 'view':\n return import('./QuickPickView.js')\n default:\n return import('./QuickPickFile.js')\n }\n}\n\nexport const getPicks = async (value) => {\n const prefix = getPrefix(value)\n // TODO race condition\n if (state.prefix !== prefix) {\n state.prefix = prefix\n // @ts-ignore\n state.provider = await getQuickPickProvider(prefix)\n }\n // TODO this line is a bit duplicated with getFilterValue\n const slicedValue = value.slice(prefix.length)\n const picks = await state.provider.getPicks(slicedValue)\n return picks\n}\n\nconst getPick = (state, index) => {\n // if (index < state.recentPicks.length) {\n // return state.recentPicks[index]\n // }\n // index -= state.recentPicks.length\n if (index < state.filteredPicks.length) {\n return state.filteredPicks[index]\n }\n console.warn('no pick matching index', index)\n}\n\nexport const selectPick = (item) => {\n return state.provider.selectPick(item)\n}\n\nexport const openCommandPalette = () => {\n // show('>')\n}\n\nexport const openView = () => {\n // show('view ')\n}\n\nexport const getFilterValue = (value) => {\n return value.slice(state.prefix.length)\n}\n","import * as Command from '../Command/Command.js'\nimport * as Platform from '../Platform/Platform.js'\nimport * as SharedProcess from '../SharedProcess/SharedProcess.js'\n\nconst getColorThemeNames = async () => {\n if (Platform.getPlatform() === 'web') {\n const assetDir = Platform.getAssetDir()\n const url = `${assetDir}/config/themes.json`\n return Command.execute(/* Ajax.getJson */ 270, /* url */ url)\n }\n return SharedProcess.invoke(\n /* ExtensionHost.getColorThemeNames */ 'ExtensionHost.getColorThemeNames'\n )\n}\n\nconst setColorTheme = (id) => {\n return Command.execute(\n /* ColorTheme.setColorTheme */ 5611,\n /* colorThemeId */ id\n )\n}\n\nexport const getPlaceholder = () => {\n return 'Select Color Theme'\n}\n\nexport const getLabel = () => {\n return 'Select Color Theme'\n}\n\nconst toPick = (colorThemeName) => {\n return {\n label: colorThemeName,\n }\n}\n\nexport const getPickLabel = (colorThemeName) => {\n return colorThemeName\n}\n\nexport const getPicks = async (searchValue) => {\n const colorThemeNames = await getColorThemeNames()\n const picks = colorThemeNames.map(toPick)\n return picks\n}\n\nexport const selectPick = async (item) => {\n await setColorTheme(/* colorThemeId */ item.label)\n return {\n command: 'hide',\n }\n}\n\nexport const focusPick = async (item) => {\n await setColorTheme(/* colorThemeId */ item.label)\n}\n\nexport const getFilterValue = (value) => {\n return value\n}\n\nexport const getNoResults = () => {\n return {\n label: 'No matching color themes found',\n }\n}\n","import * as Command from '../Command/Command.js'\n\nconst getRecentlyOpened = () => {\n return Command.execute(/* RecentlyOpened.getRecentlyOpened */ 5430)\n}\n\nconst openWorkspaceFolder = (uri) => {\n return Command.execute(/* Workspace.setPath */ 7633, /* path */ uri)\n}\n\nexport const getPlaceholder = () => {\n return 'Select to open'\n}\n\nexport const getLabel = () => {\n return 'Open Recent'\n}\n\nexport const getHelpEntries = () => {\n return []\n}\n\nexport const getNoResults = () => {\n return {\n label: 'No recently opened folders found',\n }\n}\n\nconst toPick = (path) => {\n return {\n label: path,\n }\n}\n\n// TODO could also change api so that getPicks returns an array of anything\n// and the transformPick gets the label for each pick\n// This would make the code more module since the code for getting the picks\n// would be more independent of the specific data format of the quickpick provider\n\nexport const getPicks = async () => {\n const recentlyOpened = await getRecentlyOpened()\n return recentlyOpened.map(toPick)\n}\n\n// TODO selectPick should be independent of show/hide\nexport const selectPick = async (pick) => {\n const path = pick.label\n await openWorkspaceFolder(path)\n return {\n command: 'hide',\n }\n}\n\nexport const getFilterValue = (value) => {\n return value\n}\n","import * as ExtensionHost from './ExtensionHostCore.js'\nimport * as ExtensionHostManagement from './ExtensionHostManagement.js'\n\nexport const getCommands = async () => {\n // TODO can use extensions that are already loaded\n return await ExtensionHost.invoke(\n /* ExtensionHost.getCommands */ 'ExtensionHost.getCommands'\n )\n}\n\n// TODO add test for this\n// TODO add test for when this errors\n\nexport const executeCommand = async (id) => {\n await ExtensionHostManagement.activateByEvent(`onCommand:${id}`)\n await ExtensionHost.invoke(\n /* extensionHost.executeCommandFromQuickPick */ 'ExtensionHost.executeCommand',\n /* id */ id\n )\n}\n","import * as Command from '../Command/Command.js'\nimport * as ErrorHandling from '../ErrorHandling/ErrorHandling.js'\nimport * as ExtensionHostCommands from '../ExtensionHost/ExtensionHostCommands.js'\nimport * as Platform from '../Platform/Platform.js'\n\nexport const getPlaceholder = () => {\n return 'Type the name of a command to run.'\n}\n\nexport const helpEntries = () => {\n return [\n {\n description: 'Show And Run Commands',\n category: 'global commands',\n },\n ]\n}\n\nexport const getLabel = () => {\n return ''\n}\n\nexport const getNoResults = () => {\n return {\n label: 'No matching results',\n }\n}\n\n// TODO combine Ajax with cache (specify strategy: cacheFirst, networkFirst)\nconst getBuiltinPicks = async () => {\n const assetDir = Platform.getAssetDir()\n const url = `${assetDir}/config/builtinCommands.json`\n const builtinPicks = await Command.execute(\n /* Ajax.getJson */ 270,\n /* url */ url\n )\n return builtinPicks\n}\n\nconst prefixIdWithExt = (item) => {\n if (!item.label) {\n ErrorHandling.warn('[QuickPick] item has missing label', item)\n }\n if (!item.id) {\n ErrorHandling.warn('[QuickPick] item has missing id', item)\n }\n return {\n ...item,\n id: `ext.${item.id}`,\n label: item.label || item.id,\n }\n}\n\nconst getExtensionPicks = async () => {\n // TODO don't call this every time\n const extensionPicks = await ExtensionHostCommands.getCommands()\n const mappedPicks = extensionPicks.map(prefixIdWithExt)\n return mappedPicks\n}\n\n// TODO send strings to renderer process only once for next occurrence send uint16array of ids of strings\n\nexport const getPicks = async () => {\n if (Platform.getPlatform() === 'web') {\n const builtinPicks = await getBuiltinPicks()\n return builtinPicks\n }\n const builtinPicks = await getBuiltinPicks()\n const extensionPicks = await getExtensionPicks()\n return [...builtinPicks, ...extensionPicks]\n}\n\nconst selectPickBuiltin = async (item) => {\n // TODO ids should be all numbers for efficiency -> also directly can call command\n const id = await Command.execute(\n /* CommandInfo.getCommandInfo */ 1592,\n /* id */ item.id\n )\n await Command.execute(id)\n console.log('execute', id)\n}\n\nconst selectPickExtension = async (item) => {\n console.log('ext pick', item)\n const id = item.id.slice(4) // TODO lots of string allocation with 'ext.' find a better way to separate builtin commands from extension commands\n try {\n await ExtensionHostCommands.executeCommand(id)\n } catch (error) {\n ErrorHandling.showErrorDialog(error)\n // console.log({ error })\n // console.error(error)\n }\n}\n\nexport const selectPick = async (item) => {\n if (item.id.startsWith('ext.')) {\n await selectPickExtension(item)\n } else {\n await selectPickBuiltin(item)\n }\n return {\n command: 'hide',\n }\n}\n\nexport const getFilterValue = (value) => {\n return value\n}\n","export const name = 'symbol'\n\nexport const getPlaceholder = () => {\n return ''\n}\n\nexport const getHelpEntries = () => {\n return []\n}\n\nexport const getNoResults = () => {\n return {\n label: 'No symbol found',\n }\n}\n\nexport const getPicks = async () => {\n const picks = []\n return picks\n}\n\nexport const selectPick = async (item) => {\n return {\n command: 'hide',\n }\n}\n\nexport const getFilterValue = (value) => {\n return value\n}\n","// import * as ViewService from '../ViewService/ViewService.js'\n\nexport const name = 'workspace-symbol'\n\nexport const getPlaceholder = () => {\n return ''\n}\n\nexport const getHelpEntries = () => {\n return []\n}\n\nexport const getNoResults = () => {\n return {\n label: 'no workspace symbols found',\n }\n}\n\nexport const getPicks = async () => {\n const picks = []\n return picks\n}\n\nexport const selectPick = async (item) => {\n return {\n command: 'hide',\n }\n}\n\nexport const getFilterValue = (value) => {\n return value\n}\n","import * as Command from '../Command/Command.js'\n\nexport const name = 'goToLine'\n\nexport const getPlaceholder = () => {\n return ''\n}\n\nexport const getHelpEntries = () => {\n return []\n}\n\nexport const getNoResults = () => {\n return undefined\n}\n\nexport const getPicks = async () => {\n const picks = [\n {\n label: '1',\n },\n {\n label: '2',\n },\n {\n label: '3',\n },\n {\n label: '4',\n },\n {\n label: '5',\n },\n {\n label: '6',\n },\n ]\n return picks\n}\n\nexport const selectPick = async (item) => {\n const rowIndex = Number.parseInt(item.label)\n const position = {\n rowIndex,\n columnIndex: 5,\n }\n await Command.execute(\n /* EditorSetCursor.editorSetCursor */ 396,\n /* position */ position\n )\n // TODO put cursor onto that line\n return {\n command: 'hide',\n }\n}\n\nexport const getFilterValue = (value) => {\n return value\n}\n","// TODO probably not needed\n\nexport const getPlaceholder = () => {\n return 'Type the name of a view, output channel or terminal to open.'\n}\n\nexport const getHelpEntries = () => {\n return undefined\n}\n\nconst toPick = (view) => ({\n label: view,\n})\n\nexport const getPicks = async () => {\n // const views = ViewService.getViews()\n // const picks = views.map(toPick)\n // return picks\n return []\n}\n\nexport const selectPick = async (item) => {\n // Command.execute(/* openView */ 549, /* viewName */ item.label)\n // return {\n // command: 'hide',\n // }\n}\n\nexport const getFilterValue = (value) => {\n return value\n}\n","import * as Command from '../Command/Command.js'\nimport * as Languages from '../Languages/Languages.js'\nimport * as Platform from '../Platform/Platform.js'\nimport * as SharedProcess from '../SharedProcess/SharedProcess.js'\nimport * as Workspace from '../Workspace/Workspace.js'\n\nconst searchFile = async (path, value) => {\n if (Platform.getPlatform() === 'web') {\n return []\n }\n const files = await SharedProcess.invoke(\n /* SearchFile.searchFile */ 'SearchFile.searchFile',\n /* path */ path,\n /* searchTerm */ value\n )\n return files\n}\n\nconst openUri = (path) => {\n return Command.execute(/* Main.openUri */ 97, /* uri */ path)\n}\n\nconst toPick = (file) => {\n return {\n label: file,\n dataset: {\n // TODO compute language id lazily on demand inside renderer process (don't compute for hidden items)\n languageId: Languages.getLanguageId(file),\n },\n }\n}\n\nexport const name = 'file'\n\nexport const getPlaceholder = () => {\n return ''\n}\n\nexport const getLabel = () => {\n return 'Files'\n}\n\n// TODO help entries should not be here\nexport const getHelpEntries = () => {\n return [\n {\n description: 'Go to file',\n category: 'global commands',\n },\n ]\n}\n\nexport const getNoResults = () => {\n return {\n label: 'No matching results',\n }\n}\n\nexport const getPicks = async (searchValue) => {\n const workspace = Workspace.state.workspacePath\n if (!workspace) {\n return []\n }\n const files = await searchFile(workspace, searchValue)\n const picks = files.map(toPick)\n return picks\n}\n\nexport const selectPick = async (item) => {\n const workspace = Workspace.state.workspacePath\n const absolutePath = `${workspace}/${item.label}`\n await openUri(absolutePath)\n return {\n command: 'hide',\n }\n}\n\nexport const getFilterValue = (value) => {\n return value\n}\n"],"names":["state","register","execute","create","send","invoke","Callback.register","getPlatform","Command.execute","Callback.resolve","listen","WebSocket.create","JsonRpc.send","JsonRpc.invoke","SharedProcess.invoke","copy","readFile","remove","rename","mkdir","writeFile","ensureFile","readDirWithFileTypes","getBlobUrl","getPathSeparator","Platform.getPlatform","removeListener","getPathName","RendererProcess.invoke","hydrate","SharedProcess.send","close","isValid","Location.getPathName","Window.setTitle","Location.setPathName","GlobalEventBus.emitEvent","getType","Assert.string","Platform.getAssetDir","FileSystemDisk.readFile","Platform.getUserSettingsPath","Platform.getRecentlyOpenedPath","FileSystemDisk.writeFile","Workspace.pathDirName","FileSystemDisk.mkdir","GitHubRestApi.readFile","GitHubRestApi.readGitHubDirectory","Workspace.getWorkspacePath","getExtensions","getLanguages","getLanguageConfiguration","ExtensionHostLanguages.getLanguages","GlobalEventBus.addListener","ExtensionHostLanguages.getLanguageConfiguration","ExtensionHostCore.state","ExtensionHostCore.STATUS_OFF","ExtensionHostCore.startExtensionHost","ExtensionHostCore.STATUS_LOADING","ExtensionHostCore.STATUS_RUNNING","ExtensionHostCore.STATUS_ERROR","Languages.hasLoaded","Languages.waitForLoad","ExtensionMeta.getExtensions","ExtensionHostManagement.activateByEvent","ExtensionHost.invoke","createFile","createFolder","Assert.array","Json.stringify","FileSystem.writeFile","setColorTheme","Preferences.set","Preferences.get","Languages.getLanguageId","getIcon","handleError","getKeyBindings","ErrorHandling.handleError","fn","Assert.fn","dispose","Assert.object","RendererProcess.send","resize","getModule","Viewlet.state","clamp","show","ViewletManager.create","ViewletManager.getModule","ViewletManager.load","hide","Viewlet.dispose","Viewlet.resize","mark","Workspace.state","uninstall","getRecentlyOpened","FileSystem.readFile","Json.parse","LifeCycle.mark","LifeCycle.PHASE_ZERO","Performance.mark","RendererProcess.listen","SharedProcess.listen","LifeCycle.PHASE_ONE","Preferences.hydrate","LifeCycle.PHASE_TWO","Workspace.hydrate","LifeCycle.PHASE_THREE","ColorTheme.hydrate","LifeCycle.PHASE_FOUR","Layout.hydrate","LifeCycle.PHASE_FIVE","Layout.showMain","LifeCycle.PHASE_SIX","KeyBindings.hydrate","LifeCycle.PHASE_SEVEN","Layout.state","Layout.showSideBar","LifeCycle.PHASE_EIGHT","Layout.showPanel","LifeCycle.PHASE_NINE","Layout.showActivityBar","LifeCycle.PHASE_TEN","Layout.showStatusBar","LifeCycle.PHASE_ELEVEN","IconTheme.hydrate","LifeCycle.PHASE_TWELVE","LifeCycle.PHASE_THIRTEEN","LifeCycle.PHASE_FOURTEEN","Layout.showTitleBar","LifeCycle.PHASE_FIFTEEN","SaveState.hydrate","LifeCycle.PHASE_SIXTEEN","RecentlyOpened.hydrate","ServiceWorker.hydrate","Location.hydrate","Performance.measure","Workbench.startup","handleClick","__initialize__","Command.register","Notification.create","Notification.dispose","Notification.showWithOptions","Notification.handleClick","name","loadContent","contentLoaded","contentLoadedEffects","GlobalEventBus.removeListener","Layout.isSideBarVisible","handleContextMenu","focusIndex","focus","focusNext","focusPrevious","focusFirst","focusLast","getPosition","selectCurrent","render","hasFunctionalRender","Viewlet.wrapViewletCommand","ActivityBar.toggleItem","ActivityBar.handleClick","ActivityBar.handleContextMenu","ActivityBar.focus","ActivityBar.focusNext","ActivityBar.focusPrevious","ActivityBar.focusFirst","ActivityBar.focusLast","ActivityBar.selectCurrent","ActivityBar.getItems","ActivityBar.getHiddenItems","ActivityBar.updateSourceControlCount","ActivityBar.handleSideBarViewletChange","ActivityBar.handleSideBarHidden","Window.reload","Window.minimize","Window.maximize","Window.unmaximize","Window.close","Window.makeScreenshot","Window.openNew","Window.exit","hydrateLazy","Languages.hydrate","Workspace.getHomeDir","LifeCycle.once","Workspace.pathBaseName","openUri","ViewletMain.save","ViewletMain.handleDrop","ViewletMain.closeActiveEditor","ViewletMain.closeAllEditors","ViewletMain.handleTabContextMenu","ViewletMain.hydrate","ViewletMain.openUri","ViewletMain.closeEditor","ViewletMain.handleTabClick","ViewletMain.focusFirst","ViewletMain.focusLast","ViewletMain.focusPrevious","ViewletMain.focusNext","ViewletMain.closeFocusedTab","ViewletMain.closeOthers","ViewletMain.closeTabsRight","ViewletMain.closeTabsLeft","getMenuEntries","MenuEntries.getMenuEntries","selectIndex","handleMouseEnter","getIndexToFocusNextStartingAt","getIndexToFocusPreviousStartingAt","Assert.number","Menu.hide","Menu.show","ContextMenu.select","ContextMenu.show","ContextMenu.hide","ContextMenu.focusFirst","ContextMenu.focusLast","ContextMenu.focusNext","ContextMenu.focusPrevious","ContextMenu.selectCurrent","ContextMenu.noop","Layout.hideSideBar","Layout.toggleSideBar","Layout.hidePanel","Layout.togglePanel","Layout.hideActivityBar","Layout.toggleActivityBar","Layout.hide","Layout.handleResize","Layout.handleSashSideBarMove","Viewlet.send","Workbench.unload","getPlaceholder","getHelpEntries","getNoResults","getPicks","selectPick","getFilterValue","FuzzySearch.fuzzySearch","handleBlur","handleInput","openCommandPalette","QuickPickEverything","openView","QuickPickColorTheme","QuickPickOpenRecent","QuickPick.openEverythingQuickPick","QuickPick.dispose","QuickPick.selectCurrentIndex","QuickPick.handleInput","QuickPick.selectIndex","QuickPick.openCommandPalette","QuickPick.openView","QuickPick.focusFirst","QuickPick.focusLast","QuickPick.focusPrevious","QuickPick.focusNext","QuickPick.openGoToLine","QuickPick.openColorTheme","QuickPick.fileOpenRecent","QuickPick.handleBlur","QuickPick.showExtensionsQuickPick","openViewlet","Panel.tabsHandleClick","Panel.openViewlet","Panel.create","Id.create","setValue","FindWidget.create","FindWidget.dispose","FindWidget.setValue","Preferences.openSettingsJson","Preferences.openKeyBindingsJson","SharedProcess.state","Platform.getLogsDir","IconTheme.getIconThemeCss","ColorTheme.getColorThemeCssCacheFirst","clearCache","Platform.getConfigPath","Platform.getCachePath","Developer.getStartupPerformanceContent","Developer.getMemoryUsageContent","Developer.allocateMemoryInSharedProcess","Developer.crashSharedProcess","Developer.createSharedProcessHeapSnapshot","Developer.createSharedProcessProfile","Developer.showIconThemeCss","Developer.reloadIconTheme","Developer.clearCache","Developer.reloadColorTheme","Developer.showColorThemeCss","Developer.toggleDeveloperTools","Developer.crashMainProcess","Developer.showStartupPerformance","Developer.showMemoryUsage","Developer.openConfigFolder","Developer.openDataFolder","Developer.openLogsFolder","Developer.openCacheFolder","Developer.openProcessExplorer","Arrays.splice","getText","Languages.state","getTokenIndex","getVisible","Platform.isMobileOrTablet","setDeltaY","TextDocument.offsetAt","MINIMUM_SLIDER_SIZE","Tokenizer.getTokenizer","EditorText.getVisible","EditorCursor.getVisible","EditorSelection.getVisible","EditorScrolling.setDeltaY","EditorSelection.setSelections","TextDocument.applyEdits","EditorSelection.applyEdit","getScrollBarHeight","setText","Editor.scheduleSelections","filterCompletionItems","handleSelectionChange","x","EditorPosition.x","y","EditorPosition.y","open","EditorBlur.removeListener","Editor.scheduleDocumentAndCursorsSelections","Editor.hasSelection","TextDocument.getSelectionText","TextDocument.getLine","getNewSelection","EditorGetPositionLeft.editorGetPositionLeft","TextSegmenter.supported","TextSegmenter.create","EditorCursorHorizontalLeft.editorCursorHorizontalLeft","EditorDelta.characterLeft","EditorGetPositionRight.editorGetPositionRight","EditorCursorHorizontalRight.editorCursorHorizontalRight","EditorDelta.characterRight","getEdgePosition","EditorCursorVertical.editorCommandCursorVertical","EditorDelta.lineEnd","EditorDelta.lineCharacterStart","EditorDelta.wordLeft","EditorDelta.wordPartLeft","EditorDelta.wordPartRight","EditorDelta.wordRight","isEmpty","EditorDeleteHorizontalLeft.editorDeleteHorizontalLeft","EditorDeleteHorizontalRight.editorDeleteHorizontalRight","ExtensionHostDefinition.executeDefinitionProvider","EditorShowMessage.editorShowMessage","TextDocument.positionAt","EditorPosition.at","EditorSelectWord.editorSelectWord","EditorGetSelectionFromNativeRange.getSelectionFromNativeRange","getNewDeltaPercent","Editor.setDeltaYFixedValue","getNewPercent","EditorHandleScrollBarClick.state","EditorGoToDefinition.editorGoToDefinition","EditorMoveSelection.state","EditorCursorSet.editorCursorSet","TextDocument.getIndent","ExtensionHostTabCompletion.executeTabCompletionProvider","EditorSnippet.editorSnippet","ExtensionHostBraceCompletion.executeBraceCompletionProvider","ExtensionHostClosingTag.executeClosingTagProvider","EditorCommandCompletion.openFromType","EditorTabCompletion.editorTabCompletion","EditorType.editorType","EditorIndent.editorIndentMore","EditorHandleTouchStart.state","Editor.setDeltaY","EditorSelectLine.editorSelectLine","Editor.moveCursors","Editor.scheduleDocumentAndCursors","Editor.scheduleCursorsAndSelections","EditorMoveRectangleSelection.editorMoveRectangleSelection","EditorMoveSelection.editorMoveSelection","EditorPasteText.editorPasteText","TextDocument.getText","ErrorHandling.showErrorDialog","getSelectionEditsSingleLineWord","RE_ALPHA_NUMERIC","isAlphaNumeric","getWordStartIndex","getWordEndIndex","getWordMatchAtPosition","EditorSelectHorizontalLeft.editorSelectHorizontalLeft","EditorSelectHorizontalRight.editorSelectHorizontalRight","Editor.scheduleSelectionsAndScrollPosition","RE_WHITESPACE_AT_START","Languages.getLanguageConfiguration","Editor.scheduleDocument","EditorToggleLineComment.editorToggleLineComment","EditorToggleBlockComment.editorToggleBlockComment","Editor.scheduleDocumentAndCursorsAndSelections","Tokenizer.loadTokenizer","ExtensionHostTypeDefinition.executeTypeDefinitionProvider","EditorCursorDown.editorCursorsDown","EditorCursorCharacterLeft.editorCursorCharacterLeft","EditorCursorCharacterRight.editorCursorsCharacterRight","EditorCursorUp.editorCursorsUp","EditorDeleteLeft.editorDeleteCharacterLeft","EditorDeleteRight.editorDeleteCharacterRight","EditorInsertLineBreak.editorInsertLineBreak","EditorCopyLineUp.editorCopyLineUp","EditorCopyLineDown.editorCopyLineDown","EditorMoveLineDown.editorMoveLineDown","EditorCursorWordLeft.editorCursorWordLeft","EditorCursorWordRight.editorCursorWordRight","EditorDeleteWordLeft.editorDeleteWordLeft","EditorDeleteWordRight.editorDeleteWordRight","EditorMoveLineUp.editorMoveLineUp","EditorCursorHome.editorCursorsHome","EditorCursorEnd.editorCursorEnd","EditorHandleSingleClick.editorHandleSingleClick","EditorCut.editorCut","EditorCopy.editorCopy","EditorSelectAll.editorSelectAll","EditorCursorWordPartRight.editorCursorWordPartRight","EditorCursorWordPartLeft.editorCursorWordPartLeft","EditorBlur.editorBlur","EditorToggleComment.editorToggleComment","EditorDeleteAllLeft.editorDeleteAllLeft","EditorDeleteAllRight.editorDeleteAllRight","EditorHandleTripleClick.editorHandleTripleClick","EditorSave.editorSave","EditorHandleContextMenu.editorHandleContextMenu","EditorSelectCharacterLeft.editorSelectCharacterLeft","EditorSelectCharacterRight.editorSelectCharacterRight","EditorPaste.editorPaste","EditorSetDeltaY.editorSetDeltaY","EditorHandleDoubleClick.editorHandleDoubleClick","EditorMoveSelectionPx.editorMoveSelectionPx","EditorMoveRectangleSelectionPx.editorMoveRectangleSelectionPx","EditorFormat.editorFormat","EditorHandleMouseMove.editorHandleMouseMove","EditorSelectNextOccurrence.editorSelectNextOccurrence","EditorSelectAllOccurrences.editorSelectAllOccurrences","EditorHandleTab.editorHandleTab","EditorCancelSelection.editorCancelSelection","EditorUnindent.editorUnindent","EditorUndo.editorUndo","EditorDeleteWordPartLeft.editorDeleteWordPartLeft","EditorDeleteWordPartRight.editorDeleteWordPartRight","EditorHandleScrollBarMove.editorHandleScrollBarMove","EditorHandleScrollBarClick.editorHandleScrollBarClick","EditorSelectWordRight.editorSelectWordRight","EditorSelectWordLeft.editorSelectWordLeft","EditorSelectInsideString.editorSelectInsideString","EditorHandleTouchStart.editorHandleTouchStart","EditorHandleTouchMove.editorHandleTouchMove","EditorHandleTouchEnd.editorHandleTouchEnd","EditorHandleBeforeInputFromContentEditable.handleBeforeInputFromContentEditable","EditorHandleNativeSelectionChange.editorHandleNativeSelectionChange","EditorCommandIndentMore.editorIndentMore","EditorCommandIndentLess.editorIndentLess","EditorComposition.editorCompositionStart","EditorComposition.editorCompositionUpdate","EditorComposition.editorCompositionEnd","EditorHandleMouseMoveWithAltKey.editorHandleMouseMoveWithAltKey","EditorCompletion.open","EditorCompletion.close","EditorCompletion.openFromType","EditorSetLanguageId.setLanguageId","EditorGoToTypeDefinition.editorGoToTypeDefinition","EditorApplyEdit.editorApplyEdit","EditorSetDecorations.setDecorations","KeyBindings.handleKeyBinding","Platform.getExtensionsPath","Open.openNativeFolder","Platform.getCachedExtensionsPath","Extensions.openExtensionsFolder","Extensions.openCachedExtensionsFolder","ITEM_HEIGHT","IconTheme.getIcon","FileSystem.readDirWithFileTypes","FileSystem.getPathSeparator","handleWheel","FileSystem.remove","FileSystem.rename","FileSystem.mkdir","FileSystem.copy","ViewletExplorer.focusNext","ViewletExplorer.focusPrevious","ViewletExplorer.scrollUp","ViewletExplorer.scrollDown","ViewletExplorer.handleClickCurrent","ViewletExplorer.newFile","ViewletExplorer.openContainingFolder","ViewletExplorer.copyPath","ViewletExplorer.copyRelativePath","ViewletExplorer.removeDirent","ViewletExplorer.newFolder","ViewletExplorer.getFocusedDirent","ViewletExplorer.handleArrowRight","ViewletExplorer.handleArrowLeft","ViewletExplorer.focusFirst","ViewletExplorer.focusLast","ViewletExplorer.renameDirent","ViewletExplorer.handleMouseEnter","ViewletExplorer.handleMouseLeave","ViewletExplorer.handleClick","ViewletExplorer.handleContextMenu","ViewletExplorer.handleWheel","ViewletExplorer.setDeltaY","ViewletExplorer.handlePaste","ViewletExplorer.handleCopy","ViewletExplorer.cancelRename","ViewletExplorer.acceptRename","ViewletExplorer.cancelNewFile","ViewletExplorer.acceptNewFile","ViewletExplorer.expandAll","ViewletExplorer.collapseAll","SourceControl.updateDecorations","handleData","clear","ViewletTerminal.write","ViewletTerminal.clear","ColorPicker.open","ColorPicker.close","Platform.getMarketPlaceUrl","ExtensionManagement.getAllExtensions","getName","ExtensionsMarketplace.getMarketplaceExtensions","ExtensionManagement.install","ExtensionManagement.uninstall","ExtensionManagement.enable","ExtensionManagement.disable","ViewletExtensions.openSuggest","ViewletExtensions.closeSuggest","ViewletExtensions.toggleSuggest","ViewletExtensions.handleInput","ViewletExtensions.handleContextMenu","ViewletExtensions.handleInstall","ViewletExtensions.handleUninstall","ViewletExtensions.handleClick","ViewletExtensions.focusIndex","ViewletExtensions.focusFirst","ViewletExtensions.focusLast","ViewletExtensions.focusPrevious","ViewletExtensions.focusNext","ViewletExtensions.handleWheel","ViewletExtensions.focusNextPage","ViewletExtensions.focusPreviousPage","ViewletExtensions.setDeltaY","ViewletExtensions.handleScrollBarMove","ViewletExtensions.handleScrollBarClick","ClipBoard.readText","ClipBoard.writeText","ClipBoard.writeNativeFiles","ClipBoard.readNativeFiles","getJson","Ajax.getJson","Ajax.getText","Format.hydrate","ColorTheme.setColorTheme","IconTheme.addIcons","Menu.selectIndex","Menu.focusNext","Menu.focusPrevious","Menu.focusFirst","Menu.focusLast","Menu.focusIndex","Menu.handleMouseEnter","Menu.state","Menu.getMenuWidth","Menu.getMenuHeight","Menu.getIndexToFocusNextStartingAt","Menu.addMenuInternal","Menu.showSubMenu","Menu.selectCurrent","TitleBarMenuBar.toggleIndex","TitleBarMenuBar.hydrate","TitleBarMenuBar.focus","TitleBarMenuBar.focusIndex","TitleBarMenuBar.focusPrevious","TitleBarMenuBar.focusNext","TitleBarMenuBar.closeMenu","TitleBarMenuBar.openMenu","TitleBarMenuBar.handleKeyArrowDown","TitleBarMenuBar.handleKeyArrowUp","TitleBarMenuBar.handleKeyArrowRight","TitleBarMenuBar.handleKeyHome","TitleBarMenuBar.handleKeyEnd","TitleBarMenuBar.handleKeySpace","TitleBarMenuBar.handleKeyEnter","TitleBarMenuBar.handleKeyEscape","TitleBarMenuBar.handleKeyArrowLeft","Navigation.focusPreviousPart","Navigation.focusNextPart","Navigation.focusActivityBar","Navigation.focusStatusBar","Navigation.focusPanel","Navigation.focusSideBar","Navigation.focusTitleBar","Navigation.focusMain","setJson","CacheStorage.clearCache","CacheStorage.setJson","CacheStorage.getJson","LocalStorage.clear","LocalStorage.setJson","LocalStorage.getJson","LocalStorage.getText","LocalStorage.setText","SessionStorage.clear","SessionStorage.getJson","Callback.reject","CommandInfo.getCommandInfo","Dialog.openFolder","Dialog.showAbout","Dialog.showMessage","Dialog.close","Dialog.handleClick","Workspace.setPath","Workspace.setUri","ColorThemeFromJson.createColorThemeFromJson","RecentlyOpened.getRecentlyOpened","RecentlyOpened.clearRecentlyOpened","RecentlyOpened.addToRecentlyOpened","FindInWorkspace.findInWorkspace","Command.state","EditorDiagnostics.hydrate","ExtensionHostRename.executePrepareRenameProvider","ExtensionHostRename.executeRenameProvider","EditorRename.open","EditorRename.finish","EditorRename.abort","EditorError.show","KeyBindingsInitial.getKeyBindings","acceptInput","getChangedFiles","ExtensionHostSourceControl.acceptInput","ExtensionHostSourceControl.getChangedFiles","ExtensionHostSourceControl.getFileBefore","ViewletSourceControl.acceptInput","ServiceWorker.uninstall","FileSystem.getBlobUrl","ImagePreview.show","ImagePreview.hide","decode","JsBase64.decode","Base64.decode","base64StringToBlob","BlobUtil.base64StringToBlob","Blob.base64StringToBlob","Audio.playBell","ViewletSideBar.showOrHideViewlet","ViewletSideBar.openViewlet","Listener.register","ExtensionHostStatusBarItems.getStatusBarItems","ExtensionHostStatusBarItems.onChange","ViewletStatusBar.updateStatusBarItems","Listener.execute","Workspace.getAbsolutePath","ViewletSearch.handleInput","ViewletSearch.handleClick","ExtensionHostCompletion.executeCompletionProvider","Viewlet.getState","getLabel","IconTheme.getFolderIcon","IconTheme.getFileIcon","ViewletEditorCompletion.dispose","ViewletEditorCompletion.selectIndex","ViewletEditorCompletion.focusFirst","ViewletEditorCompletion.focusLast","ViewletEditorCompletion.focusNext","ViewletEditorCompletion.focusPrevious","ViewletEditorCompletion.selectCurrent","ViewletLocations.selectIndex","ViewletLocations.focusFirst","ViewletLocations.focusLast","ViewletLocations.focusNext","ViewletLocations.focusPrevious","ViewletLocations.selectCurrent","ViewletLocations.focusIndex","ExtensionHostOutputChannel.getOutputChannels","FindWidget","ExtensionHostDiagnostic.executeDiagnosticProvider","ExtensionHostManagement.ensureExtensionHostIsStarted","handleEditorChange","Viewlet.setState","Editor.create","Editor.setBounds","Editor.setText","ExtensionHostSemanticTokens.executeSemanticTokenProvider","ExtensionHostTextDocument.handleEditorChange","ExtensionHostTextDocument.handleEditorCreate","ExtensionHostTextDocument.handleEditorLanguageChange","Editor.renderTextAndCursorAndSelectionsCommands","Editor.render","TitleBarMenuBar.getEntries","ExtensionHostReferences.executeReferenceProvider","ViewletLocations.create","ViewletLocations.loadContent","ViewletLocations.dispose","ViewletLocations.hasFunctionalRender","ViewletLocations.render","ExtensionHostImplementation.executeImplementationProvider","toContextMenuItem","toPick","ErrorHandling.warn","ExtensionHostCommands.getCommands","ExtensionHostCommands.executeCommand"],"mappings":"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AAyC,0CAA0C;AACnF,mBAAmB,QAAQ;AAC3B,IAAG;AACH,EAAE3B,MAAa,CAAC,aAAa,EAAC;AAC9B,EAAE,OAAO,aAAa;AACtB;;;;;;;;;;;;;;;AC5FA;AACA;AACA;AACA,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAC;AACjC;AACA,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,EAAC;AACvB;AACA,KAAK,CAAC,uBAAuB,CAAC,GAAG,CAAC;AAClC;AACA,CAAC,EAAC;AACF;AACA,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC;AAChC;AACA,CAAC,EAAC;AACF;AACA,KAAK,CAAC,0BAA0B,CAAC,GAAG,CAAC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA,KAAK,CAAC,uBAAuB,CAAC,GAAG,CAAC,gCAAgC,EAAC;AACnE;AACA,KAAK,CAAC,sBAAsB,CAAC,GAAG,CAAC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAC;AACJ;AACA,KAA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"}