@codingame/monaco-vscode-api 1.78.8 → 1.79.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (641) hide show
  1. package/README.md +2 -1
  2. package/dist/activity.d.ts +2902 -0
  3. package/dist/api.js +6 -5
  4. package/dist/assets/activityaction.css +224 -0
  5. package/dist/assets/activitybarpart.css +65 -0
  6. package/dist/assets/basepanelpart.css +221 -0
  7. package/dist/assets/callHierarchy.css +62 -0
  8. package/dist/assets/{sidebysideeditor.css → compositepart.css} +10 -2
  9. package/dist/assets/debugViewlet.css +337 -0
  10. package/dist/assets/explorerviewlet.css +129 -0
  11. package/dist/assets/hover.css +127 -0
  12. package/dist/assets/interactiveSession.css +340 -0
  13. package/dist/assets/menubar.css +111 -0
  14. package/dist/assets/menubarControl.css +61 -0
  15. package/dist/assets/notificationsCenter.css +3 -3
  16. package/dist/assets/panelpart.css +75 -0
  17. package/dist/assets/part.css +109 -0
  18. package/dist/assets/repl.css +145 -0
  19. package/dist/assets/sidebarpart.css +61 -0
  20. package/dist/assets/tunnelView.css +107 -0
  21. package/dist/assets/typeHierarchy.css +62 -0
  22. package/dist/assets/views.css +297 -0
  23. package/dist/collections.d.ts +7 -0
  24. package/dist/colorRegistry.d.ts +710 -0
  25. package/dist/contextkey.d.ts +330 -0
  26. package/dist/debugProtocol.d.ts +2343 -0
  27. package/dist/default-extensions/bat.js +5 -4
  28. package/dist/default-extensions/clojure.js +4 -3
  29. package/dist/default-extensions/coffeescript.js +5 -4
  30. package/dist/default-extensions/cpp.js +10 -9
  31. package/dist/default-extensions/csharp.js +5 -4
  32. package/dist/default-extensions/css.js +4 -3
  33. package/dist/default-extensions/dart.js +4 -3
  34. package/dist/default-extensions/diff.js +4 -3
  35. package/dist/default-extensions/docker.js +4 -3
  36. package/dist/default-extensions/fsharp.js +5 -4
  37. package/dist/default-extensions/go.js +4 -3
  38. package/dist/default-extensions/groovy.js +5 -4
  39. package/dist/default-extensions/handlebars.js +4 -3
  40. package/dist/default-extensions/hlsl.js +4 -3
  41. package/dist/default-extensions/html.js +6 -5
  42. package/dist/default-extensions/ini.js +5 -4
  43. package/dist/default-extensions/java.js +5 -4
  44. package/dist/default-extensions/javascript.js +8 -7
  45. package/dist/default-extensions/json.js +5 -4
  46. package/dist/default-extensions/julia.js +4 -3
  47. package/dist/default-extensions/latex.js +10 -9
  48. package/dist/default-extensions/less.js +4 -3
  49. package/dist/default-extensions/log.js +3 -2
  50. package/dist/default-extensions/lua.js +4 -3
  51. package/dist/default-extensions/make.js +4 -3
  52. package/dist/default-extensions/markdown-basics.js +5 -4
  53. package/dist/default-extensions/objective-c.js +5 -4
  54. package/dist/default-extensions/perl.js +6 -5
  55. package/dist/default-extensions/php.js +6 -5
  56. package/dist/default-extensions/powershell.js +4 -3
  57. package/dist/default-extensions/pug.js +4 -3
  58. package/dist/default-extensions/python.js +5 -4
  59. package/dist/default-extensions/r.js +4 -3
  60. package/dist/default-extensions/razor.js +4 -3
  61. package/dist/default-extensions/references-view.js +8 -0
  62. package/dist/default-extensions/ruby.js +4 -3
  63. package/dist/default-extensions/rust.js +4 -3
  64. package/dist/default-extensions/scss.js +5 -4
  65. package/dist/default-extensions/shaderlab.js +4 -3
  66. package/dist/default-extensions/shellscript.js +4 -3
  67. package/dist/default-extensions/sql.js +4 -3
  68. package/dist/default-extensions/swift.js +5 -4
  69. package/dist/default-extensions/theme-abyss.js +3 -2
  70. package/dist/default-extensions/theme-defaults.js +31 -10
  71. package/dist/default-extensions/theme-kimbie-dark.js +3 -2
  72. package/dist/default-extensions/theme-monokai-dimmed.js +3 -2
  73. package/dist/default-extensions/theme-monokai.js +3 -2
  74. package/dist/default-extensions/theme-quietlight.js +3 -2
  75. package/dist/default-extensions/theme-red.js +3 -2
  76. package/dist/default-extensions/theme-seti.js +5 -2
  77. package/dist/default-extensions/theme-solarized-dark.js +3 -2
  78. package/dist/default-extensions/theme-solarized-light.js +3 -2
  79. package/dist/default-extensions/theme-tomorrow-night-blue.js +3 -2
  80. package/dist/default-extensions/typescript-basics.js +8 -7
  81. package/dist/default-extensions/vb.js +5 -4
  82. package/dist/default-extensions/xml.js +6 -5
  83. package/dist/default-extensions/yaml.js +4 -3
  84. package/dist/editor.d.ts +322 -0
  85. package/dist/editorBrowser.d.ts +3128 -0
  86. package/dist/event.d.ts +581 -0
  87. package/dist/extension-tools-d0cfdea1.js +25603 -0
  88. package/dist/extensions.d.ts +20 -829
  89. package/dist/extensions.d2.ts +457 -0
  90. package/dist/extensions.js +100 -5
  91. package/dist/extensionsRegistry.d.ts +239 -0
  92. package/dist/files.d.ts +853 -0
  93. package/dist/instantiation.d.ts +59 -0
  94. package/dist/jsonSchema.d.ts +90 -0
  95. package/dist/keybinding.d.ts +622 -0
  96. package/dist/languageFeatures.d.ts +4762 -0
  97. package/dist/log.d.ts +150 -0
  98. package/dist/monaco.d.ts +42 -5195
  99. package/dist/override/vs/workbench/contrib/files/browser/views/openEditorsView.js +2 -0
  100. package/dist/rollup-extension-directory-plugin.d.ts +5 -2
  101. package/dist/rollup-extension-directory-plugin.js +74 -46
  102. package/dist/rollup-vsix-plugin.d.ts +4 -2
  103. package/dist/rollup-vsix-plugin.js +57 -19
  104. package/dist/service-override/audioCue.d.ts +4 -19
  105. package/dist/service-override/configuration.d.ts +10 -628
  106. package/dist/service-override/configuration.js +16 -4
  107. package/dist/service-override/debug.d.ts +4 -19
  108. package/dist/service-override/dialogs.d.ts +3 -3
  109. package/dist/service-override/files.d.ts +53 -818
  110. package/dist/service-override/files.js +37 -15
  111. package/dist/service-override/keybindings.d.ts +9 -11
  112. package/dist/service-override/languages.d.ts +4 -74
  113. package/dist/service-override/layout.js +80 -6
  114. package/dist/service-override/modelEditor.d.ts +9 -557
  115. package/dist/service-override/modelEditor.js +5 -3
  116. package/dist/service-override/notifications.d.ts +3 -3
  117. package/dist/service-override/preferences.d.ts +3 -3
  118. package/dist/service-override/snippets.d.ts +3 -3
  119. package/dist/service-override/textmate.d.ts +3 -11
  120. package/dist/service-override/theme.d.ts +4 -16
  121. package/dist/service-override/views.d.ts +502 -0
  122. package/dist/service-override/views.js +177 -0
  123. package/dist/services.d.ts +1946 -16903
  124. package/dist/services.js +3 -0
  125. package/dist/standaloneServices.d.ts +14 -0
  126. package/dist/themables.d.ts +28 -0
  127. package/dist/uri.d.ts +151 -0
  128. package/dist/vscode/vs/base/browser/ui/menu/menubar.js +831 -0
  129. package/dist/vscode/vs/base/browser/ui/splitview/paneview.js +151 -2
  130. package/dist/vscode/vs/base/browser/ui/tree/treeDefaults.js +14 -0
  131. package/dist/vscode/vs/platform/backup/common/backup.js +7 -0
  132. package/dist/vscode/vs/platform/configuration/common/configurationRegistry.js +10 -0
  133. package/dist/vscode/vs/platform/credentials/common/credentials.js +3 -0
  134. package/dist/vscode/vs/platform/extensionManagement/common/extensionManagementUtil.js +4 -1
  135. package/dist/vscode/vs/platform/extensionManagement/common/extensionStorage.js +174 -0
  136. package/dist/vscode/vs/platform/files/common/fileService.js +2 -11
  137. package/dist/vscode/vs/platform/files/common/files.js +28 -0
  138. package/dist/vscode/vs/platform/files/common/io.js +2 -7
  139. package/dist/vscode/vs/platform/languagePacks/common/languagePacks.js +3 -0
  140. package/dist/vscode/vs/platform/remote/common/remoteAuthorityResolver.js +3 -1
  141. package/dist/vscode/vs/platform/storage/common/storage.js +332 -0
  142. package/dist/vscode/vs/platform/telemetry/common/telemetryUtils.js +2 -1
  143. package/dist/vscode/vs/platform/tunnel/common/tunnel.js +29 -1
  144. package/dist/vscode/vs/platform/update/common/update.js +3 -0
  145. package/dist/vscode/vs/platform/window/common/window.js +33 -0
  146. package/dist/vscode/vs/workbench/api/browser/mainThreadBulkEdits.js +18 -1
  147. package/dist/vscode/vs/workbench/api/browser/mainThreadDebugService.js +21 -0
  148. package/dist/vscode/vs/workbench/api/browser/mainThreadExtensionService.js +1 -1
  149. package/dist/vscode/vs/workbench/api/browser/mainThreadLanguageFeatures.js +13 -10
  150. package/dist/vscode/vs/workbench/api/browser/mainThreadLocalization.js +33 -0
  151. package/dist/vscode/vs/workbench/api/browser/mainThreadStorage.js +69 -0
  152. package/dist/vscode/vs/workbench/api/browser/mainThreadTreeViews.js +300 -0
  153. package/dist/vscode/vs/workbench/api/browser/mainThreadWorkspace.js +21 -1
  154. package/dist/vscode/vs/workbench/api/browser/viewsExtensionPoint.js +699 -0
  155. package/dist/vscode/vs/workbench/api/common/extHost.protocol.js +5 -1
  156. package/dist/vscode/vs/workbench/api/common/extHostConfiguration.js +13 -8
  157. package/dist/vscode/vs/workbench/api/common/extHostDebugService.js +31 -0
  158. package/dist/vscode/vs/workbench/api/common/extHostExtensionService.js +4 -4
  159. package/dist/vscode/vs/workbench/api/common/extHostLanguageFeatures.js +54 -43
  160. package/dist/vscode/vs/workbench/api/common/extHostTreeViews.js +823 -0
  161. package/dist/vscode/vs/workbench/api/common/extHostTypeConverters.js +33 -13
  162. package/dist/vscode/vs/workbench/api/common/extHostTypes.js +29 -1
  163. package/dist/vscode/vs/workbench/api/common/extHostVariableResolverService.js +3 -3
  164. package/dist/vscode/vs/workbench/api/common/extHostWorkspace.js +8 -0
  165. package/dist/vscode/vs/workbench/api/common/shared/dataTransferCache.js +1 -1
  166. package/dist/vscode/vs/workbench/browser/actions/layoutActions.js +318 -0
  167. package/dist/vscode/vs/workbench/browser/actions/listCommands.js +602 -0
  168. package/dist/vscode/vs/workbench/browser/actions/windowActions.js +271 -0
  169. package/dist/vscode/vs/workbench/browser/actions/workspaceActions.js +250 -0
  170. package/dist/vscode/vs/workbench/browser/actions/workspaceCommands.js +6 -0
  171. package/dist/vscode/vs/workbench/browser/composite.js +49 -1
  172. package/dist/vscode/vs/workbench/browser/dnd.js +395 -0
  173. package/dist/vscode/vs/workbench/browser/labels.js +426 -0
  174. package/dist/vscode/vs/workbench/browser/panecomposite.js +158 -0
  175. package/dist/vscode/vs/workbench/browser/part.js +84 -0
  176. package/dist/vscode/vs/workbench/browser/parts/activitybar/activitybarActions.js +582 -0
  177. package/dist/vscode/vs/workbench/browser/parts/activitybar/activitybarPart.js +784 -0
  178. package/dist/vscode/vs/workbench/browser/parts/auxiliarybar/auxiliaryBarActions.js +146 -0
  179. package/dist/vscode/vs/workbench/browser/parts/compositeBar.js +687 -0
  180. package/dist/vscode/vs/workbench/browser/parts/compositeBarActions.js +578 -0
  181. package/dist/vscode/vs/workbench/browser/parts/compositePart.js +319 -0
  182. package/dist/vscode/vs/workbench/browser/parts/editor/editorActions.js +7 -7
  183. package/dist/vscode/vs/workbench/browser/parts/editor/editorCommands.js +4 -1121
  184. package/dist/vscode/vs/workbench/browser/parts/panel/panelActions.js +381 -0
  185. package/dist/vscode/vs/workbench/browser/parts/panel/panelPart.js +753 -0
  186. package/dist/vscode/vs/workbench/browser/parts/sidebar/sidebarPart.js +217 -0
  187. package/dist/vscode/vs/workbench/browser/parts/titlebar/menubarControl.js +600 -0
  188. package/dist/vscode/vs/workbench/browser/parts/views/checkbox.js +80 -0
  189. package/dist/vscode/vs/workbench/browser/parts/views/treeView.js +1475 -0
  190. package/dist/vscode/vs/workbench/browser/parts/views/viewFilter.js +181 -0
  191. package/dist/vscode/vs/workbench/browser/parts/views/viewPane.js +50 -2
  192. package/dist/vscode/vs/workbench/browser/parts/views/viewPaneContainer.js +1020 -0
  193. package/dist/vscode/vs/workbench/browser/parts/views/viewsService.js +562 -0
  194. package/dist/vscode/vs/workbench/browser/parts/views/viewsViewlet.js +109 -0
  195. package/dist/vscode/vs/workbench/browser/style.js +43 -0
  196. package/dist/vscode/vs/workbench/common/activity.js +3 -0
  197. package/dist/vscode/vs/workbench/common/contextkeys.js +31 -9
  198. package/dist/vscode/vs/workbench/common/editor/textEditorModel.js +7 -8
  199. package/dist/vscode/vs/workbench/common/editor.js +1 -47
  200. package/dist/vscode/vs/workbench/common/theme.js +38 -25
  201. package/dist/vscode/vs/workbench/common/views.js +280 -1
  202. package/dist/vscode/vs/workbench/contrib/bulkEdit/browser/bulkCellEdits.js +62 -1
  203. package/dist/vscode/vs/workbench/contrib/bulkEdit/browser/bulkEditService.js +305 -0
  204. package/dist/vscode/vs/workbench/contrib/bulkEdit/browser/bulkFileEdits.js +373 -0
  205. package/dist/vscode/vs/workbench/contrib/bulkEdit/browser/bulkTextEdits.js +257 -0
  206. package/dist/vscode/vs/workbench/contrib/callHierarchy/browser/callHierarchy.contribution.js +259 -0
  207. package/dist/vscode/vs/workbench/contrib/callHierarchy/browser/callHierarchyPeek.js +337 -0
  208. package/dist/vscode/vs/workbench/contrib/callHierarchy/browser/callHierarchyTree.js +119 -0
  209. package/dist/vscode/vs/workbench/contrib/debug/browser/baseDebugView.js +8 -2
  210. package/dist/vscode/vs/workbench/contrib/debug/browser/breakpointEditorContribution.js +12 -4
  211. package/dist/vscode/vs/workbench/contrib/debug/browser/breakpointWidget.js +5 -0
  212. package/dist/vscode/vs/workbench/contrib/debug/browser/breakpointsView.js +585 -8
  213. package/dist/vscode/vs/workbench/contrib/debug/browser/callStackEditorContribution.js +5 -1
  214. package/dist/vscode/vs/workbench/contrib/debug/browser/callStackView.js +954 -0
  215. package/dist/vscode/vs/workbench/contrib/debug/browser/debug.contribution.js +151 -145
  216. package/dist/vscode/vs/workbench/contrib/debug/browser/debugANSIHandling.js +345 -0
  217. package/dist/vscode/vs/workbench/contrib/debug/browser/debugCommands.js +79 -3
  218. package/dist/vscode/vs/workbench/contrib/debug/browser/debugEditorActions.js +522 -0
  219. package/dist/vscode/vs/workbench/contrib/debug/browser/debugEditorContribution.js +10 -9
  220. package/dist/vscode/vs/workbench/contrib/debug/browser/debugHover.js +15 -7
  221. package/dist/vscode/vs/workbench/contrib/debug/browser/debugIcons.js +28 -1
  222. package/dist/vscode/vs/workbench/contrib/debug/browser/debugSession.js +72 -65
  223. package/dist/vscode/vs/workbench/contrib/debug/browser/debugViewlet.js +166 -0
  224. package/dist/vscode/vs/workbench/contrib/debug/browser/linkDetector.js +10 -10
  225. package/dist/vscode/vs/workbench/contrib/debug/browser/loadedScriptsView.js +629 -0
  226. package/dist/vscode/vs/workbench/contrib/debug/browser/repl.js +908 -0
  227. package/dist/vscode/vs/workbench/contrib/debug/browser/replFilter.js +46 -0
  228. package/dist/vscode/vs/workbench/contrib/debug/browser/replViewer.js +330 -0
  229. package/dist/vscode/vs/workbench/contrib/debug/browser/variablesView.js +295 -10
  230. package/dist/vscode/vs/workbench/contrib/debug/browser/watchExpressionsView.js +411 -0
  231. package/dist/vscode/vs/workbench/contrib/debug/browser/welcomeView.js +85 -0
  232. package/dist/vscode/vs/workbench/contrib/debug/common/debug.js +98 -1
  233. package/dist/vscode/vs/workbench/contrib/debug/common/debugModel.js +10 -1
  234. package/dist/vscode/vs/workbench/contrib/debug/common/debugViewModel.js +9 -1
  235. package/dist/vscode/vs/workbench/contrib/debug/common/replModel.js +51 -1
  236. package/dist/vscode/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService.js +3 -0
  237. package/dist/vscode/vs/workbench/contrib/files/browser/explorerViewlet.js +254 -0
  238. package/dist/vscode/vs/workbench/contrib/files/browser/fileActions.contribution.js +207 -0
  239. package/dist/vscode/vs/workbench/contrib/files/browser/fileActions.js +1119 -0
  240. package/dist/vscode/vs/workbench/contrib/files/browser/fileCommands.js +595 -0
  241. package/dist/vscode/vs/workbench/contrib/files/browser/fileConstants.js +26 -0
  242. package/dist/vscode/vs/workbench/contrib/files/browser/fileImportExport.js +708 -0
  243. package/dist/vscode/vs/workbench/contrib/files/browser/files.contribution.js +368 -13
  244. package/dist/vscode/vs/workbench/contrib/files/browser/files.js +88 -1
  245. package/dist/vscode/vs/workbench/contrib/files/browser/views/emptyView.js +88 -0
  246. package/dist/vscode/vs/workbench/contrib/files/browser/views/explorerDecorationsProvider.js +73 -0
  247. package/dist/vscode/vs/workbench/contrib/files/browser/views/explorerView.js +796 -0
  248. package/dist/vscode/vs/workbench/contrib/files/browser/views/explorerViewer.js +1209 -0
  249. package/dist/vscode/vs/workbench/contrib/files/common/files.js +194 -3
  250. package/dist/vscode/vs/workbench/contrib/interactiveSession/browser/interactiveSessionFollowups.js +30 -0
  251. package/dist/vscode/vs/workbench/contrib/interactiveSession/browser/interactiveSessionInputPart.js +196 -0
  252. package/dist/vscode/vs/workbench/contrib/interactiveSession/browser/interactiveSessionListRenderer.js +622 -0
  253. package/dist/vscode/vs/workbench/contrib/interactiveSession/browser/interactiveSessionOptions.js +77 -0
  254. package/dist/vscode/vs/workbench/contrib/interactiveSession/browser/interactiveSessionWidget.js +311 -0
  255. package/dist/vscode/vs/workbench/contrib/interactiveSession/common/interactiveSessionContextKeys.js +48 -0
  256. package/dist/vscode/vs/workbench/contrib/interactiveSession/common/interactiveSessionService.js +8 -0
  257. package/dist/vscode/vs/workbench/contrib/interactiveSession/common/interactiveSessionViewModel.js +207 -0
  258. package/dist/vscode/vs/workbench/contrib/interactiveSession/common/interactiveSessionWidgetHistoryService.js +3 -0
  259. package/dist/vscode/vs/workbench/contrib/interactiveSession/common/interactiveSessionWordCounter.js +25 -0
  260. package/dist/vscode/vs/workbench/contrib/notebook/browser/notebookBrowser.js +27 -0
  261. package/dist/vscode/vs/workbench/contrib/notebook/common/notebookCommon.js +79 -1
  262. package/dist/vscode/vs/workbench/contrib/notebook/common/notebookEditorInput.js +249 -0
  263. package/dist/vscode/vs/workbench/contrib/notebook/common/notebookEditorModelResolverService.js +3 -0
  264. package/dist/vscode/vs/workbench/contrib/notebook/common/notebookService.js +10 -0
  265. package/dist/vscode/vs/workbench/contrib/quickaccess/browser/commandsQuickAccess.js +117 -19
  266. package/dist/vscode/vs/workbench/contrib/remote/browser/remoteExplorer.js +186 -0
  267. package/dist/vscode/vs/workbench/contrib/remote/browser/remoteIcons.js +23 -0
  268. package/dist/vscode/vs/workbench/contrib/remote/browser/tunnelView.js +1636 -0
  269. package/dist/vscode/vs/workbench/contrib/scm/common/scm.js +2 -0
  270. package/dist/vscode/vs/workbench/contrib/terminal/common/terminalColorRegistry.js +167 -0
  271. package/dist/vscode/vs/workbench/contrib/testing/common/testId.js +5 -2
  272. package/dist/vscode/vs/workbench/contrib/typeHierarchy/browser/typeHierarchy.contribution.js +244 -0
  273. package/dist/vscode/vs/workbench/contrib/typeHierarchy/browser/typeHierarchyPeek.js +332 -0
  274. package/dist/vscode/vs/workbench/contrib/typeHierarchy/browser/typeHierarchyTree.js +117 -0
  275. package/dist/vscode/vs/workbench/contrib/webview/browser/webview.js +41 -0
  276. package/dist/vscode/vs/workbench/contrib/webview/browser/webviewWindowDragMonitor.js +20 -0
  277. package/dist/vscode/vs/workbench/contrib/webviewView/browser/webviewViewPane.js +231 -0
  278. package/dist/vscode/vs/workbench/contrib/webviewView/browser/webviewViewService.js +3 -0
  279. package/dist/vscode/vs/workbench/services/actions/common/menusExtensionPoint.js +179 -1
  280. package/dist/vscode/vs/workbench/services/activity/browser/activityService.js +94 -0
  281. package/dist/vscode/vs/workbench/services/activity/common/activity.js +15 -1
  282. package/dist/vscode/vs/workbench/services/authentication/browser/authenticationService.js +35 -0
  283. package/dist/vscode/vs/workbench/services/authentication/common/authentication.js +3 -0
  284. package/dist/vscode/vs/workbench/services/configuration/browser/configuration.js +1 -1
  285. package/dist/vscode/vs/workbench/services/configurationResolver/common/variableResolver.js +13 -13
  286. package/dist/vscode/vs/workbench/services/extensions/common/extensionDescriptionRegistry.js +3 -3
  287. package/dist/vscode/vs/workbench/services/extensions/common/extensionStorageMigration.js +56 -0
  288. package/dist/vscode/vs/workbench/services/extensions/common/extensions.js +1 -1
  289. package/dist/vscode/vs/workbench/services/extensions/common/extensionsApiProposals.js +8 -0
  290. package/dist/vscode/vs/workbench/services/hover/browser/hover.js +3 -0
  291. package/dist/vscode/vs/workbench/services/hover/browser/hoverService.js +149 -0
  292. package/dist/vscode/vs/workbench/services/hover/browser/hoverWidget.js +514 -0
  293. package/dist/vscode/vs/workbench/services/keybinding/common/macLinuxKeyboardMapper.js +29 -29
  294. package/dist/vscode/vs/workbench/services/keybinding/common/windowsKeyboardMapper.js +11 -11
  295. package/dist/vscode/vs/workbench/services/language/common/languageService.js +1 -1
  296. package/dist/vscode/vs/workbench/services/layout/browser/layoutService.js +9 -1
  297. package/dist/vscode/vs/workbench/services/remote/common/remoteExplorerService.js +782 -0
  298. package/dist/vscode/vs/workbench/services/search/common/ignoreFile.js +102 -0
  299. package/dist/vscode/vs/workbench/services/search/common/queryBuilder.js +26 -8
  300. package/dist/vscode/vs/workbench/services/search/common/search.js +4 -3
  301. package/dist/vscode/vs/workbench/services/semanticSimilarity/common/semanticSimilarityService.js +3 -0
  302. package/dist/vscode/vs/workbench/services/textMate/browser/workerHost/textMateWorkerTokenizerController.js +6 -10
  303. package/dist/vscode/vs/workbench/services/textfile/common/textfiles.js +1 -1
  304. package/dist/vscode/vs/workbench/services/themes/browser/fileIconThemeData.js +2 -2
  305. package/dist/vscode/vs/workbench/services/themes/browser/productIconThemeData.js +4 -5
  306. package/dist/vscode/vs/workbench/services/themes/browser/workbenchThemeService.js +16 -10
  307. package/dist/vscode/vs/workbench/services/themes/common/themeConfiguration.js +36 -38
  308. package/dist/vscode/vs/workbench/services/themes/common/themeExtensionPoints.js +4 -8
  309. package/dist/vscode/vs/workbench/services/themes/common/workbenchThemeService.js +22 -1
  310. package/dist/vscode/vs/workbench/services/views/browser/treeViewsService.js +3 -0
  311. package/dist/vscode/vs/workbench/services/views/browser/viewDescriptorService.js +688 -0
  312. package/dist/vscode/vs/workbench/services/views/common/treeViewsService.js +20 -0
  313. package/dist/vscode/vs/workbench/services/views/common/viewContainerModel.js +613 -0
  314. package/dist/vscode-default-extensions/bat/language-configuration.json.extensionResource.js +2 -0
  315. package/dist/vscode-default-extensions/bat/snippets/batchfile.code-snippets.extensionResource.js +2 -0
  316. package/dist/vscode-default-extensions/bat/syntaxes/batchfile.tmLanguage.json.extensionResource.js +2 -0
  317. package/dist/vscode-default-extensions/clojure/language-configuration.json.extensionResource.js +2 -0
  318. package/dist/vscode-default-extensions/clojure/syntaxes/clojure.tmLanguage.json.extensionResource.js +2 -0
  319. package/dist/vscode-default-extensions/coffeescript/language-configuration.json.extensionResource.js +2 -0
  320. package/dist/vscode-default-extensions/coffeescript/snippets/coffeescript.code-snippets.extensionResource.js +2 -0
  321. package/dist/vscode-default-extensions/coffeescript/syntaxes/coffeescript.tmLanguage.json.extensionResource.js +2 -0
  322. package/dist/vscode-default-extensions/cpp/language-configuration.json.extensionResource.js +2 -0
  323. package/dist/vscode-default-extensions/cpp/snippets/c.code-snippets.extensionResource.js +2 -0
  324. package/dist/vscode-default-extensions/cpp/snippets/cpp.code-snippets.extensionResource.js +2 -0
  325. package/dist/vscode-default-extensions/cpp/syntaxes/c.tmLanguage.json.extensionResource.js +2 -0
  326. package/dist/vscode-default-extensions/cpp/syntaxes/cpp.embedded.macro.tmLanguage.json.extensionResource.js +2 -0
  327. package/dist/vscode-default-extensions/cpp/syntaxes/cpp.tmLanguage.json.extensionResource.js +2 -0
  328. package/dist/vscode-default-extensions/cpp/syntaxes/cuda-cpp.tmLanguage.json.extensionResource.js +2 -0
  329. package/dist/vscode-default-extensions/cpp/syntaxes/{platform.tmLanguage.json.js → platform.tmLanguage.json.extensionResource.js} +2 -2
  330. package/dist/vscode-default-extensions/csharp/language-configuration.json.extensionResource.js +2 -0
  331. package/dist/vscode-default-extensions/csharp/snippets/csharp.code-snippets.extensionResource.js +2 -0
  332. package/dist/vscode-default-extensions/csharp/syntaxes/csharp.tmLanguage.json.extensionResource.js +2 -0
  333. package/dist/vscode-default-extensions/css/language-configuration.json.extensionResource.js +2 -0
  334. package/dist/vscode-default-extensions/css/syntaxes/css.tmLanguage.json.extensionResource.js +2 -0
  335. package/dist/vscode-default-extensions/dart/language-configuration.json.extensionResource.js +2 -0
  336. package/dist/vscode-default-extensions/dart/syntaxes/dart.tmLanguage.json.extensionResource.js +2 -0
  337. package/dist/vscode-default-extensions/diff/language-configuration.json.extensionResource.js +2 -0
  338. package/dist/vscode-default-extensions/diff/syntaxes/diff.tmLanguage.json.extensionResource.js +2 -0
  339. package/dist/vscode-default-extensions/docker/language-configuration.json.extensionResource.js +2 -0
  340. package/dist/vscode-default-extensions/docker/syntaxes/docker.tmLanguage.json.extensionResource.js +2 -0
  341. package/dist/vscode-default-extensions/fsharp/language-configuration.json.extensionResource.js +2 -0
  342. package/dist/vscode-default-extensions/fsharp/snippets/fsharp.code-snippets.extensionResource.js +2 -0
  343. package/dist/vscode-default-extensions/fsharp/syntaxes/fsharp.tmLanguage.json.extensionResource.js +2 -0
  344. package/dist/vscode-default-extensions/go/language-configuration.json.extensionResource.js +2 -0
  345. package/dist/vscode-default-extensions/go/syntaxes/go.tmLanguage.json.extensionResource.js +2 -0
  346. package/dist/vscode-default-extensions/groovy/language-configuration.json.extensionResource.js +2 -0
  347. package/dist/vscode-default-extensions/groovy/snippets/groovy.code-snippets.extensionResource.js +2 -0
  348. package/dist/vscode-default-extensions/groovy/syntaxes/groovy.tmLanguage.json.extensionResource.js +2 -0
  349. package/dist/vscode-default-extensions/handlebars/language-configuration.json.extensionResource.js +2 -0
  350. package/dist/vscode-default-extensions/handlebars/syntaxes/Handlebars.tmLanguage.json.extensionResource.js +2 -0
  351. package/dist/vscode-default-extensions/hlsl/language-configuration.json.extensionResource.js +2 -0
  352. package/dist/vscode-default-extensions/hlsl/syntaxes/hlsl.tmLanguage.json.extensionResource.js +2 -0
  353. package/dist/vscode-default-extensions/html/language-configuration.json.extensionResource.js +2 -0
  354. package/dist/vscode-default-extensions/html/snippets/html.code-snippets.extensionResource.js +2 -0
  355. package/dist/vscode-default-extensions/html/syntaxes/html-derivative.tmLanguage.json.extensionResource.js +2 -0
  356. package/dist/vscode-default-extensions/html/syntaxes/html.tmLanguage.json.extensionResource.js +2 -0
  357. package/dist/vscode-default-extensions/ini/ini.language-configuration.json.extensionResource.js +2 -0
  358. package/dist/vscode-default-extensions/ini/properties.language-configuration.json.extensionResource.js +2 -0
  359. package/dist/vscode-default-extensions/ini/syntaxes/ini.tmLanguage.json.extensionResource.js +2 -0
  360. package/dist/vscode-default-extensions/java/language-configuration.json.extensionResource.js +2 -0
  361. package/dist/vscode-default-extensions/java/snippets/java.code-snippets.extensionResource.js +2 -0
  362. package/dist/vscode-default-extensions/java/syntaxes/java.tmLanguage.json.extensionResource.js +2 -0
  363. package/dist/vscode-default-extensions/javascript/javascript-language-configuration.json.extensionResource.js +2 -0
  364. package/dist/vscode-default-extensions/javascript/snippets/javascript.code-snippets.extensionResource.js +2 -0
  365. package/dist/vscode-default-extensions/javascript/syntaxes/JavaScript.tmLanguage.json.extensionResource.js +2 -0
  366. package/dist/vscode-default-extensions/javascript/syntaxes/JavaScriptReact.tmLanguage.json.extensionResource.js +2 -0
  367. package/dist/vscode-default-extensions/javascript/syntaxes/Regular Expressions (JavaScript).tmLanguage.extensionResource.js +2 -0
  368. package/dist/vscode-default-extensions/javascript/tags-language-configuration.json.extensionResource.js +2 -0
  369. package/dist/vscode-default-extensions/json/language-configuration.json.extensionResource.js +2 -0
  370. package/dist/vscode-default-extensions/json/syntaxes/JSON.tmLanguage.json.extensionResource.js +2 -0
  371. package/dist/vscode-default-extensions/json/syntaxes/JSONC.tmLanguage.json.extensionResource.js +2 -0
  372. package/dist/vscode-default-extensions/julia/language-configuration.json.extensionResource.js +2 -0
  373. package/dist/vscode-default-extensions/julia/syntaxes/julia.tmLanguage.json.extensionResource.js +2 -0
  374. package/dist/vscode-default-extensions/latex/latex-cpp-embedded-language-configuration.json.extensionResource.js +2 -0
  375. package/dist/vscode-default-extensions/latex/latex-language-configuration.json.extensionResource.js +2 -0
  376. package/dist/vscode-default-extensions/latex/markdown-latex-combined-language-configuration.json.extensionResource.js +2 -0
  377. package/dist/vscode-default-extensions/latex/syntaxes/Bibtex.tmLanguage.json.extensionResource.js +2 -0
  378. package/dist/vscode-default-extensions/latex/syntaxes/LaTeX.tmLanguage.json.extensionResource.js +2 -0
  379. package/dist/vscode-default-extensions/latex/syntaxes/TeX.tmLanguage.json.extensionResource.js +2 -0
  380. package/dist/vscode-default-extensions/latex/syntaxes/cpp-grammar-bailout.tmLanguage.json.extensionResource.js +2 -0
  381. package/dist/vscode-default-extensions/latex/syntaxes/markdown-latex-combined.tmLanguage.json.extensionResource.js +2 -0
  382. package/dist/vscode-default-extensions/less/language-configuration.json.extensionResource.js +2 -0
  383. package/dist/vscode-default-extensions/less/syntaxes/less.tmLanguage.json.extensionResource.js +2 -0
  384. package/dist/vscode-default-extensions/log/syntaxes/log.tmLanguage.json.extensionResource.js +2 -0
  385. package/dist/vscode-default-extensions/lua/language-configuration.json.extensionResource.js +2 -0
  386. package/dist/vscode-default-extensions/lua/syntaxes/lua.tmLanguage.json.extensionResource.js +2 -0
  387. package/dist/vscode-default-extensions/make/language-configuration.json.extensionResource.js +2 -0
  388. package/dist/vscode-default-extensions/make/syntaxes/make.tmLanguage.json.extensionResource.js +2 -0
  389. package/dist/vscode-default-extensions/markdown-basics/language-configuration.json.extensionResource.js +2 -0
  390. package/dist/vscode-default-extensions/markdown-basics/snippets/markdown.code-snippets.extensionResource.js +2 -0
  391. package/dist/vscode-default-extensions/markdown-basics/syntaxes/markdown.tmLanguage.json.extensionResource.js +2 -0
  392. package/dist/vscode-default-extensions/objective-c/language-configuration.json.extensionResource.js +2 -0
  393. package/dist/vscode-default-extensions/objective-c/syntaxes/objective-c.tmLanguage.json.extensionResource.js +2 -0
  394. package/dist/vscode-default-extensions/objective-c/syntaxes/objective-c__.tmLanguage.json.extensionResource.js +2 -0
  395. package/dist/vscode-default-extensions/perl/perl.language-configuration.json.extensionResource.js +2 -0
  396. package/dist/vscode-default-extensions/perl/perl6.language-configuration.json.extensionResource.js +2 -0
  397. package/dist/vscode-default-extensions/perl/syntaxes/perl.tmLanguage.json.extensionResource.js +2 -0
  398. package/dist/vscode-default-extensions/perl/syntaxes/perl6.tmLanguage.json.extensionResource.js +2 -0
  399. package/dist/vscode-default-extensions/php/language-configuration.json.extensionResource.js +2 -0
  400. package/dist/vscode-default-extensions/php/snippets/php.code-snippets.extensionResource.js +2 -0
  401. package/dist/vscode-default-extensions/php/syntaxes/html.tmLanguage.json.extensionResource.js +2 -0
  402. package/dist/vscode-default-extensions/php/syntaxes/php.tmLanguage.json.extensionResource.js +2 -0
  403. package/dist/vscode-default-extensions/powershell/language-configuration.json.extensionResource.js +2 -0
  404. package/dist/vscode-default-extensions/powershell/syntaxes/powershell.tmLanguage.json.extensionResource.js +2 -0
  405. package/dist/vscode-default-extensions/pug/language-configuration.json.extensionResource.js +2 -0
  406. package/dist/vscode-default-extensions/pug/syntaxes/pug.tmLanguage.json.extensionResource.js +2 -0
  407. package/dist/vscode-default-extensions/python/language-configuration.json.extensionResource.js +2 -0
  408. package/dist/vscode-default-extensions/python/syntaxes/MagicPython.tmLanguage.json.extensionResource.js +2 -0
  409. package/dist/vscode-default-extensions/python/syntaxes/MagicRegExp.tmLanguage.json.extensionResource.js +2 -0
  410. package/dist/vscode-default-extensions/r/language-configuration.json.extensionResource.js +2 -0
  411. package/dist/vscode-default-extensions/r/syntaxes/r.tmLanguage.json.extensionResource.js +2 -0
  412. package/dist/vscode-default-extensions/razor/language-configuration.json.extensionResource.js +2 -0
  413. package/dist/vscode-default-extensions/razor/syntaxes/cshtml.tmLanguage.json.extensionResource.js +2 -0
  414. package/dist/vscode-default-extensions/references-view/dist/extension.js.extensionResource.js +2 -0
  415. package/dist/vscode-default-extensions/references-view/package.json.js +2 -0
  416. package/dist/vscode-default-extensions/ruby/language-configuration.json.extensionResource.js +2 -0
  417. package/dist/vscode-default-extensions/ruby/syntaxes/ruby.tmLanguage.json.extensionResource.js +2 -0
  418. package/dist/vscode-default-extensions/rust/language-configuration.json.extensionResource.js +2 -0
  419. package/dist/vscode-default-extensions/rust/syntaxes/rust.tmLanguage.json.extensionResource.js +2 -0
  420. package/dist/vscode-default-extensions/scss/language-configuration.json.extensionResource.js +2 -0
  421. package/dist/vscode-default-extensions/scss/syntaxes/sassdoc.tmLanguage.json.extensionResource.js +2 -0
  422. package/dist/vscode-default-extensions/scss/syntaxes/scss.tmLanguage.json.extensionResource.js +2 -0
  423. package/dist/vscode-default-extensions/shaderlab/language-configuration.json.extensionResource.js +2 -0
  424. package/dist/vscode-default-extensions/shaderlab/syntaxes/shaderlab.tmLanguage.json.extensionResource.js +2 -0
  425. package/dist/vscode-default-extensions/shellscript/language-configuration.json.extensionResource.js +2 -0
  426. package/dist/vscode-default-extensions/shellscript/syntaxes/shell-unix-bash.tmLanguage.json.extensionResource.js +2 -0
  427. package/dist/vscode-default-extensions/sql/language-configuration.json.extensionResource.js +2 -0
  428. package/dist/vscode-default-extensions/sql/syntaxes/sql.tmLanguage.json.extensionResource.js +2 -0
  429. package/dist/vscode-default-extensions/swift/language-configuration.json.extensionResource.js +2 -0
  430. package/dist/vscode-default-extensions/swift/snippets/swift.code-snippets.extensionResource.js +2 -0
  431. package/dist/vscode-default-extensions/swift/syntaxes/swift.tmLanguage.json.extensionResource.js +2 -0
  432. package/dist/vscode-default-extensions/theme-abyss/themes/abyss-color-theme.json.extensionResource.js +2 -0
  433. package/dist/vscode-default-extensions/theme-defaults/fileicons/images/document-dark.svg.extensionResource.js +2 -0
  434. package/dist/vscode-default-extensions/theme-defaults/fileicons/images/document-light.svg.extensionResource.js +2 -0
  435. package/dist/vscode-default-extensions/theme-defaults/fileicons/images/folder-dark.svg.extensionResource.js +2 -0
  436. package/dist/vscode-default-extensions/theme-defaults/fileicons/images/folder-light.svg.extensionResource.js +2 -0
  437. package/dist/vscode-default-extensions/theme-defaults/fileicons/images/folder-open-dark.svg.extensionResource.js +2 -0
  438. package/dist/vscode-default-extensions/theme-defaults/fileicons/images/folder-open-light.svg.extensionResource.js +2 -0
  439. package/dist/vscode-default-extensions/theme-defaults/fileicons/images/root-folder-dark.svg.extensionResource.js +2 -0
  440. package/dist/vscode-default-extensions/theme-defaults/fileicons/images/root-folder-light.svg.extensionResource.js +2 -0
  441. package/dist/vscode-default-extensions/theme-defaults/fileicons/images/root-folder-open-dark.svg.extensionResource.js +2 -0
  442. package/dist/vscode-default-extensions/theme-defaults/fileicons/images/root-folder-open-light.svg.extensionResource.js +2 -0
  443. package/dist/vscode-default-extensions/theme-defaults/fileicons/vs_minimal-icon-theme.json.extensionResource.js +2 -0
  444. package/dist/vscode-default-extensions/theme-defaults/package.json.js +1 -1
  445. package/dist/vscode-default-extensions/theme-defaults/themes/dark_plus.json.extensionResource.js +2 -0
  446. package/dist/vscode-default-extensions/theme-defaults/themes/dark_plus_experimental.json.extensionResource.js +2 -0
  447. package/dist/vscode-default-extensions/theme-defaults/themes/dark_vs.json.extensionResource.js +2 -0
  448. package/dist/vscode-default-extensions/theme-defaults/themes/hc_black.json.extensionResource.js +2 -0
  449. package/dist/vscode-default-extensions/theme-defaults/themes/hc_light.json.extensionResource.js +2 -0
  450. package/dist/vscode-default-extensions/theme-defaults/themes/light_plus.json.extensionResource.js +2 -0
  451. package/dist/vscode-default-extensions/theme-defaults/themes/light_plus_experimental.json.extensionResource.js +2 -0
  452. package/dist/vscode-default-extensions/theme-defaults/themes/light_vs.json.extensionResource.js +2 -0
  453. package/dist/vscode-default-extensions/theme-kimbie-dark/themes/kimbie-dark-color-theme.json.extensionResource.js +2 -0
  454. package/dist/vscode-default-extensions/theme-monokai/themes/monokai-color-theme.json.extensionResource.js +2 -0
  455. package/dist/vscode-default-extensions/theme-monokai-dimmed/themes/dimmed-monokai-color-theme.json.extensionResource.js +2 -0
  456. package/dist/vscode-default-extensions/theme-quietlight/themes/quietlight-color-theme.json.extensionResource.js +2 -0
  457. package/dist/vscode-default-extensions/theme-red/themes/Red-color-theme.json.extensionResource.js +2 -0
  458. package/dist/vscode-default-extensions/theme-seti/icons/seti.woff.extensionResource.js +2 -0
  459. package/dist/vscode-default-extensions/theme-seti/icons/vs-seti-icon-theme.json.extensionResource.js +2 -0
  460. package/dist/vscode-default-extensions/theme-solarized-dark/themes/solarized-dark-color-theme.json.extensionResource.js +2 -0
  461. package/dist/vscode-default-extensions/theme-solarized-light/themes/solarized-light-color-theme.json.extensionResource.js +2 -0
  462. package/dist/vscode-default-extensions/theme-tomorrow-night-blue/themes/tomorrow-night-blue-color-theme.json.extensionResource.js +2 -0
  463. package/dist/vscode-default-extensions/typescript-basics/language-configuration.json.extensionResource.js +2 -0
  464. package/dist/vscode-default-extensions/typescript-basics/snippets/typescript.code-snippets.extensionResource.js +2 -0
  465. package/dist/vscode-default-extensions/typescript-basics/syntaxes/TypeScript.tmLanguage.json.extensionResource.js +2 -0
  466. package/dist/vscode-default-extensions/typescript-basics/syntaxes/TypeScriptReact.tmLanguage.json.extensionResource.js +2 -0
  467. package/dist/vscode-default-extensions/typescript-basics/syntaxes/jsdoc.js.injection.tmLanguage.json.extensionResource.js +2 -0
  468. package/dist/vscode-default-extensions/typescript-basics/syntaxes/jsdoc.ts.injection.tmLanguage.json.extensionResource.js +2 -0
  469. package/dist/vscode-default-extensions/vb/language-configuration.json.extensionResource.js +2 -0
  470. package/dist/vscode-default-extensions/vb/snippets/vb.code-snippets.extensionResource.js +2 -0
  471. package/dist/vscode-default-extensions/vb/syntaxes/asp-vb-net.tmlanguage.json.extensionResource.js +2 -0
  472. package/dist/vscode-default-extensions/xml/syntaxes/xml.tmLanguage.json.extensionResource.js +2 -0
  473. package/dist/vscode-default-extensions/xml/syntaxes/xsl.tmLanguage.json.extensionResource.js +2 -0
  474. package/dist/vscode-default-extensions/xml/xml.language-configuration.json.extensionResource.js +2 -0
  475. package/dist/vscode-default-extensions/xml/xsl.language-configuration.json.extensionResource.js +2 -0
  476. package/dist/vscode-default-extensions/yaml/language-configuration.json.extensionResource.js +2 -0
  477. package/dist/vscode-default-extensions/yaml/syntaxes/yaml.tmLanguage.json.extensionResource.js +2 -0
  478. package/dist/vscode-services/extHost.js +28 -5
  479. package/dist/vscode-services/l10n.js +26 -0
  480. package/dist/vscode-services/missing-services.js +64 -12
  481. package/dist/vscode-services/window.js +23 -5
  482. package/dist/workbenchThemeService.d.ts +20 -0
  483. package/dist/workspace.d.ts +141 -0
  484. package/monaco-editor-treemending.patch +1134 -1902
  485. package/package.json +28 -16
  486. package/dist/default-extensions/typescript-language-features.js +0 -6
  487. package/dist/extension-tools-b68a64de.js +0 -1024
  488. package/dist/vscode/vs/workbench/browser/parts/editor/editorPane.js +0 -242
  489. package/dist/vscode/vs/workbench/browser/parts/editor/editorWithViewState.js +0 -139
  490. package/dist/vscode/vs/workbench/browser/parts/editor/sideBySideEditor.js +0 -387
  491. package/dist/vscode/vs/workbench/browser/parts/editor/textDiffEditor.js +0 -289
  492. package/dist/vscode-default-extensions/bat/language-configuration.json.js +0 -2
  493. package/dist/vscode-default-extensions/bat/snippets/batchfile.code-snippets.js +0 -2
  494. package/dist/vscode-default-extensions/bat/syntaxes/batchfile.tmLanguage.json.js +0 -2
  495. package/dist/vscode-default-extensions/clojure/language-configuration.json.js +0 -2
  496. package/dist/vscode-default-extensions/clojure/syntaxes/clojure.tmLanguage.json.js +0 -2
  497. package/dist/vscode-default-extensions/coffeescript/language-configuration.json.js +0 -2
  498. package/dist/vscode-default-extensions/coffeescript/snippets/coffeescript.code-snippets.js +0 -2
  499. package/dist/vscode-default-extensions/coffeescript/syntaxes/coffeescript.tmLanguage.json.js +0 -2
  500. package/dist/vscode-default-extensions/cpp/language-configuration.json.js +0 -2
  501. package/dist/vscode-default-extensions/cpp/snippets/c.code-snippets.js +0 -2
  502. package/dist/vscode-default-extensions/cpp/snippets/cpp.code-snippets.js +0 -2
  503. package/dist/vscode-default-extensions/cpp/syntaxes/c.tmLanguage.json.js +0 -2
  504. package/dist/vscode-default-extensions/cpp/syntaxes/cpp.embedded.macro.tmLanguage.json.js +0 -2
  505. package/dist/vscode-default-extensions/cpp/syntaxes/cpp.tmLanguage.json.js +0 -2
  506. package/dist/vscode-default-extensions/cpp/syntaxes/cuda-cpp.tmLanguage.json.js +0 -2
  507. package/dist/vscode-default-extensions/csharp/language-configuration.json.js +0 -2
  508. package/dist/vscode-default-extensions/csharp/snippets/csharp.code-snippets.js +0 -2
  509. package/dist/vscode-default-extensions/csharp/syntaxes/csharp.tmLanguage.json.js +0 -2
  510. package/dist/vscode-default-extensions/css/language-configuration.json.js +0 -2
  511. package/dist/vscode-default-extensions/css/syntaxes/css.tmLanguage.json.js +0 -2
  512. package/dist/vscode-default-extensions/dart/language-configuration.json.js +0 -2
  513. package/dist/vscode-default-extensions/dart/syntaxes/dart.tmLanguage.json.js +0 -2
  514. package/dist/vscode-default-extensions/diff/language-configuration.json.js +0 -2
  515. package/dist/vscode-default-extensions/diff/syntaxes/diff.tmLanguage.json.js +0 -2
  516. package/dist/vscode-default-extensions/docker/language-configuration.json.js +0 -2
  517. package/dist/vscode-default-extensions/docker/syntaxes/docker.tmLanguage.json.js +0 -2
  518. package/dist/vscode-default-extensions/fsharp/language-configuration.json.js +0 -2
  519. package/dist/vscode-default-extensions/fsharp/snippets/fsharp.code-snippets.js +0 -2
  520. package/dist/vscode-default-extensions/fsharp/syntaxes/fsharp.tmLanguage.json.js +0 -2
  521. package/dist/vscode-default-extensions/go/language-configuration.json.js +0 -2
  522. package/dist/vscode-default-extensions/go/syntaxes/go.tmLanguage.json.js +0 -2
  523. package/dist/vscode-default-extensions/groovy/language-configuration.json.js +0 -2
  524. package/dist/vscode-default-extensions/groovy/snippets/groovy.code-snippets.js +0 -2
  525. package/dist/vscode-default-extensions/groovy/syntaxes/groovy.tmLanguage.json.js +0 -2
  526. package/dist/vscode-default-extensions/handlebars/language-configuration.json.js +0 -2
  527. package/dist/vscode-default-extensions/handlebars/syntaxes/Handlebars.tmLanguage.json.js +0 -2
  528. package/dist/vscode-default-extensions/hlsl/language-configuration.json.js +0 -2
  529. package/dist/vscode-default-extensions/hlsl/syntaxes/hlsl.tmLanguage.json.js +0 -2
  530. package/dist/vscode-default-extensions/html/language-configuration.json.js +0 -2
  531. package/dist/vscode-default-extensions/html/snippets/html.code-snippets.js +0 -2
  532. package/dist/vscode-default-extensions/html/syntaxes/html-derivative.tmLanguage.json.js +0 -2
  533. package/dist/vscode-default-extensions/html/syntaxes/html.tmLanguage.json.js +0 -2
  534. package/dist/vscode-default-extensions/ini/ini.language-configuration.json.js +0 -2
  535. package/dist/vscode-default-extensions/ini/properties.language-configuration.json.js +0 -2
  536. package/dist/vscode-default-extensions/ini/syntaxes/ini.tmLanguage.json.js +0 -2
  537. package/dist/vscode-default-extensions/java/language-configuration.json.js +0 -2
  538. package/dist/vscode-default-extensions/java/snippets/java.code-snippets.js +0 -2
  539. package/dist/vscode-default-extensions/java/syntaxes/java.tmLanguage.json.js +0 -2
  540. package/dist/vscode-default-extensions/javascript/javascript-language-configuration.json.js +0 -2
  541. package/dist/vscode-default-extensions/javascript/snippets/javascript.code-snippets.js +0 -2
  542. package/dist/vscode-default-extensions/javascript/syntaxes/JavaScript.tmLanguage.json.js +0 -2
  543. package/dist/vscode-default-extensions/javascript/syntaxes/JavaScriptReact.tmLanguage.json.js +0 -2
  544. package/dist/vscode-default-extensions/javascript/syntaxes/Regular Expressions (JavaScript).tmLanguage.js +0 -2
  545. package/dist/vscode-default-extensions/javascript/tags-language-configuration.json.js +0 -2
  546. package/dist/vscode-default-extensions/json/language-configuration.json.js +0 -2
  547. package/dist/vscode-default-extensions/json/syntaxes/JSON.tmLanguage.json.js +0 -2
  548. package/dist/vscode-default-extensions/json/syntaxes/JSONC.tmLanguage.json.js +0 -2
  549. package/dist/vscode-default-extensions/julia/language-configuration.json.js +0 -2
  550. package/dist/vscode-default-extensions/julia/syntaxes/julia.tmLanguage.json.js +0 -2
  551. package/dist/vscode-default-extensions/latex/latex-cpp-embedded-language-configuration.json.js +0 -2
  552. package/dist/vscode-default-extensions/latex/latex-language-configuration.json.js +0 -2
  553. package/dist/vscode-default-extensions/latex/markdown-latex-combined-language-configuration.json.js +0 -2
  554. package/dist/vscode-default-extensions/latex/syntaxes/Bibtex.tmLanguage.json.js +0 -2
  555. package/dist/vscode-default-extensions/latex/syntaxes/LaTeX.tmLanguage.json.js +0 -2
  556. package/dist/vscode-default-extensions/latex/syntaxes/TeX.tmLanguage.json.js +0 -2
  557. package/dist/vscode-default-extensions/latex/syntaxes/cpp-grammar-bailout.tmLanguage.json.js +0 -2
  558. package/dist/vscode-default-extensions/latex/syntaxes/markdown-latex-combined.tmLanguage.json.js +0 -2
  559. package/dist/vscode-default-extensions/less/language-configuration.json.js +0 -2
  560. package/dist/vscode-default-extensions/less/syntaxes/less.tmLanguage.json.js +0 -2
  561. package/dist/vscode-default-extensions/log/syntaxes/log.tmLanguage.json.js +0 -2
  562. package/dist/vscode-default-extensions/lua/language-configuration.json.js +0 -2
  563. package/dist/vscode-default-extensions/lua/syntaxes/lua.tmLanguage.json.js +0 -2
  564. package/dist/vscode-default-extensions/make/language-configuration.json.js +0 -2
  565. package/dist/vscode-default-extensions/make/syntaxes/make.tmLanguage.json.js +0 -2
  566. package/dist/vscode-default-extensions/markdown-basics/language-configuration.json.js +0 -2
  567. package/dist/vscode-default-extensions/markdown-basics/snippets/markdown.code-snippets.js +0 -2
  568. package/dist/vscode-default-extensions/markdown-basics/syntaxes/markdown.tmLanguage.json.js +0 -2
  569. package/dist/vscode-default-extensions/objective-c/language-configuration.json.js +0 -2
  570. package/dist/vscode-default-extensions/objective-c/syntaxes/objective-c.tmLanguage.json.js +0 -2
  571. package/dist/vscode-default-extensions/objective-c/syntaxes/objective-c__.tmLanguage.json.js +0 -2
  572. package/dist/vscode-default-extensions/perl/perl.language-configuration.json.js +0 -2
  573. package/dist/vscode-default-extensions/perl/perl6.language-configuration.json.js +0 -2
  574. package/dist/vscode-default-extensions/perl/syntaxes/perl.tmLanguage.json.js +0 -2
  575. package/dist/vscode-default-extensions/perl/syntaxes/perl6.tmLanguage.json.js +0 -2
  576. package/dist/vscode-default-extensions/php/language-configuration.json.js +0 -2
  577. package/dist/vscode-default-extensions/php/snippets/php.code-snippets.js +0 -2
  578. package/dist/vscode-default-extensions/php/syntaxes/html.tmLanguage.json.js +0 -2
  579. package/dist/vscode-default-extensions/php/syntaxes/php.tmLanguage.json.js +0 -2
  580. package/dist/vscode-default-extensions/powershell/language-configuration.json.js +0 -2
  581. package/dist/vscode-default-extensions/powershell/syntaxes/powershell.tmLanguage.json.js +0 -2
  582. package/dist/vscode-default-extensions/pug/language-configuration.json.js +0 -2
  583. package/dist/vscode-default-extensions/pug/syntaxes/pug.tmLanguage.json.js +0 -2
  584. package/dist/vscode-default-extensions/python/language-configuration.json.js +0 -2
  585. package/dist/vscode-default-extensions/python/syntaxes/MagicPython.tmLanguage.json.js +0 -2
  586. package/dist/vscode-default-extensions/python/syntaxes/MagicRegExp.tmLanguage.json.js +0 -2
  587. package/dist/vscode-default-extensions/r/language-configuration.json.js +0 -2
  588. package/dist/vscode-default-extensions/r/syntaxes/r.tmLanguage.json.js +0 -2
  589. package/dist/vscode-default-extensions/razor/language-configuration.json.js +0 -2
  590. package/dist/vscode-default-extensions/razor/syntaxes/cshtml.tmLanguage.json.js +0 -2
  591. package/dist/vscode-default-extensions/ruby/language-configuration.json.js +0 -2
  592. package/dist/vscode-default-extensions/ruby/syntaxes/ruby.tmLanguage.json.js +0 -2
  593. package/dist/vscode-default-extensions/rust/language-configuration.json.js +0 -2
  594. package/dist/vscode-default-extensions/rust/syntaxes/rust.tmLanguage.json.js +0 -2
  595. package/dist/vscode-default-extensions/scss/language-configuration.json.js +0 -2
  596. package/dist/vscode-default-extensions/scss/syntaxes/sassdoc.tmLanguage.json.js +0 -2
  597. package/dist/vscode-default-extensions/scss/syntaxes/scss.tmLanguage.json.js +0 -2
  598. package/dist/vscode-default-extensions/shaderlab/language-configuration.json.js +0 -2
  599. package/dist/vscode-default-extensions/shaderlab/syntaxes/shaderlab.tmLanguage.json.js +0 -2
  600. package/dist/vscode-default-extensions/shellscript/language-configuration.json.js +0 -2
  601. package/dist/vscode-default-extensions/shellscript/syntaxes/shell-unix-bash.tmLanguage.json.js +0 -2
  602. package/dist/vscode-default-extensions/sql/language-configuration.json.js +0 -2
  603. package/dist/vscode-default-extensions/sql/syntaxes/sql.tmLanguage.json.js +0 -2
  604. package/dist/vscode-default-extensions/swift/language-configuration.json.js +0 -2
  605. package/dist/vscode-default-extensions/swift/snippets/swift.code-snippets.js +0 -2
  606. package/dist/vscode-default-extensions/swift/syntaxes/swift.tmLanguage.json.js +0 -2
  607. package/dist/vscode-default-extensions/theme-abyss/themes/abyss-color-theme.json.js +0 -2
  608. package/dist/vscode-default-extensions/theme-defaults/fileicons/vs_minimal-icon-theme.json.js +0 -2
  609. package/dist/vscode-default-extensions/theme-defaults/themes/dark_plus.json.js +0 -2
  610. package/dist/vscode-default-extensions/theme-defaults/themes/dark_plus_experimental.json.js +0 -2
  611. package/dist/vscode-default-extensions/theme-defaults/themes/dark_vs.json.js +0 -2
  612. package/dist/vscode-default-extensions/theme-defaults/themes/hc_black.json.js +0 -2
  613. package/dist/vscode-default-extensions/theme-defaults/themes/hc_light.json.js +0 -2
  614. package/dist/vscode-default-extensions/theme-defaults/themes/light_plus.json.js +0 -2
  615. package/dist/vscode-default-extensions/theme-defaults/themes/light_plus_experimental.json.js +0 -2
  616. package/dist/vscode-default-extensions/theme-defaults/themes/light_vs.json.js +0 -2
  617. package/dist/vscode-default-extensions/theme-kimbie-dark/themes/kimbie-dark-color-theme.json.js +0 -2
  618. package/dist/vscode-default-extensions/theme-monokai/themes/monokai-color-theme.json.js +0 -2
  619. package/dist/vscode-default-extensions/theme-monokai-dimmed/themes/dimmed-monokai-color-theme.json.js +0 -2
  620. package/dist/vscode-default-extensions/theme-quietlight/themes/quietlight-color-theme.json.js +0 -2
  621. package/dist/vscode-default-extensions/theme-red/themes/Red-color-theme.json.js +0 -2
  622. package/dist/vscode-default-extensions/theme-seti/icons/vs-seti-icon-theme.json.js +0 -2
  623. package/dist/vscode-default-extensions/theme-solarized-dark/themes/solarized-dark-color-theme.json.js +0 -2
  624. package/dist/vscode-default-extensions/theme-solarized-light/themes/solarized-light-color-theme.json.js +0 -2
  625. package/dist/vscode-default-extensions/theme-tomorrow-night-blue/themes/tomorrow-night-blue-color-theme.json.js +0 -2
  626. package/dist/vscode-default-extensions/typescript-basics/language-configuration.json.js +0 -2
  627. package/dist/vscode-default-extensions/typescript-basics/snippets/typescript.code-snippets.js +0 -2
  628. package/dist/vscode-default-extensions/typescript-basics/syntaxes/TypeScript.tmLanguage.json.js +0 -2
  629. package/dist/vscode-default-extensions/typescript-basics/syntaxes/TypeScriptReact.tmLanguage.json.js +0 -2
  630. package/dist/vscode-default-extensions/typescript-basics/syntaxes/jsdoc.js.injection.tmLanguage.json.js +0 -2
  631. package/dist/vscode-default-extensions/typescript-basics/syntaxes/jsdoc.ts.injection.tmLanguage.json.js +0 -2
  632. package/dist/vscode-default-extensions/typescript-language-features/package.json.js +0 -2
  633. package/dist/vscode-default-extensions/vb/language-configuration.json.js +0 -2
  634. package/dist/vscode-default-extensions/vb/snippets/vb.code-snippets.js +0 -2
  635. package/dist/vscode-default-extensions/vb/syntaxes/asp-vb-net.tmlanguage.json.js +0 -2
  636. package/dist/vscode-default-extensions/xml/syntaxes/xml.tmLanguage.json.js +0 -2
  637. package/dist/vscode-default-extensions/xml/syntaxes/xsl.tmLanguage.json.js +0 -2
  638. package/dist/vscode-default-extensions/xml/xml.language-configuration.json.js +0 -2
  639. package/dist/vscode-default-extensions/xml/xsl.language-configuration.json.js +0 -2
  640. package/dist/vscode-default-extensions/yaml/language-configuration.json.js +0 -2
  641. package/dist/vscode-default-extensions/yaml/syntaxes/yaml.tmLanguage.json.js +0 -2
@@ -0,0 +1,1636 @@
1
+ import { __decorate, __param } from '../../../../../../node_modules/tslib/tslib.es6.js';
2
+ import "../../../../../../assets/tunnelView.css";
3
+ import * as nls from 'monaco-editor/esm/vs/nls.js';
4
+ import * as dom from 'monaco-editor/esm/vs/base/browser/dom.js';
5
+ import { IViewDescriptorService, IViewsService } from '../../../common/views.js';
6
+ import { IKeybindingService } from 'monaco-editor/esm/vs/platform/keybinding/common/keybinding.js';
7
+ import { IContextMenuService, IContextViewService } from 'monaco-editor/esm/vs/platform/contextview/browser/contextView.js';
8
+ import { ContextKeyExpr, RawContextKey, IContextKeyService } from 'monaco-editor/esm/vs/platform/contextkey/common/contextkey.js';
9
+ import { IConfigurationService } from 'monaco-editor/esm/vs/platform/configuration/common/configuration.js';
10
+ import { IInstantiationService } from 'monaco-editor/esm/vs/platform/instantiation/common/instantiation.js';
11
+ import { IOpenerService } from 'monaco-editor/esm/vs/platform/opener/common/opener.js';
12
+ import { IQuickInputService } from 'monaco-editor/esm/vs/platform/quickinput/common/quickInput.js';
13
+ import { CommandsRegistry, ICommandService } from 'monaco-editor/esm/vs/platform/commands/common/commands.js';
14
+ import { Event } from 'monaco-editor/esm/vs/base/common/event.js';
15
+ import { toDisposable, Disposable, dispose, DisposableStore } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
16
+ import { ActionBar } from 'monaco-editor/esm/vs/base/browser/ui/actionbar/actionbar.js';
17
+ import { IconLabel } from 'monaco-editor/esm/vs/base/browser/ui/iconLabel/iconLabel.js';
18
+ import { ActionRunner } from 'monaco-editor/esm/vs/base/common/actions.js';
19
+ import { MenuRegistry, MenuId, IMenuService } from 'monaco-editor/esm/vs/platform/actions/common/actions.js';
20
+ import { createAndFillInActionBarActions, createActionViewItem } from 'monaco-editor/esm/vs/platform/actions/browser/menuEntryActionViewItem.js';
21
+ import { TUNNEL_VIEW_ID, TunnelType, makeAddress, IRemoteExplorerService, TunnelEditId, parseAddress, mapHasAddressLocalhostOrAllInterfaces } from '../../../services/remote/common/remoteExplorerService.js';
22
+ import { IClipboardService } from 'monaco-editor/esm/vs/platform/clipboard/common/clipboardService.js';
23
+ import { INotificationService, Severity } from 'monaco-editor/esm/vs/platform/notification/common/notification.js';
24
+ import { InputBox } from 'monaco-editor/esm/vs/base/browser/ui/inputbox/inputBox.js';
25
+ import { once } from 'monaco-editor/esm/vs/base/common/functional.js';
26
+ import { IThemeService } from 'monaco-editor/esm/vs/platform/theme/common/themeService.js';
27
+ import { ThemeIcon } from 'monaco-editor/esm/vs/base/common/themables.js';
28
+ import { ViewPane } from '../../../browser/parts/views/viewPane.js';
29
+ import { URI } from 'monaco-editor/esm/vs/base/common/uri.js';
30
+ import { TunnelProtocol, TunnelPrivacyId, ITunnelService, isLocalhost, isAllInterfaces } from '../../../../platform/tunnel/common/tunnel.js';
31
+ import { KeybindingsRegistry } from 'monaco-editor/esm/vs/platform/keybinding/common/keybindingsRegistry.js';
32
+ import { ITelemetryService } from 'monaco-editor/esm/vs/platform/telemetry/common/telemetry.js';
33
+ import { ActionViewItem } from 'monaco-editor/esm/vs/base/browser/ui/actionbar/actionViewItems.js';
34
+ import { labelPortIcon, forwardPortIcon, stopForwardIcon, copyAddressIcon, openBrowserIcon, openPreviewIcon, privatePortIcon, forwardedPortWithProcessIcon, forwardedPortWithoutProcessIcon } from './remoteIcons.js';
35
+ import { IExternalUriOpenerService } from '../../externalUriOpener/common/externalUriOpenerService.js';
36
+ import { CancellationTokenSource } from 'monaco-editor/esm/vs/base/common/cancellation.js';
37
+ import { isMacintosh } from 'monaco-editor/esm/vs/base/common/platform.js';
38
+ import { WorkbenchTable } from 'monaco-editor/esm/vs/platform/list/browser/listService.js';
39
+ import { Button } from 'monaco-editor/esm/vs/base/browser/ui/button/button.js';
40
+ import { registerColor } from 'monaco-editor/esm/vs/platform/theme/common/colorRegistry.js';
41
+ import { MarkdownString } from 'monaco-editor/esm/vs/base/common/htmlContent.js';
42
+ import { IHoverService } from '../../../services/hover/browser/hover.js';
43
+ import { STATUS_BAR_HOST_NAME_BACKGROUND } from '../../../common/theme.js';
44
+ import { Codicon } from 'monaco-editor/esm/vs/base/common/codicons.js';
45
+ import { defaultButtonStyles, defaultInputBoxStyles } from 'monaco-editor/esm/vs/platform/theme/browser/defaultStyles.js';
46
+ const forwardedPortsViewEnabled = ( (new RawContextKey(
47
+ 'forwardedPortsViewEnabled',
48
+ false,
49
+ (nls.localize('tunnel.forwardedPortsViewEnabled', "Whether the Ports view is enabled."))
50
+ )));
51
+ const openPreviewEnabledContext = ( (new RawContextKey('openPreviewEnabled', false)));
52
+ class TunnelTreeVirtualDelegate {
53
+ constructor(remoteExplorerService) {
54
+ this.remoteExplorerService = remoteExplorerService;
55
+ this.headerRowHeight = 22;
56
+ }
57
+ getHeight(row) {
58
+ return (row.tunnelType === TunnelType.Add && !this.remoteExplorerService.getEditableData(undefined)) ? 30 : 22;
59
+ }
60
+ }
61
+ function emptyCell(item) {
62
+ return { label: '', tunnel: item, editId: TunnelEditId.None, tooltip: '' };
63
+ }
64
+ class IconColumn {
65
+ constructor() {
66
+ this.label = '';
67
+ this.tooltip = '';
68
+ this.weight = 1;
69
+ this.minimumWidth = 40;
70
+ this.maximumWidth = 40;
71
+ this.templateId = 'actionbar';
72
+ }
73
+ project(row) {
74
+ if (row.tunnelType === TunnelType.Add) {
75
+ return emptyCell(row);
76
+ }
77
+ const icon = row.processDescription ? forwardedPortWithProcessIcon : forwardedPortWithoutProcessIcon;
78
+ let tooltip = '';
79
+ if (row instanceof TunnelItem) {
80
+ tooltip = `${row.iconTooltip} ${row.tooltipPostfix}`;
81
+ }
82
+ return {
83
+ label: '', icon, tunnel: row, editId: TunnelEditId.None, tooltip
84
+ };
85
+ }
86
+ }
87
+ class PortColumn {
88
+ constructor() {
89
+ this.label = ( (nls.localize('tunnel.portColumn.label', "Port")));
90
+ this.tooltip = ( (nls.localize(
91
+ 'tunnel.portColumn.tooltip',
92
+ "The label and remote port number of the forwarded port."
93
+ )));
94
+ this.weight = 1;
95
+ this.templateId = 'actionbar';
96
+ }
97
+ project(row) {
98
+ const isAdd = row.tunnelType === TunnelType.Add;
99
+ const label = row.label;
100
+ let tooltip = '';
101
+ if (row instanceof TunnelItem && !isAdd) {
102
+ tooltip = `${row.portTooltip} ${row.tooltipPostfix}`;
103
+ }
104
+ else {
105
+ tooltip = label;
106
+ }
107
+ return {
108
+ label, tunnel: row, menuId: MenuId.TunnelPortInline,
109
+ editId: row.tunnelType === TunnelType.Add ? TunnelEditId.New : TunnelEditId.Label, tooltip
110
+ };
111
+ }
112
+ }
113
+ class LocalAddressColumn {
114
+ constructor() {
115
+ this.label = ( (nls.localize('tunnel.addressColumn.label', "Local Address")));
116
+ this.tooltip = ( (nls.localize(
117
+ 'tunnel.addressColumn.tooltip',
118
+ "The address that the forwarded port is available at locally."
119
+ )));
120
+ this.weight = 1;
121
+ this.templateId = 'actionbar';
122
+ }
123
+ project(row) {
124
+ if (row.tunnelType === TunnelType.Add) {
125
+ return emptyCell(row);
126
+ }
127
+ const label = row.localAddress ?? '';
128
+ let tooltip = label;
129
+ if (row instanceof TunnelItem) {
130
+ tooltip = row.tooltipPostfix;
131
+ }
132
+ return {
133
+ label,
134
+ menuId: MenuId.TunnelLocalAddressInline,
135
+ tunnel: row,
136
+ editId: TunnelEditId.LocalPort,
137
+ tooltip,
138
+ markdownTooltip: label ? LocalAddressColumn.getHoverText(label) : undefined
139
+ };
140
+ }
141
+ static getHoverText(localAddress) {
142
+ return function (configurationService) {
143
+ const editorConf = configurationService.getValue('editor');
144
+ let clickLabel = '';
145
+ if (editorConf.multiCursorModifier === 'ctrlCmd') {
146
+ if (isMacintosh) {
147
+ clickLabel = ( (nls.localize('portsLink.followLinkAlt.mac', "option + click")));
148
+ }
149
+ else {
150
+ clickLabel = ( (nls.localize('portsLink.followLinkAlt', "alt + click")));
151
+ }
152
+ }
153
+ else {
154
+ if (isMacintosh) {
155
+ clickLabel = ( (nls.localize('portsLink.followLinkCmd', "cmd + click")));
156
+ }
157
+ else {
158
+ clickLabel = ( (nls.localize('portsLink.followLinkCtrl', "ctrl + click")));
159
+ }
160
+ }
161
+ const markdown = ( (new MarkdownString('', true)));
162
+ const uri = localAddress.startsWith('http') ? localAddress : `http://${localAddress}`;
163
+ return markdown.appendLink(uri, 'Follow link').appendMarkdown(` (${clickLabel})`);
164
+ };
165
+ }
166
+ }
167
+ class RunningProcessColumn {
168
+ constructor() {
169
+ this.label = ( (nls.localize('tunnel.processColumn.label', "Running Process")));
170
+ this.tooltip = ( (nls.localize(
171
+ 'tunnel.processColumn.tooltip',
172
+ "The command line of the process that is using the port."
173
+ )));
174
+ this.weight = 2;
175
+ this.templateId = 'actionbar';
176
+ }
177
+ project(row) {
178
+ if (row.tunnelType === TunnelType.Add) {
179
+ return emptyCell(row);
180
+ }
181
+ const label = row.processDescription ?? '';
182
+ return { label, tunnel: row, editId: TunnelEditId.None, tooltip: row instanceof TunnelItem ? row.processTooltip : '' };
183
+ }
184
+ }
185
+ class OriginColumn {
186
+ constructor() {
187
+ this.label = ( (nls.localize('tunnel.originColumn.label', "Origin")));
188
+ this.tooltip = ( (nls.localize(
189
+ 'tunnel.originColumn.tooltip',
190
+ "The source that a forwarded port originates from. Can be an extension, user forwarded, statically forwarded, or automatically forwarded."
191
+ )));
192
+ this.weight = 1;
193
+ this.templateId = 'actionbar';
194
+ }
195
+ project(row) {
196
+ if (row.tunnelType === TunnelType.Add) {
197
+ return emptyCell(row);
198
+ }
199
+ const label = row.source.description;
200
+ const tooltip = `${row instanceof TunnelItem ? row.originTooltip : ''}. ${row instanceof TunnelItem ? row.tooltipPostfix : ''}`;
201
+ return { label, menuId: MenuId.TunnelOriginInline, tunnel: row, editId: TunnelEditId.None, tooltip };
202
+ }
203
+ }
204
+ class PrivacyColumn {
205
+ constructor() {
206
+ this.label = ( (nls.localize('tunnel.privacyColumn.label', "Visibility")));
207
+ this.tooltip = ( (nls.localize('tunnel.privacyColumn.tooltip', "The availability of the forwarded port.")));
208
+ this.weight = 1;
209
+ this.templateId = 'actionbar';
210
+ }
211
+ project(row) {
212
+ if (row.tunnelType === TunnelType.Add) {
213
+ return emptyCell(row);
214
+ }
215
+ const label = row.privacy?.label;
216
+ let tooltip = '';
217
+ if (row instanceof TunnelItem) {
218
+ tooltip = `${row.privacy.label} ${row.tooltipPostfix}`;
219
+ }
220
+ return { label, tunnel: row, icon: { id: row.privacy.themeIcon }, editId: TunnelEditId.None, tooltip };
221
+ }
222
+ }
223
+ let ActionBarRenderer = class ActionBarRenderer extends Disposable {
224
+ constructor(instantiationService, contextKeyService, menuService, contextViewService, remoteExplorerService, commandService, configurationService, hoverService) {
225
+ super();
226
+ this.instantiationService = instantiationService;
227
+ this.contextKeyService = contextKeyService;
228
+ this.menuService = menuService;
229
+ this.contextViewService = contextViewService;
230
+ this.remoteExplorerService = remoteExplorerService;
231
+ this.commandService = commandService;
232
+ this.configurationService = configurationService;
233
+ this.hoverService = hoverService;
234
+ this.templateId = 'actionbar';
235
+ }
236
+ set actionRunner(actionRunner) {
237
+ this._actionRunner = actionRunner;
238
+ }
239
+ renderTemplate(container) {
240
+ const cell = dom.append(container, dom.$('.ports-view-actionbar-cell'));
241
+ const icon = dom.append(cell, dom.$('.ports-view-actionbar-cell-icon'));
242
+ const label = ( (new IconLabel(cell, {
243
+ supportHighlights: true,
244
+ hoverDelegate: {
245
+ showHover: (options) => this.hoverService.showHover(options),
246
+ delay: this.configurationService.getValue('workbench.hover.delay')
247
+ }
248
+ })));
249
+ const actionsContainer = dom.append(cell, dom.$('.actions'));
250
+ const actionBar = ( (new ActionBar(actionsContainer, {
251
+ actionViewItemProvider: createActionViewItem.bind(undefined, this.instantiationService)
252
+ })));
253
+ return { label, icon, actionBar, container: cell, elementDisposable: Disposable.None };
254
+ }
255
+ renderElement(element, index, templateData) {
256
+ templateData.actionBar.clear();
257
+ templateData.icon.className = 'ports-view-actionbar-cell-icon';
258
+ templateData.icon.style.display = 'none';
259
+ templateData.label.setLabel('');
260
+ templateData.label.element.style.display = 'none';
261
+ templateData.container.style.height = '22px';
262
+ if (templateData.button) {
263
+ templateData.button.element.style.display = 'none';
264
+ templateData.button.dispose();
265
+ }
266
+ templateData.container.style.paddingLeft = '0px';
267
+ templateData.elementDisposable.dispose();
268
+ let editableData;
269
+ if (element.editId === TunnelEditId.New && (editableData = this.remoteExplorerService.getEditableData(undefined))) {
270
+ this.renderInputBox(templateData.container, editableData);
271
+ }
272
+ else {
273
+ editableData = this.remoteExplorerService.getEditableData(element.tunnel, element.editId);
274
+ if (editableData) {
275
+ this.renderInputBox(templateData.container, editableData);
276
+ }
277
+ else if ((element.tunnel.tunnelType === TunnelType.Add) && (element.menuId === MenuId.TunnelPortInline)) {
278
+ this.renderButton(element, templateData);
279
+ }
280
+ else {
281
+ this.renderActionBarItem(element, templateData);
282
+ }
283
+ }
284
+ }
285
+ renderButton(element, templateData) {
286
+ templateData.container.style.paddingLeft = '7px';
287
+ templateData.container.style.height = '28px';
288
+ templateData.button = this._register(( (new Button(templateData.container, defaultButtonStyles))));
289
+ templateData.button.label = element.label;
290
+ templateData.button.element.title = element.tooltip;
291
+ this._register(templateData.button.onDidClick(() => {
292
+ this.commandService.executeCommand(ForwardPortAction.INLINE_ID);
293
+ }));
294
+ }
295
+ tunnelContext(tunnel) {
296
+ let context;
297
+ if (tunnel instanceof TunnelItem) {
298
+ context = tunnel.strip();
299
+ }
300
+ if (!context) {
301
+ context = {
302
+ tunnelType: tunnel.tunnelType,
303
+ remoteHost: tunnel.remoteHost,
304
+ remotePort: tunnel.remotePort,
305
+ localAddress: tunnel.localAddress,
306
+ protocol: tunnel.protocol,
307
+ localUri: tunnel.localUri,
308
+ localPort: tunnel.localPort,
309
+ name: tunnel.name,
310
+ closeable: tunnel.closeable,
311
+ source: tunnel.source,
312
+ privacy: tunnel.privacy,
313
+ processDescription: tunnel.processDescription,
314
+ label: tunnel.label
315
+ };
316
+ }
317
+ return context;
318
+ }
319
+ renderActionBarItem(element, templateData) {
320
+ templateData.label.element.style.display = 'flex';
321
+ templateData.label.setLabel(element.label, undefined, {
322
+ title: element.markdownTooltip ?
323
+ { markdown: element.markdownTooltip(this.configurationService), markdownNotSupportedFallback: element.tooltip }
324
+ : element.tooltip,
325
+ extraClasses: element.menuId === MenuId.TunnelLocalAddressInline ? ['ports-view-actionbar-cell-localaddress'] : undefined
326
+ });
327
+ templateData.actionBar.context = this.tunnelContext(element.tunnel);
328
+ templateData.container.style.paddingLeft = '10px';
329
+ const context = [
330
+ ['view', TUNNEL_VIEW_ID],
331
+ [TunnelTypeContextKey.key, element.tunnel.tunnelType],
332
+ [TunnelCloseableContextKey.key, element.tunnel.closeable],
333
+ [TunnelPrivacyContextKey.key, element.tunnel.privacy.id],
334
+ [TunnelProtocolContextKey.key, element.tunnel.protocol]
335
+ ];
336
+ const contextKeyService = this.contextKeyService.createOverlay(context);
337
+ const disposableStore = ( (new DisposableStore()));
338
+ templateData.elementDisposable = disposableStore;
339
+ if (element.menuId) {
340
+ const menu = disposableStore.add(this.menuService.createMenu(element.menuId, contextKeyService));
341
+ let actions = [];
342
+ createAndFillInActionBarActions(menu, { shouldForwardArgs: true }, actions);
343
+ if (actions) {
344
+ const labelActions = actions.filter(action => action.id.toLowerCase().indexOf('label') >= 0);
345
+ if (labelActions.length > 1) {
346
+ labelActions.sort((a, b) => a.label.length - b.label.length);
347
+ labelActions.pop();
348
+ actions = actions.filter(action => labelActions.indexOf(action) < 0);
349
+ }
350
+ templateData.actionBar.push(actions, { icon: true, label: false });
351
+ if (this._actionRunner) {
352
+ templateData.actionBar.actionRunner = this._actionRunner;
353
+ }
354
+ }
355
+ }
356
+ if (element.icon) {
357
+ templateData.icon.className = `ports-view-actionbar-cell-icon ${ThemeIcon.asClassName(element.icon)}`;
358
+ templateData.icon.title = element.tooltip;
359
+ templateData.icon.style.display = 'inline';
360
+ }
361
+ }
362
+ renderInputBox(container, editableData) {
363
+ if (this.inputDone) {
364
+ this.inputDone(false, false);
365
+ this.inputDone = undefined;
366
+ }
367
+ container.style.paddingLeft = '5px';
368
+ const value = editableData.startingValue || '';
369
+ const inputBox = ( (new InputBox(container, this.contextViewService, {
370
+ ariaLabel: ( (nls.localize('remote.tunnelsView.input', "Press Enter to confirm or Escape to cancel."))),
371
+ validationOptions: {
372
+ validation: (value) => {
373
+ const message = editableData.validationMessage(value);
374
+ if (!message) {
375
+ return null;
376
+ }
377
+ return {
378
+ content: message.content,
379
+ formatContent: true,
380
+ type: message.severity === Severity.Error ? 3 : 1
381
+ };
382
+ }
383
+ },
384
+ placeholder: editableData.placeholder || '',
385
+ inputBoxStyles: defaultInputBoxStyles
386
+ })));
387
+ inputBox.value = value;
388
+ inputBox.focus();
389
+ inputBox.select({ start: 0, end: editableData.startingValue ? editableData.startingValue.length : 0 });
390
+ const done = once(async (success, finishEditing) => {
391
+ dispose(toDispose);
392
+ if (this.inputDone) {
393
+ this.inputDone = undefined;
394
+ }
395
+ inputBox.element.style.display = 'none';
396
+ const inputValue = inputBox.value;
397
+ if (finishEditing) {
398
+ return editableData.onFinish(inputValue, success);
399
+ }
400
+ });
401
+ this.inputDone = done;
402
+ const toDispose = [
403
+ inputBox,
404
+ dom.addStandardDisposableListener(inputBox.inputElement, dom.EventType.KEY_DOWN, async (e) => {
405
+ if (e.equals(3 )) {
406
+ e.stopPropagation();
407
+ if (inputBox.validate() !== 3 ) {
408
+ return done(true, true);
409
+ }
410
+ else {
411
+ return done(false, true);
412
+ }
413
+ }
414
+ else if (e.equals(9 )) {
415
+ e.preventDefault();
416
+ e.stopPropagation();
417
+ return done(false, true);
418
+ }
419
+ }),
420
+ dom.addDisposableListener(inputBox.inputElement, dom.EventType.BLUR, () => {
421
+ return done(inputBox.validate() !== 3 , true);
422
+ })
423
+ ];
424
+ return toDisposable(() => {
425
+ done(false, false);
426
+ });
427
+ }
428
+ disposeElement(element, index, templateData, height) {
429
+ templateData.elementDisposable.dispose();
430
+ }
431
+ disposeTemplate(templateData) {
432
+ templateData.label.dispose();
433
+ templateData.actionBar.dispose();
434
+ templateData.elementDisposable.dispose();
435
+ templateData.button?.dispose();
436
+ }
437
+ };
438
+ ActionBarRenderer = ( (__decorate([
439
+ ( (__param(0, IInstantiationService))),
440
+ ( (__param(1, IContextKeyService))),
441
+ ( (__param(2, IMenuService))),
442
+ ( (__param(3, IContextViewService))),
443
+ ( (__param(4, IRemoteExplorerService))),
444
+ ( (__param(5, ICommandService))),
445
+ ( (__param(6, IConfigurationService))),
446
+ ( (__param(7, IHoverService)))
447
+ ], ActionBarRenderer)));
448
+ class TunnelItem {
449
+ static createFromTunnel(remoteExplorerService, tunnelService, tunnel, type = TunnelType.Forwarded, closeable) {
450
+ return (
451
+ (new TunnelItem(
452
+ type,
453
+ tunnel.remoteHost,
454
+ tunnel.remotePort,
455
+ tunnel.source,
456
+ !!tunnel.hasRunningProcess,
457
+ tunnel.protocol,
458
+ tunnel.localUri,
459
+ tunnel.localAddress,
460
+ tunnel.localPort,
461
+ closeable === undefined ? tunnel.closeable : closeable,
462
+ tunnel.name,
463
+ tunnel.runningProcess,
464
+ tunnel.pid,
465
+ tunnel.privacy,
466
+ remoteExplorerService,
467
+ tunnelService
468
+ ))
469
+ );
470
+ }
471
+ strip() {
472
+ return (
473
+ (new TunnelItem(
474
+ this.tunnelType,
475
+ this.remoteHost,
476
+ this.remotePort,
477
+ this.source,
478
+ this.hasRunningProcess,
479
+ this.protocol,
480
+ this.localUri,
481
+ this.localAddress,
482
+ this.localPort,
483
+ this.closeable,
484
+ this.name,
485
+ this.runningProcess,
486
+ this.pid,
487
+ this._privacy
488
+ ))
489
+ );
490
+ }
491
+ constructor(tunnelType, remoteHost, remotePort, source, hasRunningProcess, protocol, localUri, localAddress, localPort, closeable, name, runningProcess, pid, _privacy, remoteExplorerService, tunnelService) {
492
+ this.tunnelType = tunnelType;
493
+ this.remoteHost = remoteHost;
494
+ this.remotePort = remotePort;
495
+ this.source = source;
496
+ this.hasRunningProcess = hasRunningProcess;
497
+ this.protocol = protocol;
498
+ this.localUri = localUri;
499
+ this.localAddress = localAddress;
500
+ this.localPort = localPort;
501
+ this.closeable = closeable;
502
+ this.name = name;
503
+ this.runningProcess = runningProcess;
504
+ this.pid = pid;
505
+ this._privacy = _privacy;
506
+ this.remoteExplorerService = remoteExplorerService;
507
+ this.tunnelService = tunnelService;
508
+ }
509
+ get label() {
510
+ if (this.tunnelType === TunnelType.Add && this.name) {
511
+ return this.name;
512
+ }
513
+ const portNumberLabel = (isLocalhost(this.remoteHost) || isAllInterfaces(this.remoteHost))
514
+ ? `${this.remotePort}`
515
+ : `${this.remoteHost}:${this.remotePort}`;
516
+ if (this.name) {
517
+ return `${this.name} (${portNumberLabel})`;
518
+ }
519
+ else {
520
+ return portNumberLabel;
521
+ }
522
+ }
523
+ set processDescription(description) {
524
+ this.runningProcess = description;
525
+ }
526
+ get processDescription() {
527
+ let description = '';
528
+ if (this.runningProcess) {
529
+ if (this.pid && this.remoteExplorerService?.namedProcesses.has(this.pid)) {
530
+ description = this.remoteExplorerService.namedProcesses.get(this.pid);
531
+ }
532
+ else {
533
+ description = this.runningProcess.replace(/\0/g, ' ').trim();
534
+ }
535
+ if (this.pid) {
536
+ description += ` (${this.pid})`;
537
+ }
538
+ }
539
+ else if (this.hasRunningProcess) {
540
+ description = ( (nls.localize('tunnelView.runningProcess.inacessable', "Process information unavailable")));
541
+ }
542
+ return description;
543
+ }
544
+ get tooltipPostfix() {
545
+ let information;
546
+ if (this.localAddress) {
547
+ information = ( (nls.localize(
548
+ 'remote.tunnel.tooltipForwarded',
549
+ "Remote port {0}:{1} forwarded to local address {2}. ",
550
+ this.remoteHost,
551
+ this.remotePort,
552
+ this.localAddress
553
+ )));
554
+ }
555
+ else {
556
+ information = ( (nls.localize(
557
+ 'remote.tunnel.tooltipCandidate',
558
+ "Remote port {0}:{1} not forwarded. ",
559
+ this.remoteHost,
560
+ this.remotePort
561
+ )));
562
+ }
563
+ return information;
564
+ }
565
+ get iconTooltip() {
566
+ const isAdd = this.tunnelType === TunnelType.Add;
567
+ if (!isAdd) {
568
+ return `${this.processDescription ? ( ( nls.localize('tunnel.iconColumn.running', "Port has running process."))) :
569
+ ( ( nls.localize('tunnel.iconColumn.notRunning', "No running process.")))}`;
570
+ }
571
+ else {
572
+ return this.label;
573
+ }
574
+ }
575
+ get portTooltip() {
576
+ const isAdd = this.tunnelType === TunnelType.Add;
577
+ if (!isAdd) {
578
+ return `${this.name ? ( ( nls.localize('remote.tunnel.tooltipName', "Port labeled {0}. ", this.name))) : ''}`;
579
+ }
580
+ else {
581
+ return '';
582
+ }
583
+ }
584
+ get processTooltip() {
585
+ return this.processDescription ?? '';
586
+ }
587
+ get originTooltip() {
588
+ return this.source.description;
589
+ }
590
+ get privacy() {
591
+ if (this.tunnelService?.privacyOptions) {
592
+ return this.tunnelService?.privacyOptions.find(element => element.id === this._privacy) ??
593
+ {
594
+ id: '',
595
+ themeIcon: Codicon.question.id,
596
+ label: ( (nls.localize('tunnelPrivacy.unknown', "Unknown")))
597
+ };
598
+ }
599
+ else {
600
+ return {
601
+ id: TunnelPrivacyId.Private,
602
+ themeIcon: privatePortIcon.id,
603
+ label: ( (nls.localize('tunnelPrivacy.private', "Private")))
604
+ };
605
+ }
606
+ }
607
+ }
608
+ const TunnelTypeContextKey = ( (new RawContextKey('tunnelType', TunnelType.Add, true)));
609
+ const TunnelCloseableContextKey = ( (new RawContextKey('tunnelCloseable', false, true)));
610
+ const TunnelPrivacyContextKey = ( (new RawContextKey('tunnelPrivacy', undefined, true)));
611
+ const TunnelPrivacyEnabledContextKey = ( (new RawContextKey('tunnelPrivacyEnabled', false, true)));
612
+ const TunnelProtocolContextKey = ( (new RawContextKey('tunnelProtocol', TunnelProtocol.Http, true)));
613
+ const TunnelViewFocusContextKey = ( (new RawContextKey(
614
+ 'tunnelViewFocus',
615
+ false,
616
+ (nls.localize('tunnel.focusContext', "Whether the Ports view has focus."))
617
+ )));
618
+ const TunnelViewSelectionKeyName = 'tunnelViewSelection';
619
+ const TunnelViewSelectionContextKey = ( (new RawContextKey(TunnelViewSelectionKeyName, undefined, true)));
620
+ const TunnelViewMultiSelectionKeyName = 'tunnelViewMultiSelection';
621
+ const TunnelViewMultiSelectionContextKey = ( (new RawContextKey(TunnelViewMultiSelectionKeyName, undefined, true)));
622
+ const PortChangableContextKey = ( (new RawContextKey('portChangable', false, true)));
623
+ let TunnelPanel = class TunnelPanel extends ViewPane {
624
+ constructor(viewModel, options, keybindingService, contextMenuService, contextKeyService, configurationService, instantiationService, viewDescriptorService, openerService, quickInputService, commandService, menuService, themeService, remoteExplorerService, telemetryService, tunnelService, contextViewService, hoverService) {
625
+ super(options, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, telemetryService);
626
+ this.viewModel = viewModel;
627
+ this.quickInputService = quickInputService;
628
+ this.commandService = commandService;
629
+ this.menuService = menuService;
630
+ this.remoteExplorerService = remoteExplorerService;
631
+ this.tunnelService = tunnelService;
632
+ this.contextViewService = contextViewService;
633
+ this.hoverService = hoverService;
634
+ this.isEditing = false;
635
+ this.titleActions = [];
636
+ this.lastFocus = [];
637
+ this.tunnelTypeContext = TunnelTypeContextKey.bindTo(contextKeyService);
638
+ this.tunnelCloseableContext = TunnelCloseableContextKey.bindTo(contextKeyService);
639
+ this.tunnelPrivacyContext = TunnelPrivacyContextKey.bindTo(contextKeyService);
640
+ this.tunnelPrivacyEnabledContext = TunnelPrivacyEnabledContextKey.bindTo(contextKeyService);
641
+ this.tunnelPrivacyEnabledContext.set(tunnelService.privacyOptions.length !== 0);
642
+ this.tunnelProtocolContext = TunnelProtocolContextKey.bindTo(contextKeyService);
643
+ this.tunnelViewFocusContext = TunnelViewFocusContextKey.bindTo(contextKeyService);
644
+ this.tunnelViewSelectionContext = TunnelViewSelectionContextKey.bindTo(contextKeyService);
645
+ this.tunnelViewMultiSelectionContext = TunnelViewMultiSelectionContextKey.bindTo(contextKeyService);
646
+ this.portChangableContextKey = PortChangableContextKey.bindTo(contextKeyService);
647
+ const overlayContextKeyService = this.contextKeyService.createOverlay([['view', TunnelPanel.ID]]);
648
+ const titleMenu = this._register(this.menuService.createMenu(MenuId.TunnelTitle, overlayContextKeyService));
649
+ const updateActions = () => {
650
+ this.titleActions = [];
651
+ createAndFillInActionBarActions(titleMenu, undefined, this.titleActions);
652
+ this.updateActions();
653
+ };
654
+ this._register(titleMenu.onDidChange(updateActions));
655
+ updateActions();
656
+ this._register(toDisposable(() => {
657
+ this.titleActions = [];
658
+ }));
659
+ this.registerPrivacyActions();
660
+ }
661
+ registerPrivacyActions() {
662
+ for (const privacyOption of this.tunnelService.privacyOptions) {
663
+ const optionId = `remote.tunnel.privacy${privacyOption.id}`;
664
+ CommandsRegistry.registerCommand(optionId, ChangeTunnelPrivacyAction.handler(privacyOption.id));
665
+ MenuRegistry.appendMenuItem(MenuId.TunnelPrivacy, ({
666
+ order: 0,
667
+ command: {
668
+ id: optionId,
669
+ title: privacyOption.label,
670
+ toggled: ( (TunnelPrivacyContextKey.isEqualTo(privacyOption.id)))
671
+ }
672
+ }));
673
+ }
674
+ }
675
+ get portCount() {
676
+ return this.remoteExplorerService.tunnelModel.forwarded.size + this.remoteExplorerService.tunnelModel.detected.size;
677
+ }
678
+ renderBody(container) {
679
+ super.renderBody(container);
680
+ const panelContainer = dom.append(container, dom.$('.tree-explorer-viewlet-tree-view'));
681
+ const widgetContainer = dom.append(panelContainer, dom.$('.customview-tree'));
682
+ widgetContainer.classList.add('ports-view');
683
+ widgetContainer.classList.add('file-icon-themable-tree', 'show-file-icons');
684
+ const actionBarRenderer = ( (new ActionBarRenderer(
685
+ this.instantiationService,
686
+ this.contextKeyService,
687
+ this.menuService,
688
+ this.contextViewService,
689
+ this.remoteExplorerService,
690
+ this.commandService,
691
+ this.configurationService,
692
+ this.hoverService
693
+ )));
694
+ const columns = [( (new IconColumn())), ( (new PortColumn())), ( (new LocalAddressColumn())), ( (new RunningProcessColumn()))];
695
+ if (this.tunnelService.canChangePrivacy) {
696
+ columns.push(( (new PrivacyColumn())));
697
+ }
698
+ columns.push(( (new OriginColumn())));
699
+ this.table = this.instantiationService.createInstance(WorkbenchTable, 'RemoteTunnels', widgetContainer, ( (new TunnelTreeVirtualDelegate(this.remoteExplorerService))), columns, [actionBarRenderer], {
700
+ keyboardNavigationLabelProvider: {
701
+ getKeyboardNavigationLabel: (item) => {
702
+ return item.label;
703
+ }
704
+ },
705
+ multipleSelectionSupport: true,
706
+ accessibilityProvider: {
707
+ getAriaLabel: (item) => {
708
+ if (item instanceof TunnelItem) {
709
+ return `${item.tooltipPostfix} ${item.portTooltip} ${item.iconTooltip} ${item.processTooltip} ${item.originTooltip} ${this.tunnelService.canChangePrivacy ? item.privacy.label : ''}`;
710
+ }
711
+ else {
712
+ return item.label;
713
+ }
714
+ },
715
+ getWidgetAriaLabel: () => ( (nls.localize('tunnelView', "Tunnel View")))
716
+ },
717
+ openOnSingleClick: true
718
+ });
719
+ const actionRunner = ( (new ActionRunner()));
720
+ actionBarRenderer.actionRunner = actionRunner;
721
+ this._register(this.table.onContextMenu(e => this.onContextMenu(e, actionRunner)));
722
+ this._register(this.table.onMouseDblClick(e => this.onMouseDblClick(e)));
723
+ this._register(this.table.onDidChangeFocus(e => this.onFocusChanged(e)));
724
+ this._register(this.table.onDidChangeSelection(e => this.onSelectionChanged(e)));
725
+ this._register(this.table.onDidFocus(() => this.tunnelViewFocusContext.set(true)));
726
+ this._register(this.table.onDidBlur(() => this.tunnelViewFocusContext.set(false)));
727
+ const rerender = () => this.table.splice(0, Number.POSITIVE_INFINITY, this.viewModel.all);
728
+ rerender();
729
+ let lastPortCount = this.portCount;
730
+ this._register(Event.debounce(this.viewModel.onForwardedPortsChanged, (_last, e) => e, 50)(() => {
731
+ const newPortCount = this.portCount;
732
+ if (((lastPortCount === 0) || (newPortCount === 0)) && (lastPortCount !== newPortCount)) {
733
+ this._onDidChangeViewWelcomeState.fire();
734
+ }
735
+ lastPortCount = newPortCount;
736
+ rerender();
737
+ }));
738
+ this._register(this.table.onMouseClick(e => {
739
+ if (this.hasOpenLinkModifier(e.browserEvent)) {
740
+ const selection = this.table.getSelectedElements();
741
+ if ((selection.length === 0) ||
742
+ ((selection.length === 1) && (selection[0] === e.element))) {
743
+ this.commandService.executeCommand(OpenPortInBrowserAction.ID, e.element);
744
+ }
745
+ }
746
+ }));
747
+ this._register(this.table.onDidOpen(e => {
748
+ if (!e.element || (e.element.tunnelType !== TunnelType.Forwarded)) {
749
+ return;
750
+ }
751
+ if (e.browserEvent?.type === 'dblclick') {
752
+ this.commandService.executeCommand(LabelTunnelAction.ID);
753
+ }
754
+ }));
755
+ this._register(this.remoteExplorerService.onDidChangeEditable(e => {
756
+ this.isEditing = !!this.remoteExplorerService.getEditableData(e?.tunnel, e?.editId);
757
+ this._onDidChangeViewWelcomeState.fire();
758
+ if (!this.isEditing) {
759
+ widgetContainer.classList.remove('highlight');
760
+ }
761
+ rerender();
762
+ if (this.isEditing) {
763
+ widgetContainer.classList.add('highlight');
764
+ if (!e) {
765
+ this.table.reveal(this.table.indexOf(this.viewModel.input));
766
+ }
767
+ }
768
+ else {
769
+ if (e && (e.tunnel.tunnelType !== TunnelType.Add)) {
770
+ this.table.setFocus(this.lastFocus);
771
+ }
772
+ this.focus();
773
+ }
774
+ }));
775
+ }
776
+ shouldShowWelcome() {
777
+ return this.viewModel.isEmpty() && !this.isEditing;
778
+ }
779
+ focus() {
780
+ super.focus();
781
+ this.table.domFocus();
782
+ }
783
+ onFocusChanged(event) {
784
+ if (event.indexes.length > 0 && event.elements.length > 0) {
785
+ this.lastFocus = [...event.indexes];
786
+ }
787
+ const elements = event.elements;
788
+ const item = elements && elements.length ? elements[0] : undefined;
789
+ if (item) {
790
+ this.tunnelViewSelectionContext.set(makeAddress(item.remoteHost, item.remotePort));
791
+ this.tunnelTypeContext.set(item.tunnelType);
792
+ this.tunnelCloseableContext.set(!!item.closeable);
793
+ this.tunnelPrivacyContext.set(item.privacy.id);
794
+ this.tunnelProtocolContext.set(item.protocol === TunnelProtocol.Https ? TunnelProtocol.Https : TunnelProtocol.Https);
795
+ this.portChangableContextKey.set(!!item.localPort);
796
+ }
797
+ else {
798
+ this.tunnelTypeContext.reset();
799
+ this.tunnelViewSelectionContext.reset();
800
+ this.tunnelCloseableContext.reset();
801
+ this.tunnelPrivacyContext.reset();
802
+ this.tunnelProtocolContext.reset();
803
+ this.portChangableContextKey.reset();
804
+ }
805
+ }
806
+ hasOpenLinkModifier(e) {
807
+ const editorConf = this.configurationService.getValue('editor');
808
+ let modifierKey = false;
809
+ if (editorConf.multiCursorModifier === 'ctrlCmd') {
810
+ modifierKey = e.altKey;
811
+ }
812
+ else {
813
+ if (isMacintosh) {
814
+ modifierKey = e.metaKey;
815
+ }
816
+ else {
817
+ modifierKey = e.ctrlKey;
818
+ }
819
+ }
820
+ return modifierKey;
821
+ }
822
+ onSelectionChanged(event) {
823
+ const elements = event.elements;
824
+ if (elements.length > 1) {
825
+ this.tunnelViewMultiSelectionContext.set(( (elements.map(element => makeAddress(element.remoteHost, element.remotePort)))));
826
+ }
827
+ else {
828
+ this.tunnelViewMultiSelectionContext.set(undefined);
829
+ }
830
+ }
831
+ onContextMenu(event, actionRunner) {
832
+ if ((event.element !== undefined) && !(event.element instanceof TunnelItem)) {
833
+ return;
834
+ }
835
+ event.browserEvent.preventDefault();
836
+ event.browserEvent.stopPropagation();
837
+ const node = event.element;
838
+ if (node) {
839
+ this.table.setFocus([this.table.indexOf(node)]);
840
+ this.tunnelTypeContext.set(node.tunnelType);
841
+ this.tunnelCloseableContext.set(!!node.closeable);
842
+ this.tunnelPrivacyContext.set(node.privacy.id);
843
+ this.tunnelProtocolContext.set(node.protocol);
844
+ this.portChangableContextKey.set(!!node.localPort);
845
+ }
846
+ else {
847
+ this.tunnelTypeContext.set(TunnelType.Add);
848
+ this.tunnelCloseableContext.set(false);
849
+ this.tunnelPrivacyContext.set(undefined);
850
+ this.tunnelProtocolContext.set(undefined);
851
+ this.portChangableContextKey.set(false);
852
+ }
853
+ this.contextMenuService.showContextMenu({
854
+ menuId: MenuId.TunnelContext,
855
+ menuActionOptions: { shouldForwardArgs: true },
856
+ contextKeyService: this.table.contextKeyService,
857
+ getAnchor: () => event.anchor,
858
+ getActionViewItem: (action) => {
859
+ const keybinding = this.keybindingService.lookupKeybinding(action.id);
860
+ if (keybinding) {
861
+ return (
862
+ (new ActionViewItem(action, action, { label: true, keybinding: keybinding.getLabel() }))
863
+ );
864
+ }
865
+ return undefined;
866
+ },
867
+ onHide: (wasCancelled) => {
868
+ if (wasCancelled) {
869
+ this.table.domFocus();
870
+ }
871
+ },
872
+ getActionsContext: () => node?.strip(),
873
+ actionRunner
874
+ });
875
+ }
876
+ onMouseDblClick(e) {
877
+ if (!e.element) {
878
+ this.commandService.executeCommand(ForwardPortAction.INLINE_ID);
879
+ }
880
+ }
881
+ layoutBody(height, width) {
882
+ super.layoutBody(height, width);
883
+ this.table.layout(height, width);
884
+ }
885
+ };
886
+ TunnelPanel.ID = TUNNEL_VIEW_ID;
887
+ TunnelPanel.TITLE = ( (nls.localize('remote.tunnel', "Ports")));
888
+ TunnelPanel = ( (__decorate([
889
+ ( (__param(2, IKeybindingService))),
890
+ ( (__param(3, IContextMenuService))),
891
+ ( (__param(4, IContextKeyService))),
892
+ ( (__param(5, IConfigurationService))),
893
+ ( (__param(6, IInstantiationService))),
894
+ ( (__param(7, IViewDescriptorService))),
895
+ ( (__param(8, IOpenerService))),
896
+ ( (__param(9, IQuickInputService))),
897
+ ( (__param(10, ICommandService))),
898
+ ( (__param(11, IMenuService))),
899
+ ( (__param(12, IThemeService))),
900
+ ( (__param(13, IRemoteExplorerService))),
901
+ ( (__param(14, ITelemetryService))),
902
+ ( (__param(15, ITunnelService))),
903
+ ( (__param(16, IContextViewService))),
904
+ ( (__param(17, IHoverService)))
905
+ ], TunnelPanel)));
906
+ function isITunnelItem(item) {
907
+ return item && item.tunnelType && item.remoteHost && item.source;
908
+ }
909
+ var LabelTunnelAction;
910
+ ( ((function(LabelTunnelAction) {
911
+ LabelTunnelAction.ID = 'remote.tunnel.label';
912
+ LabelTunnelAction.LABEL = ( (nls.localize('remote.tunnel.label', "Set Port Label")));
913
+ LabelTunnelAction.COMMAND_ID_KEYWORD = 'label';
914
+ function handler() {
915
+ return async (accessor, arg) => {
916
+ const remoteExplorerService = accessor.get(IRemoteExplorerService);
917
+ let tunnelContext;
918
+ if (isITunnelItem(arg)) {
919
+ tunnelContext = arg;
920
+ }
921
+ else {
922
+ const context = accessor.get(IContextKeyService).getContextKeyValue(TunnelViewSelectionKeyName);
923
+ const tunnel = context ? remoteExplorerService.tunnelModel.forwarded.get(context) : undefined;
924
+ if (tunnel) {
925
+ const tunnelService = accessor.get(ITunnelService);
926
+ tunnelContext = TunnelItem.createFromTunnel(remoteExplorerService, tunnelService, tunnel);
927
+ }
928
+ }
929
+ if (tunnelContext) {
930
+ const tunnelItem = tunnelContext;
931
+ return (
932
+ (new Promise(resolve => {
933
+ const startingValue = tunnelItem.name ? tunnelItem.name : `${tunnelItem.remotePort}`;
934
+ remoteExplorerService.setEditable(tunnelItem, TunnelEditId.Label, {
935
+ onFinish: async (value, success) => {
936
+ value = value.trim();
937
+ remoteExplorerService.setEditable(tunnelItem, TunnelEditId.Label, null);
938
+ const changed = success && (value !== startingValue);
939
+ if (changed) {
940
+ await remoteExplorerService.tunnelModel.name(tunnelItem.remoteHost, tunnelItem.remotePort, value);
941
+ }
942
+ resolve(changed ? { port: tunnelItem.remotePort, label: value } : undefined);
943
+ },
944
+ validationMessage: () => null,
945
+ placeholder: ( (nls.localize('remote.tunnelsView.labelPlaceholder', "Port label"))),
946
+ startingValue
947
+ });
948
+ }))
949
+ );
950
+ }
951
+ return undefined;
952
+ };
953
+ }
954
+ LabelTunnelAction.handler = handler;
955
+ })(LabelTunnelAction || (LabelTunnelAction = {}))));
956
+ const invalidPortString = ( (nls.localize(
957
+ 'remote.tunnelsView.portNumberValid',
958
+ "Forwarded port should be a number or a host:port."
959
+ )));
960
+ const maxPortNumber = 65536;
961
+ const invalidPortNumberString = ( (nls.localize(
962
+ 'remote.tunnelsView.portNumberToHigh',
963
+ "Port number must be \u2265 0 and < {0}.",
964
+ maxPortNumber
965
+ )));
966
+ const requiresSudoString = ( (nls.localize('remote.tunnelView.inlineElevationMessage', "May Require Sudo")));
967
+ const alreadyForwarded = ( (nls.localize('remote.tunnelView.alreadyForwarded', "Port is already forwarded")));
968
+ var ForwardPortAction;
969
+ ( ((function(ForwardPortAction) {
970
+ ForwardPortAction.INLINE_ID = 'remote.tunnel.forwardInline';
971
+ ForwardPortAction.COMMANDPALETTE_ID = 'remote.tunnel.forwardCommandPalette';
972
+ ForwardPortAction.LABEL = { value: ( (nls.localize('remote.tunnel.forward', "Forward a Port"))), original: 'Forward a Port' };
973
+ ForwardPortAction.TREEITEM_LABEL = ( (nls.localize('remote.tunnel.forwardItem', "Forward Port")));
974
+ const forwardPrompt = ( (nls.localize(
975
+ 'remote.tunnel.forwardPrompt',
976
+ "Port number or address (eg. 3000 or 10.10.10.10:2000)."
977
+ )));
978
+ function validateInput(remoteExplorerService, tunnelService, value, canElevate) {
979
+ const parsed = parseAddress(value);
980
+ if (!parsed) {
981
+ return { content: invalidPortString, severity: Severity.Error };
982
+ }
983
+ else if (parsed.port >= maxPortNumber) {
984
+ return { content: invalidPortNumberString, severity: Severity.Error };
985
+ }
986
+ else if (canElevate && tunnelService.isPortPrivileged(parsed.port)) {
987
+ return { content: requiresSudoString, severity: Severity.Info };
988
+ }
989
+ else if (mapHasAddressLocalhostOrAllInterfaces(remoteExplorerService.tunnelModel.forwarded, parsed.host, parsed.port)) {
990
+ return { content: alreadyForwarded, severity: Severity.Error };
991
+ }
992
+ return null;
993
+ }
994
+ function error(notificationService, tunnel, host, port) {
995
+ if (!tunnel) {
996
+ notificationService.warn(( (nls.localize(
997
+ 'remote.tunnel.forwardError',
998
+ "Unable to forward {0}:{1}. The host may not be available or that remote port may already be forwarded",
999
+ host,
1000
+ port
1001
+ ))));
1002
+ }
1003
+ }
1004
+ function inlineHandler() {
1005
+ return async (accessor, arg) => {
1006
+ const remoteExplorerService = accessor.get(IRemoteExplorerService);
1007
+ const notificationService = accessor.get(INotificationService);
1008
+ const tunnelService = accessor.get(ITunnelService);
1009
+ remoteExplorerService.setEditable(undefined, TunnelEditId.New, {
1010
+ onFinish: async (value, success) => {
1011
+ remoteExplorerService.setEditable(undefined, TunnelEditId.New, null);
1012
+ let parsed;
1013
+ if (success && (parsed = parseAddress(value))) {
1014
+ remoteExplorerService.forward({
1015
+ remote: { host: parsed.host, port: parsed.port },
1016
+ elevateIfNeeded: true
1017
+ }).then(tunnel => error(notificationService, tunnel, parsed.host, parsed.port));
1018
+ }
1019
+ },
1020
+ validationMessage: (value) => validateInput(remoteExplorerService, tunnelService, value, tunnelService.canElevate),
1021
+ placeholder: forwardPrompt
1022
+ });
1023
+ };
1024
+ }
1025
+ ForwardPortAction.inlineHandler = inlineHandler;
1026
+ function commandPaletteHandler() {
1027
+ return async (accessor, arg) => {
1028
+ const remoteExplorerService = accessor.get(IRemoteExplorerService);
1029
+ const notificationService = accessor.get(INotificationService);
1030
+ const viewsService = accessor.get(IViewsService);
1031
+ const quickInputService = accessor.get(IQuickInputService);
1032
+ const tunnelService = accessor.get(ITunnelService);
1033
+ await viewsService.openView(TunnelPanel.ID, true);
1034
+ const value = await quickInputService.input({
1035
+ prompt: forwardPrompt,
1036
+ validateInput: (value) => Promise.resolve(validateInput(remoteExplorerService, tunnelService, value, tunnelService.canElevate))
1037
+ });
1038
+ let parsed;
1039
+ if (value && (parsed = parseAddress(value))) {
1040
+ remoteExplorerService.forward({
1041
+ remote: { host: parsed.host, port: parsed.port },
1042
+ elevateIfNeeded: true
1043
+ }).then(tunnel => error(notificationService, tunnel, parsed.host, parsed.port));
1044
+ }
1045
+ };
1046
+ }
1047
+ ForwardPortAction.commandPaletteHandler = commandPaletteHandler;
1048
+ })(ForwardPortAction || (ForwardPortAction = {}))));
1049
+ function makeTunnelPicks(tunnels, remoteExplorerService, tunnelService) {
1050
+ const picks = ( (tunnels.map(forwarded => {
1051
+ const item = TunnelItem.createFromTunnel(remoteExplorerService, tunnelService, forwarded);
1052
+ return {
1053
+ label: item.label,
1054
+ description: item.processDescription,
1055
+ tunnel: item
1056
+ };
1057
+ })));
1058
+ if (picks.length === 0) {
1059
+ picks.push({
1060
+ label: ( (nls.localize(
1061
+ 'remote.tunnel.closeNoPorts',
1062
+ "No ports currently forwarded. Try running the {0} command",
1063
+ ForwardPortAction.LABEL.value
1064
+ )))
1065
+ });
1066
+ }
1067
+ return picks;
1068
+ }
1069
+ var ClosePortAction;
1070
+ ( ((function(ClosePortAction) {
1071
+ ClosePortAction.INLINE_ID = 'remote.tunnel.closeInline';
1072
+ ClosePortAction.COMMANDPALETTE_ID = 'remote.tunnel.closeCommandPalette';
1073
+ ClosePortAction.LABEL = { value: ( (nls.localize('remote.tunnel.close', "Stop Forwarding Port"))), original: 'Stop Forwarding Port' };
1074
+ function inlineHandler() {
1075
+ return async (accessor, arg) => {
1076
+ const contextKeyService = accessor.get(IContextKeyService);
1077
+ const remoteExplorerService = accessor.get(IRemoteExplorerService);
1078
+ let ports = [];
1079
+ const multiSelectContext = contextKeyService.getContextKeyValue(TunnelViewMultiSelectionKeyName);
1080
+ if (multiSelectContext) {
1081
+ multiSelectContext.forEach(context => {
1082
+ const tunnel = remoteExplorerService.tunnelModel.forwarded.get(context);
1083
+ if (tunnel) {
1084
+ ports?.push(tunnel);
1085
+ }
1086
+ });
1087
+ }
1088
+ else if (isITunnelItem(arg)) {
1089
+ ports = [arg];
1090
+ }
1091
+ else {
1092
+ const context = contextKeyService.getContextKeyValue(TunnelViewSelectionKeyName);
1093
+ const tunnel = context ? remoteExplorerService.tunnelModel.forwarded.get(context) : undefined;
1094
+ if (tunnel) {
1095
+ ports = [tunnel];
1096
+ }
1097
+ }
1098
+ if (!ports || ports.length === 0) {
1099
+ return;
1100
+ }
1101
+ return Promise.all(( (ports.map(
1102
+ port => remoteExplorerService.close({ host: port.remoteHost, port: port.remotePort })
1103
+ ))));
1104
+ };
1105
+ }
1106
+ ClosePortAction.inlineHandler = inlineHandler;
1107
+ function commandPaletteHandler() {
1108
+ return async (accessor) => {
1109
+ const quickInputService = accessor.get(IQuickInputService);
1110
+ const remoteExplorerService = accessor.get(IRemoteExplorerService);
1111
+ const tunnelService = accessor.get(ITunnelService);
1112
+ const commandService = accessor.get(ICommandService);
1113
+ const picks = makeTunnelPicks(Array.from(( (remoteExplorerService.tunnelModel.forwarded.values()))).filter(tunnel => tunnel.closeable), remoteExplorerService, tunnelService);
1114
+ const result = await quickInputService.pick(picks, { placeHolder: ( (nls.localize('remote.tunnel.closePlaceholder', "Choose a port to stop forwarding"))) });
1115
+ if (result && result.tunnel) {
1116
+ await remoteExplorerService.close({ host: result.tunnel.remoteHost, port: result.tunnel.remotePort });
1117
+ }
1118
+ else if (result) {
1119
+ await commandService.executeCommand(ForwardPortAction.COMMANDPALETTE_ID);
1120
+ }
1121
+ };
1122
+ }
1123
+ ClosePortAction.commandPaletteHandler = commandPaletteHandler;
1124
+ })(ClosePortAction || (ClosePortAction = {}))));
1125
+ var OpenPortInBrowserAction;
1126
+ ( ((function(OpenPortInBrowserAction) {
1127
+ OpenPortInBrowserAction.ID = 'remote.tunnel.open';
1128
+ OpenPortInBrowserAction.LABEL = ( (nls.localize('remote.tunnel.open', "Open in Browser")));
1129
+ function handler() {
1130
+ return async (accessor, arg) => {
1131
+ let key;
1132
+ if (isITunnelItem(arg)) {
1133
+ key = makeAddress(arg.remoteHost, arg.remotePort);
1134
+ }
1135
+ else if (arg.tunnelRemoteHost && arg.tunnelRemotePort) {
1136
+ key = makeAddress(arg.tunnelRemoteHost, arg.tunnelRemotePort);
1137
+ }
1138
+ if (key) {
1139
+ const model = accessor.get(IRemoteExplorerService).tunnelModel;
1140
+ const openerService = accessor.get(IOpenerService);
1141
+ return run(model, openerService, key);
1142
+ }
1143
+ };
1144
+ }
1145
+ OpenPortInBrowserAction.handler = handler;
1146
+ function run(model, openerService, key) {
1147
+ const tunnel = model.forwarded.get(key) || model.detected.get(key);
1148
+ if (tunnel) {
1149
+ return openerService.open(tunnel.localUri, { allowContributedOpeners: false });
1150
+ }
1151
+ return Promise.resolve();
1152
+ }
1153
+ OpenPortInBrowserAction.run = run;
1154
+ })(OpenPortInBrowserAction || (OpenPortInBrowserAction = {}))));
1155
+ var OpenPortInPreviewAction;
1156
+ ( ((function(OpenPortInPreviewAction) {
1157
+ OpenPortInPreviewAction.ID = 'remote.tunnel.openPreview';
1158
+ OpenPortInPreviewAction.LABEL = ( (nls.localize('remote.tunnel.openPreview', "Preview in Editor")));
1159
+ function handler() {
1160
+ return async (accessor, arg) => {
1161
+ let key;
1162
+ if (isITunnelItem(arg)) {
1163
+ key = makeAddress(arg.remoteHost, arg.remotePort);
1164
+ }
1165
+ else if (arg.tunnelRemoteHost && arg.tunnelRemotePort) {
1166
+ key = makeAddress(arg.tunnelRemoteHost, arg.tunnelRemotePort);
1167
+ }
1168
+ if (key) {
1169
+ const model = accessor.get(IRemoteExplorerService).tunnelModel;
1170
+ const openerService = accessor.get(IOpenerService);
1171
+ const externalOpenerService = accessor.get(IExternalUriOpenerService);
1172
+ return run(model, openerService, externalOpenerService, key);
1173
+ }
1174
+ };
1175
+ }
1176
+ OpenPortInPreviewAction.handler = handler;
1177
+ async function run(model, openerService, externalOpenerService, key) {
1178
+ const tunnel = model.forwarded.get(key) || model.detected.get(key);
1179
+ if (tunnel) {
1180
+ const remoteHost = tunnel.remoteHost.includes(':') ? `[${tunnel.remoteHost}]` : tunnel.remoteHost;
1181
+ const sourceUri = ( (URI.parse(`http://${remoteHost}:${tunnel.remotePort}`)));
1182
+ const opener = await externalOpenerService.getOpener(tunnel.localUri, { sourceUri }, ( (new CancellationTokenSource())).token);
1183
+ if (opener) {
1184
+ return opener.openExternalUri(tunnel.localUri, { sourceUri }, ( (new CancellationTokenSource())).token);
1185
+ }
1186
+ return openerService.open(tunnel.localUri);
1187
+ }
1188
+ return Promise.resolve();
1189
+ }
1190
+ OpenPortInPreviewAction.run = run;
1191
+ })(OpenPortInPreviewAction || (OpenPortInPreviewAction = {}))));
1192
+ var OpenPortInBrowserCommandPaletteAction;
1193
+ ( ((function(OpenPortInBrowserCommandPaletteAction) {
1194
+ OpenPortInBrowserCommandPaletteAction.ID = 'remote.tunnel.openCommandPalette';
1195
+ OpenPortInBrowserCommandPaletteAction.LABEL = ( (nls.localize('remote.tunnel.openCommandPalette', "Open Port in Browser")));
1196
+ function handler() {
1197
+ return async (accessor, arg) => {
1198
+ const remoteExplorerService = accessor.get(IRemoteExplorerService);
1199
+ const tunnelService = accessor.get(ITunnelService);
1200
+ const model = remoteExplorerService.tunnelModel;
1201
+ const quickPickService = accessor.get(IQuickInputService);
1202
+ const openerService = accessor.get(IOpenerService);
1203
+ const commandService = accessor.get(ICommandService);
1204
+ const options = ( ([...model.forwarded, ...model.detected].map(value => {
1205
+ const tunnelItem = TunnelItem.createFromTunnel(remoteExplorerService, tunnelService, value[1]);
1206
+ return {
1207
+ label: tunnelItem.label,
1208
+ description: tunnelItem.processDescription,
1209
+ tunnel: tunnelItem
1210
+ };
1211
+ })));
1212
+ if (options.length === 0) {
1213
+ options.push({
1214
+ label: ( (nls.localize(
1215
+ 'remote.tunnel.openCommandPaletteNone',
1216
+ "No ports currently forwarded. Open the Ports view to get started."
1217
+ )))
1218
+ });
1219
+ }
1220
+ else {
1221
+ options.push({
1222
+ label: ( (nls.localize('remote.tunnel.openCommandPaletteView', "Open the Ports view...")))
1223
+ });
1224
+ }
1225
+ const picked = await quickPickService.pick(options, { placeHolder: ( (nls.localize('remote.tunnel.openCommandPalettePick', "Choose the port to open"))) });
1226
+ if (picked && picked.tunnel) {
1227
+ return OpenPortInBrowserAction.run(model, openerService, makeAddress(picked.tunnel.remoteHost, picked.tunnel.remotePort));
1228
+ }
1229
+ else if (picked) {
1230
+ return commandService.executeCommand(`${TUNNEL_VIEW_ID}.focus`);
1231
+ }
1232
+ };
1233
+ }
1234
+ OpenPortInBrowserCommandPaletteAction.handler = handler;
1235
+ })(
1236
+ OpenPortInBrowserCommandPaletteAction || (OpenPortInBrowserCommandPaletteAction = {})
1237
+ )));
1238
+ var CopyAddressAction;
1239
+ ( ((function(CopyAddressAction) {
1240
+ CopyAddressAction.INLINE_ID = 'remote.tunnel.copyAddressInline';
1241
+ CopyAddressAction.COMMANDPALETTE_ID = 'remote.tunnel.copyAddressCommandPalette';
1242
+ CopyAddressAction.INLINE_LABEL = ( (nls.localize('remote.tunnel.copyAddressInline', "Copy Local Address")));
1243
+ CopyAddressAction.COMMANDPALETTE_LABEL = ( (nls.localize('remote.tunnel.copyAddressCommandPalette', "Copy Forwarded Port Address")));
1244
+ async function copyAddress(remoteExplorerService, clipboardService, tunnelItem) {
1245
+ const address = remoteExplorerService.tunnelModel.address(tunnelItem.remoteHost, tunnelItem.remotePort);
1246
+ if (address) {
1247
+ await clipboardService.writeText(( (address.toString())));
1248
+ }
1249
+ }
1250
+ function inlineHandler() {
1251
+ return async (accessor, arg) => {
1252
+ const remoteExplorerService = accessor.get(IRemoteExplorerService);
1253
+ let tunnelItem;
1254
+ if (isITunnelItem(arg)) {
1255
+ tunnelItem = arg;
1256
+ }
1257
+ else {
1258
+ const context = accessor.get(IContextKeyService).getContextKeyValue(TunnelViewSelectionKeyName);
1259
+ tunnelItem = context ? remoteExplorerService.tunnelModel.forwarded.get(context) : undefined;
1260
+ }
1261
+ if (tunnelItem) {
1262
+ return copyAddress(remoteExplorerService, accessor.get(IClipboardService), tunnelItem);
1263
+ }
1264
+ };
1265
+ }
1266
+ CopyAddressAction.inlineHandler = inlineHandler;
1267
+ function commandPaletteHandler() {
1268
+ return async (accessor, arg) => {
1269
+ const quickInputService = accessor.get(IQuickInputService);
1270
+ const remoteExplorerService = accessor.get(IRemoteExplorerService);
1271
+ const tunnelService = accessor.get(ITunnelService);
1272
+ const commandService = accessor.get(ICommandService);
1273
+ const clipboardService = accessor.get(IClipboardService);
1274
+ const tunnels = Array.from(( (remoteExplorerService.tunnelModel.forwarded.values()))).concat(Array.from(( (remoteExplorerService.tunnelModel.detected.values()))));
1275
+ const result = await quickInputService.pick(makeTunnelPicks(tunnels, remoteExplorerService, tunnelService), { placeHolder: ( (nls.localize('remote.tunnel.copyAddressPlaceholdter', "Choose a forwarded port"))) });
1276
+ if (result && result.tunnel) {
1277
+ await copyAddress(remoteExplorerService, clipboardService, result.tunnel);
1278
+ }
1279
+ else if (result) {
1280
+ await commandService.executeCommand(ForwardPortAction.COMMANDPALETTE_ID);
1281
+ }
1282
+ };
1283
+ }
1284
+ CopyAddressAction.commandPaletteHandler = commandPaletteHandler;
1285
+ })(CopyAddressAction || (CopyAddressAction = {}))));
1286
+ var ChangeLocalPortAction;
1287
+ ( ((function(ChangeLocalPortAction) {
1288
+ ChangeLocalPortAction.ID = 'remote.tunnel.changeLocalPort';
1289
+ ChangeLocalPortAction.LABEL = ( (nls.localize('remote.tunnel.changeLocalPort', "Change Local Address Port")));
1290
+ function validateInput(tunnelService, value, canElevate) {
1291
+ if (!value.match(/^[0-9]+$/)) {
1292
+ return { content: invalidPortString, severity: Severity.Error };
1293
+ }
1294
+ else if (Number(value) >= maxPortNumber) {
1295
+ return { content: invalidPortNumberString, severity: Severity.Error };
1296
+ }
1297
+ else if (canElevate && tunnelService.isPortPrivileged(Number(value))) {
1298
+ return { content: requiresSudoString, severity: Severity.Info };
1299
+ }
1300
+ return null;
1301
+ }
1302
+ function handler() {
1303
+ return async (accessor, arg) => {
1304
+ const remoteExplorerService = accessor.get(IRemoteExplorerService);
1305
+ const notificationService = accessor.get(INotificationService);
1306
+ const tunnelService = accessor.get(ITunnelService);
1307
+ let tunnelContext;
1308
+ if (isITunnelItem(arg)) {
1309
+ tunnelContext = arg;
1310
+ }
1311
+ else {
1312
+ const context = accessor.get(IContextKeyService).getContextKeyValue(TunnelViewSelectionKeyName);
1313
+ const tunnel = context ? remoteExplorerService.tunnelModel.forwarded.get(context) : undefined;
1314
+ if (tunnel) {
1315
+ const tunnelService = accessor.get(ITunnelService);
1316
+ tunnelContext = TunnelItem.createFromTunnel(remoteExplorerService, tunnelService, tunnel);
1317
+ }
1318
+ }
1319
+ if (tunnelContext) {
1320
+ const tunnelItem = tunnelContext;
1321
+ remoteExplorerService.setEditable(tunnelItem, TunnelEditId.LocalPort, {
1322
+ onFinish: async (value, success) => {
1323
+ remoteExplorerService.setEditable(tunnelItem, TunnelEditId.LocalPort, null);
1324
+ if (success) {
1325
+ await remoteExplorerService.close({ host: tunnelItem.remoteHost, port: tunnelItem.remotePort });
1326
+ const numberValue = Number(value);
1327
+ const newForward = await remoteExplorerService.forward({
1328
+ remote: { host: tunnelItem.remoteHost, port: tunnelItem.remotePort },
1329
+ local: numberValue,
1330
+ name: tunnelItem.name,
1331
+ elevateIfNeeded: true,
1332
+ source: tunnelItem.source
1333
+ });
1334
+ if (newForward && newForward.tunnelLocalPort !== numberValue) {
1335
+ notificationService.warn(( (nls.localize(
1336
+ 'remote.tunnel.changeLocalPortNumber',
1337
+ "The local port {0} is not available. Port number {1} has been used instead",
1338
+ value,
1339
+ newForward.tunnelLocalPort ?? newForward.localAddress
1340
+ ))));
1341
+ }
1342
+ }
1343
+ },
1344
+ validationMessage: (value) => validateInput(tunnelService, value, tunnelService.canElevate),
1345
+ placeholder: ( (nls.localize('remote.tunnelsView.changePort', "New local port")))
1346
+ });
1347
+ }
1348
+ };
1349
+ }
1350
+ ChangeLocalPortAction.handler = handler;
1351
+ })(ChangeLocalPortAction || (ChangeLocalPortAction = {}))));
1352
+ var ChangeTunnelPrivacyAction;
1353
+ ( ((function(ChangeTunnelPrivacyAction) {
1354
+ function handler(privacyId) {
1355
+ return async (accessor, arg) => {
1356
+ if (isITunnelItem(arg)) {
1357
+ const remoteExplorerService = accessor.get(IRemoteExplorerService);
1358
+ await remoteExplorerService.close({ host: arg.remoteHost, port: arg.remotePort });
1359
+ return remoteExplorerService.forward({
1360
+ remote: { host: arg.remoteHost, port: arg.remotePort },
1361
+ local: arg.localPort,
1362
+ name: arg.name,
1363
+ elevateIfNeeded: true,
1364
+ privacy: privacyId,
1365
+ source: arg.source
1366
+ });
1367
+ }
1368
+ return undefined;
1369
+ };
1370
+ }
1371
+ ChangeTunnelPrivacyAction.handler = handler;
1372
+ })(ChangeTunnelPrivacyAction || (ChangeTunnelPrivacyAction = {}))));
1373
+ var SetTunnelProtocolAction;
1374
+ ( ((function(SetTunnelProtocolAction) {
1375
+ SetTunnelProtocolAction.ID_HTTP = 'remote.tunnel.setProtocolHttp';
1376
+ SetTunnelProtocolAction.ID_HTTPS = 'remote.tunnel.setProtocolHttps';
1377
+ SetTunnelProtocolAction.LABEL_HTTP = ( (nls.localize('remote.tunnel.protocolHttp', "HTTP")));
1378
+ SetTunnelProtocolAction.LABEL_HTTPS = ( (nls.localize('remote.tunnel.protocolHttps', "HTTPS")));
1379
+ async function handler(arg, protocol, remoteExplorerService) {
1380
+ if (isITunnelItem(arg)) {
1381
+ const attributes = {
1382
+ protocol
1383
+ };
1384
+ return remoteExplorerService.tunnelModel.configPortsAttributes.addAttributes(arg.remotePort, attributes, 4 );
1385
+ }
1386
+ }
1387
+ function handlerHttp() {
1388
+ return async (accessor, arg) => {
1389
+ return handler(arg, TunnelProtocol.Http, accessor.get(IRemoteExplorerService));
1390
+ };
1391
+ }
1392
+ SetTunnelProtocolAction.handlerHttp = handlerHttp;
1393
+ function handlerHttps() {
1394
+ return async (accessor, arg) => {
1395
+ return handler(arg, TunnelProtocol.Https, accessor.get(IRemoteExplorerService));
1396
+ };
1397
+ }
1398
+ SetTunnelProtocolAction.handlerHttps = handlerHttps;
1399
+ })(SetTunnelProtocolAction || (SetTunnelProtocolAction = {}))));
1400
+ const tunnelViewCommandsWeightBonus = 10;
1401
+ const isForwardedExpr = ( (TunnelTypeContextKey.isEqualTo(TunnelType.Forwarded)));
1402
+ const isForwardedOrDetectedExpr = ( (ContextKeyExpr.or(
1403
+ isForwardedExpr,
1404
+ (TunnelTypeContextKey.isEqualTo(TunnelType.Detected))
1405
+ )));
1406
+ const isNotMultiSelectionExpr = ( (TunnelViewMultiSelectionContextKey.isEqualTo(undefined)));
1407
+ KeybindingsRegistry.registerCommandAndKeybindingRule({
1408
+ id: LabelTunnelAction.ID,
1409
+ weight: 200 + tunnelViewCommandsWeightBonus,
1410
+ when: ( (ContextKeyExpr.and(TunnelViewFocusContextKey, isForwardedExpr, isNotMultiSelectionExpr))),
1411
+ primary: 60 ,
1412
+ mac: {
1413
+ primary: 3
1414
+ },
1415
+ handler: LabelTunnelAction.handler()
1416
+ });
1417
+ CommandsRegistry.registerCommand(ForwardPortAction.INLINE_ID, ForwardPortAction.inlineHandler());
1418
+ CommandsRegistry.registerCommand(ForwardPortAction.COMMANDPALETTE_ID, ForwardPortAction.commandPaletteHandler());
1419
+ KeybindingsRegistry.registerCommandAndKeybindingRule({
1420
+ id: ClosePortAction.INLINE_ID,
1421
+ weight: 200 + tunnelViewCommandsWeightBonus,
1422
+ when: ( (ContextKeyExpr.and(TunnelCloseableContextKey, TunnelViewFocusContextKey))),
1423
+ primary: 20 ,
1424
+ mac: {
1425
+ primary: 2048 | 1 ,
1426
+ secondary: [20 ]
1427
+ },
1428
+ handler: ClosePortAction.inlineHandler()
1429
+ });
1430
+ CommandsRegistry.registerCommand(ClosePortAction.COMMANDPALETTE_ID, ClosePortAction.commandPaletteHandler());
1431
+ CommandsRegistry.registerCommand(OpenPortInBrowserAction.ID, OpenPortInBrowserAction.handler());
1432
+ CommandsRegistry.registerCommand(OpenPortInPreviewAction.ID, OpenPortInPreviewAction.handler());
1433
+ CommandsRegistry.registerCommand(OpenPortInBrowserCommandPaletteAction.ID, OpenPortInBrowserCommandPaletteAction.handler());
1434
+ KeybindingsRegistry.registerCommandAndKeybindingRule({
1435
+ id: CopyAddressAction.INLINE_ID,
1436
+ weight: 200 + tunnelViewCommandsWeightBonus,
1437
+ when: ( (ContextKeyExpr.and(
1438
+ TunnelViewFocusContextKey,
1439
+ isForwardedOrDetectedExpr,
1440
+ isNotMultiSelectionExpr
1441
+ ))),
1442
+ primary: 2048 | 33 ,
1443
+ handler: CopyAddressAction.inlineHandler()
1444
+ });
1445
+ CommandsRegistry.registerCommand(CopyAddressAction.COMMANDPALETTE_ID, CopyAddressAction.commandPaletteHandler());
1446
+ CommandsRegistry.registerCommand(ChangeLocalPortAction.ID, ChangeLocalPortAction.handler());
1447
+ CommandsRegistry.registerCommand(SetTunnelProtocolAction.ID_HTTP, SetTunnelProtocolAction.handlerHttp());
1448
+ CommandsRegistry.registerCommand(SetTunnelProtocolAction.ID_HTTPS, SetTunnelProtocolAction.handlerHttps());
1449
+ MenuRegistry.appendMenuItem(MenuId.CommandPalette, ({
1450
+ command: {
1451
+ id: ClosePortAction.COMMANDPALETTE_ID,
1452
+ title: ClosePortAction.LABEL
1453
+ },
1454
+ when: forwardedPortsViewEnabled
1455
+ }));
1456
+ MenuRegistry.appendMenuItem(MenuId.CommandPalette, ({
1457
+ command: {
1458
+ id: ForwardPortAction.COMMANDPALETTE_ID,
1459
+ title: ForwardPortAction.LABEL
1460
+ },
1461
+ when: forwardedPortsViewEnabled
1462
+ }));
1463
+ MenuRegistry.appendMenuItem(MenuId.CommandPalette, ({
1464
+ command: {
1465
+ id: CopyAddressAction.COMMANDPALETTE_ID,
1466
+ title: CopyAddressAction.COMMANDPALETTE_LABEL
1467
+ },
1468
+ when: forwardedPortsViewEnabled
1469
+ }));
1470
+ MenuRegistry.appendMenuItem(MenuId.CommandPalette, ({
1471
+ command: {
1472
+ id: OpenPortInBrowserCommandPaletteAction.ID,
1473
+ title: OpenPortInBrowserCommandPaletteAction.LABEL
1474
+ },
1475
+ when: forwardedPortsViewEnabled
1476
+ }));
1477
+ MenuRegistry.appendMenuItem(MenuId.TunnelContext, ({
1478
+ group: '._open',
1479
+ order: 0,
1480
+ command: {
1481
+ id: OpenPortInBrowserAction.ID,
1482
+ title: OpenPortInBrowserAction.LABEL,
1483
+ },
1484
+ when: ( (ContextKeyExpr.and(isForwardedOrDetectedExpr, isNotMultiSelectionExpr)))
1485
+ }));
1486
+ MenuRegistry.appendMenuItem(MenuId.TunnelContext, ({
1487
+ group: '._open',
1488
+ order: 1,
1489
+ command: {
1490
+ id: OpenPortInPreviewAction.ID,
1491
+ title: OpenPortInPreviewAction.LABEL,
1492
+ },
1493
+ when: ( (ContextKeyExpr.and(isForwardedOrDetectedExpr, isNotMultiSelectionExpr)))
1494
+ }));
1495
+ MenuRegistry.appendMenuItem(MenuId.TunnelContext, ({
1496
+ group: '0_manage',
1497
+ order: 1,
1498
+ command: {
1499
+ id: LabelTunnelAction.ID,
1500
+ title: LabelTunnelAction.LABEL,
1501
+ icon: labelPortIcon
1502
+ },
1503
+ when: ( (ContextKeyExpr.and(isForwardedExpr, isNotMultiSelectionExpr)))
1504
+ }));
1505
+ MenuRegistry.appendMenuItem(MenuId.TunnelContext, ({
1506
+ group: '2_localaddress',
1507
+ order: 0,
1508
+ command: {
1509
+ id: CopyAddressAction.INLINE_ID,
1510
+ title: CopyAddressAction.INLINE_LABEL,
1511
+ },
1512
+ when: ( (ContextKeyExpr.and(isForwardedOrDetectedExpr, isNotMultiSelectionExpr)))
1513
+ }));
1514
+ MenuRegistry.appendMenuItem(MenuId.TunnelContext, ({
1515
+ group: '2_localaddress',
1516
+ order: 1,
1517
+ command: {
1518
+ id: ChangeLocalPortAction.ID,
1519
+ title: ChangeLocalPortAction.LABEL,
1520
+ },
1521
+ when: ( (ContextKeyExpr.and(isForwardedExpr, PortChangableContextKey, isNotMultiSelectionExpr)))
1522
+ }));
1523
+ MenuRegistry.appendMenuItem(MenuId.TunnelContext, ({
1524
+ group: '2_localaddress',
1525
+ order: 2,
1526
+ submenu: MenuId.TunnelPrivacy,
1527
+ title: ( (nls.localize('tunnelContext.privacyMenu', "Port Visibility"))),
1528
+ when: ( (ContextKeyExpr.and(isForwardedExpr, TunnelPrivacyEnabledContextKey)))
1529
+ }));
1530
+ MenuRegistry.appendMenuItem(MenuId.TunnelContext, ({
1531
+ group: '2_localaddress',
1532
+ order: 3,
1533
+ submenu: MenuId.TunnelProtocol,
1534
+ title: ( (nls.localize('tunnelContext.protocolMenu', "Change Port Protocol"))),
1535
+ when: ( (ContextKeyExpr.and(isForwardedExpr, isNotMultiSelectionExpr)))
1536
+ }));
1537
+ MenuRegistry.appendMenuItem(MenuId.TunnelContext, ({
1538
+ group: '3_forward',
1539
+ order: 0,
1540
+ command: {
1541
+ id: ClosePortAction.INLINE_ID,
1542
+ title: ClosePortAction.LABEL,
1543
+ },
1544
+ when: TunnelCloseableContextKey
1545
+ }));
1546
+ MenuRegistry.appendMenuItem(MenuId.TunnelContext, ({
1547
+ group: '3_forward',
1548
+ order: 1,
1549
+ command: {
1550
+ id: ForwardPortAction.INLINE_ID,
1551
+ title: ForwardPortAction.LABEL,
1552
+ },
1553
+ }));
1554
+ MenuRegistry.appendMenuItem(MenuId.TunnelProtocol, ({
1555
+ order: 0,
1556
+ command: {
1557
+ id: SetTunnelProtocolAction.ID_HTTP,
1558
+ title: SetTunnelProtocolAction.LABEL_HTTP,
1559
+ toggled: ( (TunnelProtocolContextKey.isEqualTo(TunnelProtocol.Http)))
1560
+ }
1561
+ }));
1562
+ MenuRegistry.appendMenuItem(MenuId.TunnelProtocol, ({
1563
+ order: 1,
1564
+ command: {
1565
+ id: SetTunnelProtocolAction.ID_HTTPS,
1566
+ title: SetTunnelProtocolAction.LABEL_HTTPS,
1567
+ toggled: ( (TunnelProtocolContextKey.isEqualTo(TunnelProtocol.Https)))
1568
+ }
1569
+ }));
1570
+ MenuRegistry.appendMenuItem(MenuId.TunnelPortInline, ({
1571
+ group: '0_manage',
1572
+ order: 0,
1573
+ command: {
1574
+ id: ForwardPortAction.INLINE_ID,
1575
+ title: ForwardPortAction.TREEITEM_LABEL,
1576
+ icon: forwardPortIcon
1577
+ },
1578
+ when: ( (TunnelTypeContextKey.isEqualTo(TunnelType.Candidate)))
1579
+ }));
1580
+ MenuRegistry.appendMenuItem(MenuId.TunnelPortInline, ({
1581
+ group: '0_manage',
1582
+ order: 4,
1583
+ command: {
1584
+ id: LabelTunnelAction.ID,
1585
+ title: LabelTunnelAction.LABEL,
1586
+ icon: labelPortIcon
1587
+ },
1588
+ when: isForwardedExpr
1589
+ }));
1590
+ MenuRegistry.appendMenuItem(MenuId.TunnelPortInline, ({
1591
+ group: '0_manage',
1592
+ order: 5,
1593
+ command: {
1594
+ id: ClosePortAction.INLINE_ID,
1595
+ title: ClosePortAction.LABEL,
1596
+ icon: stopForwardIcon
1597
+ },
1598
+ when: TunnelCloseableContextKey
1599
+ }));
1600
+ MenuRegistry.appendMenuItem(MenuId.TunnelLocalAddressInline, ({
1601
+ order: -1,
1602
+ command: {
1603
+ id: CopyAddressAction.INLINE_ID,
1604
+ title: CopyAddressAction.INLINE_LABEL,
1605
+ icon: copyAddressIcon
1606
+ },
1607
+ when: isForwardedOrDetectedExpr
1608
+ }));
1609
+ MenuRegistry.appendMenuItem(MenuId.TunnelLocalAddressInline, ({
1610
+ order: 0,
1611
+ command: {
1612
+ id: OpenPortInBrowserAction.ID,
1613
+ title: OpenPortInBrowserAction.LABEL,
1614
+ icon: openBrowserIcon
1615
+ },
1616
+ when: isForwardedOrDetectedExpr
1617
+ }));
1618
+ MenuRegistry.appendMenuItem(MenuId.TunnelLocalAddressInline, ({
1619
+ order: 1,
1620
+ command: {
1621
+ id: OpenPortInPreviewAction.ID,
1622
+ title: OpenPortInPreviewAction.LABEL,
1623
+ icon: openPreviewIcon
1624
+ },
1625
+ when: isForwardedOrDetectedExpr
1626
+ }));
1627
+ registerColor('ports.iconRunningProcessForeground', {
1628
+ light: STATUS_BAR_HOST_NAME_BACKGROUND,
1629
+ dark: STATUS_BAR_HOST_NAME_BACKGROUND,
1630
+ hcDark: STATUS_BAR_HOST_NAME_BACKGROUND,
1631
+ hcLight: STATUS_BAR_HOST_NAME_BACKGROUND
1632
+ }, ( (nls.localize(
1633
+ 'portWithRunningProcess.foreground',
1634
+ "The color of the icon for a port that has an associated running process."
1635
+ ))));
1636
+ export { ForwardPortAction, OpenPortInBrowserAction, OpenPortInPreviewAction, TunnelPanel, forwardedPortsViewEnabled, openPreviewEnabledContext };