AbdulElahGwaith commited on
Commit
ebffcb3
·
verified ·
1 Parent(s): 62a701a

Upload folder using huggingface_hub

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .editorconfig +5 -0
  2. .gitattributes +646 -0
  3. .gitignore +10 -0
  4. .vscode/settings.json +9 -0
  5. CONTRIBUTING.md +188 -0
  6. LICENSE.md +6 -0
  7. README.md +66 -0
  8. api/.prettierrc.json +5 -0
  9. api/advanced-topics/extension-host.md +24 -0
  10. api/advanced-topics/using-proposed-api.md +22 -0
  11. api/extension-capabilities/common-capabilities.md +78 -0
  12. api/extension-capabilities/extending-core-functionalities.md +12 -0
  13. api/extension-capabilities/extending-workbench.md +49 -0
  14. api/extension-capabilities/images/extending-workbench/workbench-contribution.png +3 -0
  15. api/extension-capabilities/images/theming/color-theme.png +3 -0
  16. api/extension-capabilities/images/theming/icon-theme.png +3 -0
  17. api/extension-capabilities/overview.md +121 -0
  18. api/extension-capabilities/theming.md +37 -0
  19. api/extension-guides/color-theme.md +116 -0
  20. api/extension-guides/command.md +201 -0
  21. api/extension-guides/debugger-extension.md +367 -0
  22. api/extension-guides/file-system-provider.md +8 -0
  23. api/extension-guides/i18n.md +8 -0
  24. api/extension-guides/icon-theme.md +160 -0
  25. api/extension-guides/images/color-theme/color-setting.png +3 -0
  26. api/extension-guides/images/color-theme/mytheme.png +0 -0
  27. api/extension-guides/images/color-theme/tm-inspector.png +3 -0
  28. api/extension-guides/images/color-theme/yocode-colortheme.png +0 -0
  29. api/extension-guides/images/commands/palette.png +0 -0
  30. api/extension-guides/images/debugger-extension/debug-arch1.png +0 -0
  31. api/extension-guides/images/debugger-extension/debug-arch2.png +0 -0
  32. api/extension-guides/images/debugger-extension/debug-features.png +3 -0
  33. api/extension-guides/images/debugger-extension/debug-init-config.png +0 -0
  34. api/extension-guides/images/debugger-extension/debug-mock-session.png +0 -0
  35. api/extension-guides/images/debugger-extension/debugger-extension-server.png +3 -0
  36. api/extension-guides/images/debugger-extension/mock-debug.gif +3 -0
  37. api/extension-guides/images/scm-provider/main.png +0 -0
  38. api/extension-guides/images/scm-provider/menus.png +0 -0
  39. api/extension-guides/images/scm-provider/quickdiff.png +0 -0
  40. api/extension-guides/images/scm-provider/sourcecontrol-menu.png +0 -0
  41. api/extension-guides/images/tree-view/view-actions.png +0 -0
  42. api/extension-guides/images/tree-view/view-container.png +3 -0
  43. api/extension-guides/images/tree-view/view.png +0 -0
  44. api/extension-guides/images/virtual-documents/cowsay-bwd.png +0 -0
  45. api/extension-guides/images/webview/basics-developer_tools.png +3 -0
  46. api/extension-guides/images/webview/basics-drag.gif +3 -0
  47. api/extension-guides/images/webview/basics-html.png +3 -0
  48. api/extension-guides/images/webview/basics-no_content.png +0 -0
  49. api/extension-guides/images/webview/basics-ondidchangeviewstate.gif +3 -0
  50. api/extension-guides/images/webview/basics-restore.gif +3 -0
.editorconfig ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ root = true
2
+
3
+ [*]
4
+ end_of_line = lf
5
+ trim_trailing_whitespace = true
.gitattributes CHANGED
@@ -33,3 +33,649 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ api/extension-capabilities/images/extending-workbench/workbench-contribution.png filter=lfs diff=lfs merge=lfs -text
37
+ api/extension-capabilities/images/theming/color-theme.png filter=lfs diff=lfs merge=lfs -text
38
+ api/extension-capabilities/images/theming/icon-theme.png filter=lfs diff=lfs merge=lfs -text
39
+ api/extension-guides/images/color-theme/color-setting.png filter=lfs diff=lfs merge=lfs -text
40
+ api/extension-guides/images/color-theme/tm-inspector.png filter=lfs diff=lfs merge=lfs -text
41
+ api/extension-guides/images/debugger-extension/debug-features.png filter=lfs diff=lfs merge=lfs -text
42
+ api/extension-guides/images/debugger-extension/debugger-extension-server.png filter=lfs diff=lfs merge=lfs -text
43
+ api/extension-guides/images/debugger-extension/mock-debug.gif filter=lfs diff=lfs merge=lfs -text
44
+ api/extension-guides/images/tree-view/view-container.png filter=lfs diff=lfs merge=lfs -text
45
+ api/extension-guides/images/webview/basics-developer_tools.png filter=lfs diff=lfs merge=lfs -text
46
+ api/extension-guides/images/webview/basics-drag.gif filter=lfs diff=lfs merge=lfs -text
47
+ api/extension-guides/images/webview/basics-html.png filter=lfs diff=lfs merge=lfs -text
48
+ api/extension-guides/images/webview/basics-ondidchangeviewstate.gif filter=lfs diff=lfs merge=lfs -text
49
+ api/extension-guides/images/webview/basics-restore.gif filter=lfs diff=lfs merge=lfs -text
50
+ api/extension-guides/images/webview/basics-single_panel.gif filter=lfs diff=lfs merge=lfs -text
51
+ api/extension-guides/images/webview/basics-update.gif filter=lfs diff=lfs merge=lfs -text
52
+ api/extension-guides/images/webview/persistence-retrain.gif filter=lfs diff=lfs merge=lfs -text
53
+ api/extension-guides/images/webview/scripts-basic.gif filter=lfs diff=lfs merge=lfs -text
54
+ api/extension-guides/images/webview/scripts-extension_to_webview.gif filter=lfs diff=lfs merge=lfs -text
55
+ api/extension-guides/images/webview/scripts-webview_to_extension.gif filter=lfs diff=lfs merge=lfs -text
56
+ api/get-started/images/your-first-extension/debug.mp4 filter=lfs diff=lfs merge=lfs -text
57
+ api/get-started/images/your-first-extension/launch.mp4 filter=lfs diff=lfs merge=lfs -text
58
+ api/get-started/images/your-first-extension/reload.mp4 filter=lfs diff=lfs merge=lfs -text
59
+ api/language-extensions/images/language-server-extension-guide/debugging-client.png filter=lfs diff=lfs merge=lfs -text
60
+ api/language-extensions/images/language-server-extension-guide/debugging-server.png filter=lfs diff=lfs merge=lfs -text
61
+ api/language-extensions/images/language-server-extension-guide/lsp-inspector.png filter=lfs diff=lfs merge=lfs -text
62
+ api/language-extensions/images/language-server-extension-guide/lsp-log.png filter=lfs diff=lfs merge=lfs -text
63
+ api/language-extensions/images/language-support/code-completion.gif filter=lfs diff=lfs merge=lfs -text
64
+ api/language-extensions/images/language-support/code-lens[[:space:]]copy.gif filter=lfs diff=lfs merge=lfs -text
65
+ api/language-extensions/images/language-support/code-lens.gif filter=lfs diff=lfs merge=lfs -text
66
+ api/language-extensions/images/language-support/document-highlights.gif filter=lfs diff=lfs merge=lfs -text
67
+ api/language-extensions/images/language-support/document-symbols.gif filter=lfs diff=lfs merge=lfs -text
68
+ api/language-extensions/images/language-support/find-references.gif filter=lfs diff=lfs merge=lfs -text
69
+ api/language-extensions/images/language-support/format-document-range.gif filter=lfs diff=lfs merge=lfs -text
70
+ api/language-extensions/images/language-support/format-document.gif filter=lfs diff=lfs merge=lfs -text
71
+ api/language-extensions/images/language-support/goto-definition.gif filter=lfs diff=lfs merge=lfs -text
72
+ api/language-extensions/images/language-support/hovers.gif filter=lfs diff=lfs merge=lfs -text
73
+ api/language-extensions/images/language-support/quick-fixes.gif filter=lfs diff=lfs merge=lfs -text
74
+ api/language-extensions/images/language-support/rename.gif filter=lfs diff=lfs merge=lfs -text
75
+ api/language-extensions/images/language-support/workspace-symbols.gif filter=lfs diff=lfs merge=lfs -text
76
+ api/language-extensions/images/syntax-highlighting/yaml-grammar.png filter=lfs diff=lfs merge=lfs -text
77
+ api/language-extensions/images/syntax-highlighting/yo-new-language-questions.png filter=lfs diff=lfs merge=lfs -text
78
+ api/references/images/contribution-points/menus.png filter=lfs diff=lfs merge=lfs -text
79
+ api/working-with-extensions/images/continuous-integration/pipelines.png filter=lfs diff=lfs merge=lfs -text
80
+ api/working-with-extensions/images/publishing-extension/token1.png filter=lfs diff=lfs merge=lfs -text
81
+ api/working-with-extensions/images/publishing-extension/token2.png filter=lfs diff=lfs merge=lfs -text
82
+ api/working-with-extensions/images/publishing-extension/token3.png filter=lfs diff=lfs merge=lfs -text
83
+ api/working-with-extensions/images/publishing-extension/token4.png filter=lfs diff=lfs merge=lfs -text
84
+ api/working-with-extensions/images/testing-extension/pipelines.png filter=lfs diff=lfs merge=lfs -text
85
+ api/working-with-extensions/images/testing-extension/test-output.png filter=lfs diff=lfs merge=lfs -text
86
+ blogs/2016/02/23/chrome-debugger-demo.gif filter=lfs diff=lfs merge=lfs -text
87
+ blogs/2016/03/11/change-case_demo.gif filter=lfs diff=lfs merge=lfs -text
88
+ blogs/2016/03/11/ruby_debugging.gif filter=lfs diff=lfs merge=lfs -text
89
+ blogs/2016/03/11/yo_demo.gif filter=lfs diff=lfs merge=lfs -text
90
+ blogs/2016/04/14/header.png filter=lfs diff=lfs merge=lfs -text
91
+ blogs/2016/04/14/installs.png filter=lfs diff=lfs merge=lfs -text
92
+ blogs/2016/05/04/auto-complete.gif filter=lfs diff=lfs merge=lfs -text
93
+ blogs/2016/05/04/complexity-codelens.gif filter=lfs diff=lfs merge=lfs -text
94
+ blogs/2016/05/04/debugger-for-edge.gif filter=lfs diff=lfs merge=lfs -text
95
+ blogs/2016/05/04/svg-viewer.gif filter=lfs diff=lfs merge=lfs -text
96
+ blogs/2016/07/29/annotate-animation.gif filter=lfs diff=lfs merge=lfs -text
97
+ blogs/2016/07/29/git-history-animation.gif filter=lfs diff=lfs merge=lfs -text
98
+ blogs/2016/07/29/partial-diff.gif filter=lfs diff=lfs merge=lfs -text
99
+ blogs/2016/07/29/share-code-animation.gif filter=lfs diff=lfs merge=lfs -text
100
+ blogs/2016/08/19/github_reaction.gif filter=lfs diff=lfs merge=lfs -text
101
+ blogs/2016/08/22/ios-debugger-demo.gif filter=lfs diff=lfs merge=lfs -text
102
+ blogs/2016/09/14/npm_intellisense.gif filter=lfs diff=lfs merge=lfs -text
103
+ blogs/2016/10/31/chrome_debugger.png filter=lfs diff=lfs merge=lfs -text
104
+ blogs/2016/10/31/document_this.gif filter=lfs diff=lfs merge=lfs -text
105
+ blogs/2016/10/31/git_project_manager.gif filter=lfs diff=lfs merge=lfs -text
106
+ blogs/2016/12/12/theme-preview.gif filter=lfs diff=lfs merge=lfs -text
107
+ blogs/2017/01/15/AppSettings.png filter=lfs diff=lfs merge=lfs -text
108
+ blogs/2017/01/15/AzurePortal.png filter=lfs diff=lfs merge=lfs -text
109
+ blogs/2017/01/15/ChromePause.png filter=lfs diff=lfs merge=lfs -text
110
+ blogs/2017/01/15/CreateDocDB.png filter=lfs diff=lfs merge=lfs -text
111
+ blogs/2017/01/15/Debugger.png filter=lfs diff=lfs merge=lfs -text
112
+ blogs/2017/01/15/Dockerfile.png filter=lfs diff=lfs merge=lfs -text
113
+ blogs/2017/02/08/TM-scope-inspector.gif filter=lfs diff=lfs merge=lfs -text
114
+ blogs/2017/02/08/tokenization-2.gif filter=lfs diff=lfs merge=lfs -text
115
+ blogs/2017/02/12/code_lens.gif filter=lfs diff=lfs merge=lfs -text
116
+ blogs/2017/02/12/manifest_preview.gif filter=lfs diff=lfs merge=lfs -text
117
+ blogs/2017/02/12/preview_gitlens.gif filter=lfs diff=lfs merge=lfs -text
118
+ blogs/2017/04/10/close_html_xml_tag.gif filter=lfs diff=lfs merge=lfs -text
119
+ blogs/2017/06/20/themes-ayu.gif filter=lfs diff=lfs merge=lfs -text
120
+ blogs/2017/06/20/themes-nord.gif filter=lfs diff=lfs merge=lfs -text
121
+ blogs/2017/06/20/themes-sapphire.gif filter=lfs diff=lfs merge=lfs -text
122
+ blogs/2017/06/20/vscode-great-icons.jpg filter=lfs diff=lfs merge=lfs -text
123
+ blogs/2017/08/07/emmet.gif filter=lfs diff=lfs merge=lfs -text
124
+ blogs/2017/09/28/java-debug.gif filter=lfs diff=lfs merge=lfs -text
125
+ blogs/2017/10/03/60fps.gif filter=lfs diff=lfs merge=lfs -text
126
+ blogs/2017/10/03/paint-flashing.gif filter=lfs diff=lfs merge=lfs -text
127
+ blogs/2017/10/03/texture-atlas.png filter=lfs diff=lfs merge=lfs -text
128
+ blogs/2017/10/24/stablewithblue.png filter=lfs diff=lfs merge=lfs -text
129
+ blogs/2017/11/15/ls-dual-screen.png filter=lfs diff=lfs merge=lfs -text
130
+ blogs/2017/11/15/ls-social-resized.png filter=lfs diff=lfs merge=lfs -text
131
+ blogs/2017/11/15/ls-social.png filter=lfs diff=lfs merge=lfs -text
132
+ blogs/2017/11/15/vs-code-ls-session.png filter=lfs diff=lfs merge=lfs -text
133
+ blogs/2017/11/15/vs-code-ls-session2.png filter=lfs diff=lfs merge=lfs -text
134
+ blogs/2017/12/20/break_on_load_after.png filter=lfs diff=lfs merge=lfs -text
135
+ blogs/2017/12/20/code_chrome_devtools.gif filter=lfs diff=lfs merge=lfs -text
136
+ blogs/2017/12/20/social_paused.png filter=lfs diff=lfs merge=lfs -text
137
+ blogs/2017/12/20/sync_stepping.gif filter=lfs diff=lfs merge=lfs -text
138
+ blogs/2018/03/23/piece-tree.gif filter=lfs diff=lfs merge=lfs -text
139
+ blogs/2018/03/23/write.png filter=lfs diff=lfs merge=lfs -text
140
+ blogs/2018/04/25/Beautify.gif filter=lfs diff=lfs merge=lfs -text
141
+ blogs/2018/04/25/BingDiagram.png filter=lfs diff=lfs merge=lfs -text
142
+ blogs/2018/04/25/FormatOnKeypress.gif filter=lfs diff=lfs merge=lfs -text
143
+ blogs/2018/04/25/OpenFilesOnLeft.gif filter=lfs diff=lfs merge=lfs -text
144
+ blogs/2018/04/25/SocialImg.gif filter=lfs diff=lfs merge=lfs -text
145
+ blogs/2018/04/25/ZoomScrollWheel.gif filter=lfs diff=lfs merge=lfs -text
146
+ blogs/2018/05/07/lsp.png filter=lfs diff=lfs merge=lfs -text
147
+ blogs/2018/05/07/shared-terminal.png filter=lfs diff=lfs merge=lfs -text
148
+ blogs/2018/07/12/auto-attach.gif filter=lfs diff=lfs merge=lfs -text
149
+ blogs/2018/07/12/debug-extension-api.png filter=lfs diff=lfs merge=lfs -text
150
+ blogs/2018/07/12/debugger.png filter=lfs diff=lfs merge=lfs -text
151
+ blogs/2018/07/12/debugging_architecture.png filter=lfs diff=lfs merge=lfs -text
152
+ blogs/2018/07/12/logpoints.gif filter=lfs diff=lfs merge=lfs -text
153
+ blogs/2018/07/12/npm_scripts.png filter=lfs diff=lfs merge=lfs -text
154
+ blogs/2018/09/10/github_pr_hero.png filter=lfs diff=lfs merge=lfs -text
155
+ blogs/2018/09/10/github_pr_overview.png filter=lfs diff=lfs merge=lfs -text
156
+ blogs/2018/09/12/build.png filter=lfs diff=lfs merge=lfs -text
157
+ blogs/2018/09/12/pr.png filter=lfs diff=lfs merge=lfs -text
158
+ blogs/2018/09/12/slack.png filter=lfs diff=lfs merge=lfs -text
159
+ blogs/2018/09/12/tweet.png filter=lfs diff=lfs merge=lfs -text
160
+ blogs/2018/12/04/CPlusPlus.gif filter=lfs diff=lfs merge=lfs -text
161
+ blogs/2018/12/04/CSharp.gif filter=lfs diff=lfs merge=lfs -text
162
+ blogs/2018/12/04/CrossRepoJump.gif filter=lfs diff=lfs merge=lfs -text
163
+ docs/azure/images/docker/dockercommands.gif filter=lfs diff=lfs merge=lfs -text
164
+ docs/azure/images/docker/generateFiles.gif filter=lfs diff=lfs merge=lfs -text
165
+ docs/azure/images/kubernetes/check-status.gif filter=lfs diff=lfs merge=lfs -text
166
+ docs/azure/images/kubernetes/create-k8s.gif filter=lfs diff=lfs merge=lfs -text
167
+ docs/azure/images/kubernetes/create-manifest.gif filter=lfs diff=lfs merge=lfs -text
168
+ docs/azure/images/kubernetes/install-kubernetes.png filter=lfs diff=lfs merge=lfs -text
169
+ docs/azure/images/kubernetes/start-deployment.gif filter=lfs diff=lfs merge=lfs -text
170
+ docs/azure/images/remote-debugging/remote-breakpoint.png filter=lfs diff=lfs merge=lfs -text
171
+ docs/azure/images/remote-debugging/start-remote-debugging.png filter=lfs diff=lfs merge=lfs -text
172
+ docs/editor/images/accessibility/zoomed-in.png filter=lfs diff=lfs merge=lfs -text
173
+ docs/editor/images/codebasics/CodeBasics.png filter=lfs diff=lfs merge=lfs -text
174
+ docs/editor/images/codebasics/column-select.gif filter=lfs diff=lfs merge=lfs -text
175
+ docs/editor/images/codebasics/multicursor-word.gif filter=lfs diff=lfs merge=lfs -text
176
+ docs/editor/images/codebasics/multicursor.gif filter=lfs diff=lfs merge=lfs -text
177
+ docs/editor/images/debugging/Debugging.png filter=lfs diff=lfs merge=lfs -text
178
+ docs/editor/images/debugging/add-config.gif filter=lfs diff=lfs merge=lfs -text
179
+ docs/editor/images/debugging/hitCount.gif filter=lfs diff=lfs merge=lfs -text
180
+ docs/editor/images/debugging/launch-json-intellisense.png filter=lfs diff=lfs merge=lfs -text
181
+ docs/editor/images/debugging/log-points.gif filter=lfs diff=lfs merge=lfs -text
182
+ docs/editor/images/emmet/emmet-multi-cursor.gif filter=lfs diff=lfs merge=lfs -text
183
+ docs/editor/images/emmet/emmet-vendor-prefix.gif filter=lfs diff=lfs merge=lfs -text
184
+ docs/editor/images/emmet/emmet.gif filter=lfs diff=lfs merge=lfs -text
185
+ docs/editor/images/extension-gallery/disable-extension.png filter=lfs diff=lfs merge=lfs -text
186
+ docs/editor/images/extension-gallery/enable-extension.png filter=lfs diff=lfs merge=lfs -text
187
+ docs/editor/images/extension-gallery/extension-search-categories.png filter=lfs diff=lfs merge=lfs -text
188
+ docs/editor/images/extension-gallery/extensions-disable-all.gif filter=lfs diff=lfs merge=lfs -text
189
+ docs/editor/images/extension-gallery/extensions-disable.gif filter=lfs diff=lfs merge=lfs -text
190
+ docs/editor/images/extension-gallery/extensions-popular.png filter=lfs diff=lfs merge=lfs -text
191
+ docs/editor/images/extension-gallery/extensions-python.png filter=lfs diff=lfs merge=lfs -text
192
+ docs/editor/images/extension-gallery/uninstall-extension.png filter=lfs diff=lfs merge=lfs -text
193
+ docs/editor/images/intellisense/localitybonus.png filter=lfs diff=lfs merge=lfs -text
194
+ docs/editor/images/intellisense/tabCompletion.gif filter=lfs diff=lfs merge=lfs -text
195
+ docs/editor/images/multi-root-workspaces/multiple-scm-providers.png filter=lfs diff=lfs merge=lfs -text
196
+ docs/editor/images/multi-root-workspaces/settings-dropdown.png filter=lfs diff=lfs merge=lfs -text
197
+ docs/editor/images/refactoring/ts-extract-local.gif filter=lfs diff=lfs merge=lfs -text
198
+ docs/editor/images/tasks/run-input-example.gif filter=lfs diff=lfs merge=lfs -text
199
+ docs/editor/images/userdefinedsnippets/ajax-snippet.gif filter=lfs diff=lfs merge=lfs -text
200
+ docs/editor/images/versioncontrol/GitHub-clone-dialog.png filter=lfs diff=lfs merge=lfs -text
201
+ docs/editor/images/versioncontrol/scm.png filter=lfs diff=lfs merge=lfs -text
202
+ docs/getstarted/images/keybinding/keyboard-shortcuts.gif filter=lfs diff=lfs merge=lfs -text
203
+ docs/getstarted/images/settings/lang-based-settings.png filter=lfs diff=lfs merge=lfs -text
204
+ docs/getstarted/images/themes/built-in-themes.png filter=lfs diff=lfs merge=lfs -text
205
+ docs/getstarted/images/themes/theme-activitybar.gif filter=lfs diff=lfs merge=lfs -text
206
+ docs/getstarted/images/tips-and-tricks/Errors_Warnings.gif filter=lfs diff=lfs merge=lfs -text
207
+ docs/getstarted/images/tips-and-tricks/InstallExtensions.gif filter=lfs diff=lfs merge=lfs -text
208
+ docs/getstarted/images/tips-and-tricks/KeyboardShortcuts.gif filter=lfs diff=lfs merge=lfs -text
209
+ docs/getstarted/images/tips-and-tricks/OpenCommandPalatte.gif filter=lfs diff=lfs merge=lfs -text
210
+ docs/getstarted/images/tips-and-tricks/PreviewFileIconThemes.gif filter=lfs diff=lfs merge=lfs -text
211
+ docs/getstarted/images/tips-and-tricks/PreviewThemes.gif filter=lfs diff=lfs merge=lfs -text
212
+ docs/getstarted/images/tips-and-tricks/QuickOpen.gif filter=lfs diff=lfs merge=lfs -text
213
+ docs/getstarted/images/tips-and-tricks/add_cursor_current_selection.gif filter=lfs diff=lfs merge=lfs -text
214
+ docs/getstarted/images/tips-and-tricks/add_cursor_current_selection_one_by_one.gif filter=lfs diff=lfs merge=lfs -text
215
+ docs/getstarted/images/tips-and-tricks/change_syntax.gif filter=lfs diff=lfs merge=lfs -text
216
+ docs/getstarted/images/tips-and-tricks/code_folding.gif filter=lfs diff=lfs merge=lfs -text
217
+ docs/getstarted/images/tips-and-tricks/code_formatting.gif filter=lfs diff=lfs merge=lfs -text
218
+ docs/getstarted/images/tips-and-tricks/column-select.gif filter=lfs diff=lfs merge=lfs -text
219
+ docs/getstarted/images/tips-and-tricks/command_p.png filter=lfs diff=lfs merge=lfs -text
220
+ docs/getstarted/images/tips-and-tricks/configure_debug.gif filter=lfs diff=lfs merge=lfs -text
221
+ docs/getstarted/images/tips-and-tricks/create_open_file.gif filter=lfs diff=lfs merge=lfs -text
222
+ docs/getstarted/images/tips-and-tricks/debug_data_inspection.gif filter=lfs diff=lfs merge=lfs -text
223
+ docs/getstarted/images/tips-and-tricks/emmet_syntax.gif filter=lfs diff=lfs merge=lfs -text
224
+ docs/getstarted/images/tips-and-tricks/find_all_references.gif filter=lfs diff=lfs merge=lfs -text
225
+ docs/getstarted/images/tips-and-tricks/find_by_symbol.gif filter=lfs diff=lfs merge=lfs -text
226
+ docs/getstarted/images/tips-and-tricks/git_side_by_side.png filter=lfs diff=lfs merge=lfs -text
227
+ docs/getstarted/images/tips-and-tricks/git_stage_all.gif filter=lfs diff=lfs merge=lfs -text
228
+ docs/getstarted/images/tips-and-tricks/goto_definition.gif filter=lfs diff=lfs merge=lfs -text
229
+ docs/getstarted/images/tips-and-tricks/intellisense.gif filter=lfs diff=lfs merge=lfs -text
230
+ docs/getstarted/images/tips-and-tricks/markdown-preview-side-by-side.png filter=lfs diff=lfs merge=lfs -text
231
+ docs/getstarted/images/tips-and-tricks/move_line.gif filter=lfs diff=lfs merge=lfs -text
232
+ docs/getstarted/images/tips-and-tricks/multicursor.gif filter=lfs diff=lfs merge=lfs -text
233
+ docs/getstarted/images/tips-and-tricks/navigate_editors.gif filter=lfs diff=lfs merge=lfs -text
234
+ docs/getstarted/images/tips-and-tricks/navigate_history.gif filter=lfs diff=lfs merge=lfs -text
235
+ docs/getstarted/images/tips-and-tricks/navigate_to_line.gif filter=lfs diff=lfs merge=lfs -text
236
+ docs/getstarted/images/tips-and-tricks/node_debug.gif filter=lfs diff=lfs merge=lfs -text
237
+ docs/getstarted/images/tips-and-tricks/package_json_intellisense.gif filter=lfs diff=lfs merge=lfs -text
238
+ docs/getstarted/images/tips-and-tricks/peek.gif filter=lfs diff=lfs merge=lfs -text
239
+ docs/getstarted/images/tips-and-tricks/rename_symbol.gif filter=lfs diff=lfs merge=lfs -text
240
+ docs/getstarted/images/tips-and-tricks/shrink_expand_selection.gif filter=lfs diff=lfs merge=lfs -text
241
+ docs/getstarted/images/tips-and-tricks/split_editor.gif filter=lfs diff=lfs merge=lfs -text
242
+ docs/getstarted/images/tips-and-tricks/switch_branches.gif filter=lfs diff=lfs merge=lfs -text
243
+ docs/getstarted/images/tips-and-tricks/task_runner.gif filter=lfs diff=lfs merge=lfs -text
244
+ docs/getstarted/images/tips-and-tricks/toggle_side_bar.gif filter=lfs diff=lfs merge=lfs -text
245
+ docs/getstarted/images/tips-and-tricks/trim_whitespace.gif filter=lfs diff=lfs merge=lfs -text
246
+ docs/getstarted/images/tips-and-tricks/undo_last_commit.gif filter=lfs diff=lfs merge=lfs -text
247
+ docs/getstarted/images/tips-and-tricks/zen_mode.gif filter=lfs diff=lfs merge=lfs -text
248
+ docs/getstarted/images/userinterface/grid-dnd.gif filter=lfs diff=lfs merge=lfs -text
249
+ docs/getstarted/images/userinterface/grid-layout-menu.png filter=lfs diff=lfs merge=lfs -text
250
+ docs/getstarted/images/userinterface/grid-layout.gif filter=lfs diff=lfs merge=lfs -text
251
+ docs/getstarted/images/userinterface/hero.png filter=lfs diff=lfs merge=lfs -text
252
+ docs/getstarted/images/userinterface/sidebyside.png filter=lfs diff=lfs merge=lfs -text
253
+ docs/getstarted/images/userinterface/tabs-editor-groups.png filter=lfs diff=lfs merge=lfs -text
254
+ docs/getstarted/images/userinterface/view-management.png filter=lfs diff=lfs merge=lfs -text
255
+ docs/getstarted/images/userinterface/workspace-settings.png filter=lfs diff=lfs merge=lfs -text
256
+ docs/introvideos/images/opengraph/introvideos.png filter=lfs diff=lfs merge=lfs -text
257
+ docs/java/images/java-azurefunctions/add-functions.gif filter=lfs diff=lfs merge=lfs -text
258
+ docs/java/images/java-azurefunctions/debug-functions.gif filter=lfs diff=lfs merge=lfs -text
259
+ docs/java/images/java-azurefunctions/deploy-functions.gif filter=lfs diff=lfs merge=lfs -text
260
+ docs/java/images/java-debugging/attach-source.gif filter=lfs diff=lfs merge=lfs -text
261
+ docs/java/images/java-debugging/conditional-bp.gif filter=lfs diff=lfs merge=lfs -text
262
+ docs/java/images/java-debugging/current-file.gif filter=lfs diff=lfs merge=lfs -text
263
+ docs/java/images/java-debugging/cwd-env.gif filter=lfs diff=lfs merge=lfs -text
264
+ docs/java/images/java-debugging/expression-evaluation.gif filter=lfs diff=lfs merge=lfs -text
265
+ docs/java/images/java-debugging/hcr.gif filter=lfs diff=lfs merge=lfs -text
266
+ docs/java/images/java-debugging/java-debug.gif filter=lfs diff=lfs merge=lfs -text
267
+ docs/java/images/java-debugging/java9.gif filter=lfs diff=lfs merge=lfs -text
268
+ docs/java/images/java-debugging/junit.gif filter=lfs diff=lfs merge=lfs -text
269
+ docs/java/images/java-debugging/launch-in-terminal.gif filter=lfs diff=lfs merge=lfs -text
270
+ docs/java/images/java-debugging/logpoints.gif filter=lfs diff=lfs merge=lfs -text
271
+ docs/java/images/java-debugging/resolve-main.gif filter=lfs diff=lfs merge=lfs -text
272
+ docs/java/images/java-debugging/single-file.gif filter=lfs diff=lfs merge=lfs -text
273
+ docs/java/images/java-debugging/step-filter.gif filter=lfs diff=lfs merge=lfs -text
274
+ docs/java/images/java-debugging/test-explorer.png filter=lfs diff=lfs merge=lfs -text
275
+ docs/java/images/java-editing/Intellisense(Intellicode).gif filter=lfs diff=lfs merge=lfs -text
276
+ docs/java/images/java-editing/checkstyle.gif filter=lfs diff=lfs merge=lfs -text
277
+ docs/java/images/java-editing/code-editing.gif filter=lfs diff=lfs merge=lfs -text
278
+ docs/java/images/java-editing/getter-setter.gif filter=lfs diff=lfs merge=lfs -text
279
+ docs/java/images/java-editing/intellicode.gif filter=lfs diff=lfs merge=lfs -text
280
+ docs/java/images/java-editing/quick-fix.gif filter=lfs diff=lfs merge=lfs -text
281
+ docs/java/images/java-editing/refactor.gif filter=lfs diff=lfs merge=lfs -text
282
+ docs/java/images/java-editing/rename.gif filter=lfs diff=lfs merge=lfs -text
283
+ docs/java/images/java-editing/search-in-file.gif filter=lfs diff=lfs merge=lfs -text
284
+ docs/java/images/java-editing/search-in-workspace.gif filter=lfs diff=lfs merge=lfs -text
285
+ docs/java/images/java-editing/spring-navigation.png filter=lfs diff=lfs merge=lfs -text
286
+ docs/java/images/java-project/create-project.gif filter=lfs diff=lfs merge=lfs -text
287
+ docs/java/images/java-project/hierarchical.gif filter=lfs diff=lfs merge=lfs -text
288
+ docs/java/images/java-project/maven-archetype.gif filter=lfs diff=lfs merge=lfs -text
289
+ docs/java/images/java-project/maven-effective-pom.gif filter=lfs diff=lfs merge=lfs -text
290
+ docs/java/images/java-project/maven-explorer.png filter=lfs diff=lfs merge=lfs -text
291
+ docs/java/images/java-project/maven-history.gif filter=lfs diff=lfs merge=lfs -text
292
+ docs/java/images/java-project/maven-plugin-goal.gif filter=lfs diff=lfs merge=lfs -text
293
+ docs/java/images/java-project/maven-pom-editing.gif filter=lfs diff=lfs merge=lfs -text
294
+ docs/java/images/java-project/maven-run.gif filter=lfs diff=lfs merge=lfs -text
295
+ docs/java/images/java-project/multiple-source.gif filter=lfs diff=lfs merge=lfs -text
296
+ docs/java/images/java-project/package-viewer.gif filter=lfs diff=lfs merge=lfs -text
297
+ docs/java/images/java-project/standalone.gif filter=lfs diff=lfs merge=lfs -text
298
+ docs/java/images/java-spring-boot/spring-code-edit.gif filter=lfs diff=lfs merge=lfs -text
299
+ docs/java/images/java-spring-boot/spring-dashboard.gif filter=lfs diff=lfs merge=lfs -text
300
+ docs/java/images/java-spring-boot/spring-initializr-edit.gif filter=lfs diff=lfs merge=lfs -text
301
+ docs/java/images/java-spring-boot/spring-initializr.gif filter=lfs diff=lfs merge=lfs -text
302
+ docs/java/images/java-testing/report.gif filter=lfs diff=lfs merge=lfs -text
303
+ docs/java/images/java-testing/test-junit5.gif filter=lfs diff=lfs merge=lfs -text
304
+ docs/java/images/java-testing/testng.gif filter=lfs diff=lfs merge=lfs -text
305
+ docs/java/images/java-tomcat-jetty/jetty.gif filter=lfs diff=lfs merge=lfs -text
306
+ docs/java/images/java-tomcat-jetty/tomcat-create-server.gif filter=lfs diff=lfs merge=lfs -text
307
+ docs/java/images/java-tomcat-jetty/tomcat.gif filter=lfs diff=lfs merge=lfs -text
308
+ docs/java/images/java-tutorial/create-file.gif filter=lfs diff=lfs merge=lfs -text
309
+ docs/java/images/java-tutorial/edit-code.gif filter=lfs diff=lfs merge=lfs -text
310
+ docs/java/images/java-tutorial/run-debug.gif filter=lfs diff=lfs merge=lfs -text
311
+ docs/java/images/java-webapp/clone-repository.gif filter=lfs diff=lfs merge=lfs -text
312
+ docs/java/images/java-webapp/debugging-status-bar.png filter=lfs diff=lfs merge=lfs -text
313
+ docs/java/images/java-webapp/debugging.png filter=lfs diff=lfs merge=lfs -text
314
+ docs/java/images/java-webapp/deploy-webapp.png filter=lfs diff=lfs merge=lfs -text
315
+ docs/java/images/java-webapp/install-extensions.gif filter=lfs diff=lfs merge=lfs -text
316
+ docs/java/images/java-webapp/run-spring-boot.gif filter=lfs diff=lfs merge=lfs -text
317
+ docs/languages/images/Markdown/double-click-preview-switch.gif filter=lfs diff=lfs merge=lfs -text
318
+ docs/languages/images/Markdown/md-dynamic-preview.gif filter=lfs diff=lfs merge=lfs -text
319
+ docs/languages/images/Markdown/preview-scroll-sync.gif filter=lfs diff=lfs merge=lfs -text
320
+ docs/languages/images/Markdown/security-alert.png filter=lfs diff=lfs merge=lfs -text
321
+ docs/languages/images/cpp/includepath.gif filter=lfs diff=lfs merge=lfs -text
322
+ docs/languages/images/cpp/languages_cpp.png filter=lfs diff=lfs merge=lfs -text
323
+ docs/languages/images/csharp/languages_csharp.png filter=lfs diff=lfs merge=lfs -text
324
+ docs/languages/images/html/auto-close1.gif filter=lfs diff=lfs merge=lfs -text
325
+ docs/languages/images/html/emmetsnippet.gif filter=lfs diff=lfs merge=lfs -text
326
+ docs/languages/images/java/intellisense.gif filter=lfs diff=lfs merge=lfs -text
327
+ docs/languages/images/java/java-debug.gif filter=lfs diff=lfs merge=lfs -text
328
+ docs/languages/images/java/java-test-explorer.png filter=lfs diff=lfs merge=lfs -text
329
+ docs/languages/images/java/java-test.gif filter=lfs diff=lfs merge=lfs -text
330
+ docs/languages/images/java/package-viewer.gif filter=lfs diff=lfs merge=lfs -text
331
+ docs/languages/images/java/resolve-main.gif filter=lfs diff=lfs merge=lfs -text
332
+ docs/languages/images/java/testng.gif filter=lfs diff=lfs merge=lfs -text
333
+ docs/languages/images/java/tomcat.gif filter=lfs diff=lfs merge=lfs -text
334
+ docs/languages/images/java/vscode-java.0.0.1.gif filter=lfs diff=lfs merge=lfs -text
335
+ docs/languages/images/javascript/checkjs-example.gif filter=lfs diff=lfs merge=lfs -text
336
+ docs/languages/images/javascript/intellisense-placeholder.png filter=lfs diff=lfs merge=lfs -text
337
+ docs/languages/images/javascript/intellisense.mp4 filter=lfs diff=lfs merge=lfs -text
338
+ docs/languages/images/javascript/jsx.png filter=lfs diff=lfs merge=lfs -text
339
+ docs/languages/images/javascript/organize-imports.mp4 filter=lfs diff=lfs merge=lfs -text
340
+ docs/languages/images/javascript/overview.png filter=lfs diff=lfs merge=lfs -text
341
+ docs/languages/images/javascript/tag-complete.mp4 filter=lfs diff=lfs merge=lfs -text
342
+ docs/languages/images/javascript/update-imports-placeholder.png filter=lfs diff=lfs merge=lfs -text
343
+ docs/languages/images/javascript/update-imports.mp4 filter=lfs diff=lfs merge=lfs -text
344
+ docs/languages/images/powershell/codeLensFuncRef.gif filter=lfs diff=lfs merge=lfs -text
345
+ docs/languages/images/powershell/codeLensPesterDebug.gif filter=lfs diff=lfs merge=lfs -text
346
+ docs/languages/images/powershell/codeLensPesterSymbol.gif filter=lfs diff=lfs merge=lfs -text
347
+ docs/languages/images/python/feature_showcase.mp4 filter=lfs diff=lfs merge=lfs -text
348
+ docs/languages/images/python/jupyter.png filter=lfs diff=lfs merge=lfs -text
349
+ docs/languages/images/python/python-debugging.mp4 filter=lfs diff=lfs merge=lfs -text
350
+ docs/languages/images/python/python-editing.gif filter=lfs diff=lfs merge=lfs -text
351
+ docs/languages/images/python/python-linting.mp4 filter=lfs diff=lfs merge=lfs -text
352
+ docs/languages/images/python/python-snippets.mp4 filter=lfs diff=lfs merge=lfs -text
353
+ docs/languages/images/tsql/execute.gif filter=lfs diff=lfs merge=lfs -text
354
+ docs/languages/images/tsql/intellisense.gif filter=lfs diff=lfs merge=lfs -text
355
+ docs/languages/images/tsql/linting.gif filter=lfs diff=lfs merge=lfs -text
356
+ docs/languages/images/tsql/peekdefinition.gif filter=lfs diff=lfs merge=lfs -text
357
+ docs/languages/images/tsql/save.gif filter=lfs diff=lfs merge=lfs -text
358
+ docs/languages/images/tsql/snippets.gif filter=lfs diff=lfs merge=lfs -text
359
+ docs/languages/images/typescript/Languages_typescript.png filter=lfs diff=lfs merge=lfs -text
360
+ docs/languages/images/typescript/intellisense.mp4 filter=lfs diff=lfs merge=lfs -text
361
+ docs/languages/images/typescript/jsdoc-autofill.mp4 filter=lfs diff=lfs merge=lfs -text
362
+ docs/languages/images/typescript/jsx-tag-complete.mp4 filter=lfs diff=lfs merge=lfs -text
363
+ docs/languages/images/typescript/organize-imports.mp4 filter=lfs diff=lfs merge=lfs -text
364
+ docs/languages/images/typescript/overview.png filter=lfs diff=lfs merge=lfs -text
365
+ docs/nodejs/images/emberjs/welcome-page.png filter=lfs diff=lfs merge=lfs -text
366
+ docs/nodejs/images/extensions/chrome_debugger.png filter=lfs diff=lfs merge=lfs -text
367
+ docs/nodejs/images/extensions/document_this.gif filter=lfs diff=lfs merge=lfs -text
368
+ docs/nodejs/images/extensions/npm_intellisense.gif filter=lfs diff=lfs merge=lfs -text
369
+ docs/nodejs/images/nodejs/debugsession.png filter=lfs diff=lfs merge=lfs -text
370
+ docs/nodejs/images/nodejs/hello-world-debugging.png filter=lfs diff=lfs merge=lfs -text
371
+ docs/nodejs/images/nodejs/runtimes_node.png filter=lfs diff=lfs merge=lfs -text
372
+ docs/nodejs/images/nodejs-debugging/auto-attach-cluster.gif filter=lfs diff=lfs merge=lfs -text
373
+ docs/nodejs/images/nodejs-debugging/auto-attach.gif filter=lfs diff=lfs merge=lfs -text
374
+ docs/nodejs/images/nodejs-debugging/loaded-scripts-explorer.gif filter=lfs diff=lfs merge=lfs -text
375
+ docs/nodejs/images/nodejs-debugging/loaded-scripts.gif filter=lfs diff=lfs merge=lfs -text
376
+ docs/nodejs/images/reactjs/hit-breakpoint.png filter=lfs diff=lfs merge=lfs -text
377
+ docs/nodejs/images/recipes/chrome.png filter=lfs diff=lfs merge=lfs -text
378
+ docs/nodejs/images/recipes/electron.png filter=lfs diff=lfs merge=lfs -text
379
+ docs/nodejs/images/recipes/mern.png filter=lfs diff=lfs merge=lfs -text
380
+ docs/nodejs/images/recipes/node-typescript-docker.png filter=lfs diff=lfs merge=lfs -text
381
+ docs/nodejs/images/recipes/nodejs.png filter=lfs diff=lfs merge=lfs -text
382
+ docs/nodejs/images/working-with-javascript/checkjs-example.gif filter=lfs diff=lfs merge=lfs -text
383
+ docs/nodejs/images/working-with-javascript/disable-TS-language.png filter=lfs diff=lfs merge=lfs -text
384
+ docs/other/images/office/yoofficemanifest.png filter=lfs diff=lfs merge=lfs -text
385
+ docs/other/images/unity/wow.gif filter=lfs diff=lfs merge=lfs -text
386
+ docs/python/images/debugging/debugGAE.gif filter=lfs diff=lfs merge=lfs -text
387
+ docs/python/images/deploy-containers/deploy-to-app-service.gif filter=lfs diff=lfs merge=lfs -text
388
+ docs/python/images/editing/python-editing.gif filter=lfs diff=lfs merge=lfs -text
389
+ docs/python/images/editing/refactorExtractMethod.gif filter=lfs diff=lfs merge=lfs -text
390
+ docs/python/images/jupyter/jupyter-notebook.png filter=lfs diff=lfs merge=lfs -text
391
+ docs/setup/images/mac/touchbar.gif filter=lfs diff=lfs merge=lfs -text
392
+ docs/setup/images/quicksetup/QuickSetup.png filter=lfs diff=lfs merge=lfs -text
393
+ release-notes/images/0_10_0/hello-code.png filter=lfs diff=lfs merge=lfs -text
394
+ release-notes/images/0_8_0/colorthemes.gif filter=lfs diff=lfs merge=lfs -text
395
+ release-notes/images/1_10/column-breakpoints.gif filter=lfs diff=lfs merge=lfs -text
396
+ release-notes/images/1_10/copy-with-syntax-highlighting.gif filter=lfs diff=lfs merge=lfs -text
397
+ release-notes/images/1_10/drag-and-drop.gif filter=lfs diff=lfs merge=lfs -text
398
+ release-notes/images/1_10/jsdoc-autofill.gif filter=lfs diff=lfs merge=lfs -text
399
+ release-notes/images/1_10/launch-keyboard.gif filter=lfs diff=lfs merge=lfs -text
400
+ release-notes/images/1_10/minimap-blocks-scroll.gif filter=lfs diff=lfs merge=lfs -text
401
+ release-notes/images/1_10/minimap.png filter=lfs diff=lfs merge=lfs -text
402
+ release-notes/images/1_11/abyss-theme.png filter=lfs diff=lfs merge=lfs -text
403
+ release-notes/images/1_11/color-settings.gif filter=lfs diff=lfs merge=lfs -text
404
+ release-notes/images/1_11/config-exceptions.gif filter=lfs diff=lfs merge=lfs -text
405
+ release-notes/images/1_11/exception-peekui.png filter=lfs diff=lfs merge=lfs -text
406
+ release-notes/images/1_11/keyboard-shortcuts.gif filter=lfs diff=lfs merge=lfs -text
407
+ release-notes/images/1_11/loaded-scripts.gif filter=lfs diff=lfs merge=lfs -text
408
+ release-notes/images/1_11/panel.gif filter=lfs diff=lfs merge=lfs -text
409
+ release-notes/images/1_12/column-breakpoints.gif filter=lfs diff=lfs merge=lfs -text
410
+ release-notes/images/1_12/completions-dynamic-sort.gif filter=lfs diff=lfs merge=lfs -text
411
+ release-notes/images/1_12/keyboard-shortcuts-editor.gif filter=lfs diff=lfs merge=lfs -text
412
+ release-notes/images/1_12/native-tabs.gif filter=lfs diff=lfs merge=lfs -text
413
+ release-notes/images/1_12/terminal-line-col-link.gif filter=lfs diff=lfs merge=lfs -text
414
+ release-notes/images/1_12/theme-activitybar.gif filter=lfs diff=lfs merge=lfs -text
415
+ release-notes/images/1_12/theme-generator.png filter=lfs diff=lfs merge=lfs -text
416
+ release-notes/images/1_12/ts-checkjs-example.gif filter=lfs diff=lfs merge=lfs -text
417
+ release-notes/images/1_13/emmet.gif filter=lfs diff=lfs merge=lfs -text
418
+ release-notes/images/1_13/high-contrast.png filter=lfs diff=lfs merge=lfs -text
419
+ release-notes/images/1_13/jsx-new-coloring.png filter=lfs diff=lfs merge=lfs -text
420
+ release-notes/images/1_13/letter-spacing.gif filter=lfs diff=lfs merge=lfs -text
421
+ release-notes/images/1_13/markdown-heading-levels.png filter=lfs diff=lfs merge=lfs -text
422
+ release-notes/images/1_13/new-setting-defaults.png filter=lfs diff=lfs merge=lfs -text
423
+ release-notes/images/1_13/resize-find-widget.gif filter=lfs diff=lfs merge=lfs -text
424
+ release-notes/images/1_13/snippets-multi-cursor.gif filter=lfs diff=lfs merge=lfs -text
425
+ release-notes/images/1_13/step-after.gif filter=lfs diff=lfs merge=lfs -text
426
+ release-notes/images/1_13/step-before.gif filter=lfs diff=lfs merge=lfs -text
427
+ release-notes/images/1_13/suggest.gif filter=lfs diff=lfs merge=lfs -text
428
+ release-notes/images/1_13/task-customize.gif filter=lfs diff=lfs merge=lfs -text
429
+ release-notes/images/1_13/terminal-vtop-after.png filter=lfs diff=lfs merge=lfs -text
430
+ release-notes/images/1_13/terminal-vtop-before.png filter=lfs diff=lfs merge=lfs -text
431
+ release-notes/images/1_13/uncover-matched-results.gif filter=lfs diff=lfs merge=lfs -text
432
+ release-notes/images/1_14/commands-history.gif filter=lfs diff=lfs merge=lfs -text
433
+ release-notes/images/1_14/emmet.gif filter=lfs diff=lfs merge=lfs -text
434
+ release-notes/images/1_14/empty-window-restore.gif filter=lfs diff=lfs merge=lfs -text
435
+ release-notes/images/1_14/github-issues-and-prs.gif filter=lfs diff=lfs merge=lfs -text
436
+ release-notes/images/1_14/gitignore.gif filter=lfs diff=lfs merge=lfs -text
437
+ release-notes/images/1_14/js-refactoring.gif filter=lfs diff=lfs merge=lfs -text
438
+ release-notes/images/1_14/minimap-horizontal-slider.gif filter=lfs diff=lfs merge=lfs -text
439
+ release-notes/images/1_14/quick-switch-windows.gif filter=lfs diff=lfs merge=lfs -text
440
+ release-notes/images/1_14/tasks-matcher-attach.gif filter=lfs diff=lfs merge=lfs -text
441
+ release-notes/images/1_14/terminal-selection-select.gif filter=lfs diff=lfs merge=lfs -text
442
+ release-notes/images/1_14/ts-build-task.gif filter=lfs diff=lfs merge=lfs -text
443
+ release-notes/images/1_15/folder_settings.png filter=lfs diff=lfs merge=lfs -text
444
+ release-notes/images/1_15/loaded-scripts-explorer.gif filter=lfs diff=lfs merge=lfs -text
445
+ release-notes/images/1_15/markdown-preview-search.png filter=lfs diff=lfs merge=lfs -text
446
+ release-notes/images/1_15/markdown-security.gif filter=lfs diff=lfs merge=lfs -text
447
+ release-notes/images/1_15/react-tutorial.png filter=lfs diff=lfs merge=lfs -text
448
+ release-notes/images/1_15/snippet-choice.gif filter=lfs diff=lfs merge=lfs -text
449
+ release-notes/images/1_15/views_management.gif filter=lfs diff=lfs merge=lfs -text
450
+ release-notes/images/1_15/workspace.gif filter=lfs diff=lfs merge=lfs -text
451
+ release-notes/images/1_15/workspace_settings.png filter=lfs diff=lfs merge=lfs -text
452
+ release-notes/images/1_16/auto-close1.gif filter=lfs diff=lfs merge=lfs -text
453
+ release-notes/images/1_16/eh-breakpoints.gif filter=lfs diff=lfs merge=lfs -text
454
+ release-notes/images/1_16/exthost-restart.gif filter=lfs diff=lfs merge=lfs -text
455
+ release-notes/images/1_16/folder-drop.gif filter=lfs diff=lfs merge=lfs -text
456
+ release-notes/images/1_16/multi-root-dnd.gif filter=lfs diff=lfs merge=lfs -text
457
+ release-notes/images/1_16/multi-root-transition.gif filter=lfs diff=lfs merge=lfs -text
458
+ release-notes/images/1_16/scm-multiroot.png filter=lfs diff=lfs merge=lfs -text
459
+ release-notes/images/1_16/search-dnd.gif filter=lfs diff=lfs merge=lfs -text
460
+ release-notes/images/1_16/smooth-scrolling.gif filter=lfs diff=lfs merge=lfs -text
461
+ release-notes/images/1_16/ts-extract.gif filter=lfs diff=lfs merge=lfs -text
462
+ release-notes/images/1_17/console_messages.gif filter=lfs diff=lfs merge=lfs -text
463
+ release-notes/images/1_17/js-markdown-intellisense.png filter=lfs diff=lfs merge=lfs -text
464
+ release-notes/images/1_17/markdown-fenced-commenting.gif filter=lfs diff=lfs merge=lfs -text
465
+ release-notes/images/1_17/offside-folding.gif filter=lfs diff=lfs merge=lfs -text
466
+ release-notes/images/1_17/quick-suggestion-path-intellisense.gif filter=lfs diff=lfs merge=lfs -text
467
+ release-notes/images/1_17/region-folding.gif filter=lfs diff=lfs merge=lfs -text
468
+ release-notes/images/1_17/scm.png filter=lfs diff=lfs merge=lfs -text
469
+ release-notes/images/1_17/terminal_60fps.gif filter=lfs diff=lfs merge=lfs -text
470
+ release-notes/images/1_17/touchbar.gif filter=lfs diff=lfs merge=lfs -text
471
+ release-notes/images/1_17/wait.gif filter=lfs diff=lfs merge=lfs -text
472
+ release-notes/images/1_18/diff.gif filter=lfs diff=lfs merge=lfs -text
473
+ release-notes/images/1_18/git-decorations.png filter=lfs diff=lfs merge=lfs -text
474
+ release-notes/images/1_18/merge.png filter=lfs diff=lfs merge=lfs -text
475
+ release-notes/images/1_18/multiroot.gif filter=lfs diff=lfs merge=lfs -text
476
+ release-notes/images/1_18/panel-title.gif filter=lfs diff=lfs merge=lfs -text
477
+ release-notes/images/1_18/recommendationinstall-configure.gif filter=lfs diff=lfs merge=lfs -text
478
+ release-notes/images/1_18/recommendations-badge.gif filter=lfs diff=lfs merge=lfs -text
479
+ release-notes/images/1_18/string-quick-suggestions.gif filter=lfs diff=lfs merge=lfs -text
480
+ release-notes/images/1_18/ts-extract-local.gif filter=lfs diff=lfs merge=lfs -text
481
+ release-notes/images/1_18/vertical-panel.png filter=lfs diff=lfs merge=lfs -text
482
+ release-notes/images/1_19/image-diff.png filter=lfs diff=lfs merge=lfs -text
483
+ release-notes/images/1_19/shrink.gif filter=lfs diff=lfs merge=lfs -text
484
+ release-notes/images/1_19/status.png filter=lfs diff=lfs merge=lfs -text
485
+ release-notes/images/1_19/stdin.gif filter=lfs diff=lfs merge=lfs -text
486
+ release-notes/images/1_19/suggest_mem.gif filter=lfs diff=lfs merge=lfs -text
487
+ release-notes/images/1_19/vscode-processes.gif filter=lfs diff=lfs merge=lfs -text
488
+ release-notes/images/1_20/auto-attach-cluster.gif filter=lfs diff=lfs merge=lfs -text
489
+ release-notes/images/1_20/emmetprefix.gif filter=lfs diff=lfs merge=lfs -text
490
+ release-notes/images/1_20/filerec.gif filter=lfs diff=lfs merge=lfs -text
491
+ release-notes/images/1_20/git-input-validation.gif filter=lfs diff=lfs merge=lfs -text
492
+ release-notes/images/1_20/image-zoom.gif filter=lfs diff=lfs merge=lfs -text
493
+ release-notes/images/1_20/minimap-left-side.png filter=lfs diff=lfs merge=lfs -text
494
+ release-notes/images/1_20/multi-select.gif filter=lfs diff=lfs merge=lfs -text
495
+ release-notes/images/1_20/output-log-channels.png filter=lfs diff=lfs merge=lfs -text
496
+ release-notes/images/1_20/popular-extension.png filter=lfs diff=lfs merge=lfs -text
497
+ release-notes/images/1_20/save_admin.gif filter=lfs diff=lfs merge=lfs -text
498
+ release-notes/images/1_20/submodules.png filter=lfs diff=lfs merge=lfs -text
499
+ release-notes/images/1_20/tab_hover.gif filter=lfs diff=lfs merge=lfs -text
500
+ release-notes/images/1_20/toggle-ignore-trim-whitespace.gif filter=lfs diff=lfs merge=lfs -text
501
+ release-notes/images/1_20/ts-auto-import-default.gif filter=lfs diff=lfs merge=lfs -text
502
+ release-notes/images/1_21/centeredLayout.gif filter=lfs diff=lfs merge=lfs -text
503
+ release-notes/images/1_21/emmet-style.gif filter=lfs diff=lfs merge=lfs -text
504
+ release-notes/images/1_21/manage-builtin.gif filter=lfs diff=lfs merge=lfs -text
505
+ release-notes/images/1_21/md-dynamic-preview.gif filter=lfs diff=lfs merge=lfs -text
506
+ release-notes/images/1_21/md-scroll-sync.gif filter=lfs diff=lfs merge=lfs -text
507
+ release-notes/images/1_21/notifications.gif filter=lfs diff=lfs merge=lfs -text
508
+ release-notes/images/1_21/path-completion.gif filter=lfs diff=lfs merge=lfs -text
509
+ release-notes/images/1_21/search.png filter=lfs diff=lfs merge=lfs -text
510
+ release-notes/images/1_21/terminal-split.gif filter=lfs diff=lfs merge=lfs -text
511
+ release-notes/images/1_21/window-copy-paste.gif filter=lfs diff=lfs merge=lfs -text
512
+ release-notes/images/1_21/window-dnd-files.gif filter=lfs diff=lfs merge=lfs -text
513
+ release-notes/images/1_22/auto-attach.gif filter=lfs diff=lfs merge=lfs -text
514
+ release-notes/images/1_22/f8-navigation.gif filter=lfs diff=lfs merge=lfs -text
515
+ release-notes/images/1_22/log-points.gif filter=lfs diff=lfs merge=lfs -text
516
+ release-notes/images/1_22/markdown-folding.gif filter=lfs diff=lfs merge=lfs -text
517
+ release-notes/images/1_22/references-f4.gif filter=lfs diff=lfs merge=lfs -text
518
+ release-notes/images/1_22/related-diagnostics-information.png filter=lfs diff=lfs merge=lfs -text
519
+ release-notes/images/1_22/save_part.gif filter=lfs diff=lfs merge=lfs -text
520
+ release-notes/images/1_22/syntax-fold.gif filter=lfs diff=lfs merge=lfs -text
521
+ release-notes/images/1_22/syntaxhighlight-optimization.gif filter=lfs diff=lfs merge=lfs -text
522
+ release-notes/images/1_22/terminal-command-tracking.gif filter=lfs diff=lfs merge=lfs -text
523
+ release-notes/images/1_22/ts-jsdocs-quicksuggestions.gif filter=lfs diff=lfs merge=lfs -text
524
+ release-notes/images/1_22/ts-organize-imports.gif filter=lfs diff=lfs merge=lfs -text
525
+ release-notes/images/1_22/wrap.gif filter=lfs diff=lfs merge=lfs -text
526
+ release-notes/images/1_23/SublimeSettingsImporter.gif filter=lfs diff=lfs merge=lfs -text
527
+ release-notes/images/1_23/active-indent-guide.gif filter=lfs diff=lfs merge=lfs -text
528
+ release-notes/images/1_23/copy-search.gif filter=lfs diff=lfs merge=lfs -text
529
+ release-notes/images/1_23/css-csstree.gif filter=lfs diff=lfs merge=lfs -text
530
+ release-notes/images/1_23/css-folding.gif filter=lfs diff=lfs merge=lfs -text
531
+ release-notes/images/1_23/css-mdn.gif filter=lfs diff=lfs merge=lfs -text
532
+ release-notes/images/1_23/editor-column-select.gif filter=lfs diff=lfs merge=lfs -text
533
+ release-notes/images/1_23/editor-stability.gif filter=lfs diff=lfs merge=lfs -text
534
+ release-notes/images/1_23/fsp.png filter=lfs diff=lfs merge=lfs -text
535
+ release-notes/images/1_23/logpoints.gif filter=lfs diff=lfs merge=lfs -text
536
+ release-notes/images/1_23/markdown-restore.gif filter=lfs diff=lfs merge=lfs -text
537
+ release-notes/images/1_23/problems_filter.gif filter=lfs diff=lfs merge=lfs -text
538
+ release-notes/images/1_23/process-explorer.gif filter=lfs diff=lfs merge=lfs -text
539
+ release-notes/images/1_23/webview.png filter=lfs diff=lfs merge=lfs -text
540
+ release-notes/images/1_24/debug_toolbar.gif filter=lfs diff=lfs merge=lfs -text
541
+ release-notes/images/1_24/grid.gif filter=lfs diff=lfs merge=lfs -text
542
+ release-notes/images/1_24/inline-diff-syntax.png filter=lfs diff=lfs merge=lfs -text
543
+ release-notes/images/1_24/outline-all.png filter=lfs diff=lfs merge=lfs -text
544
+ release-notes/images/1_24/scss-at.gif filter=lfs diff=lfs merge=lfs -text
545
+ release-notes/images/1_24/settings-editor.gif filter=lfs diff=lfs merge=lfs -text
546
+ release-notes/images/1_24/ts-import-folding.gif filter=lfs diff=lfs merge=lfs -text
547
+ release-notes/images/1_24/ts-move-to-file-post.png filter=lfs diff=lfs merge=lfs -text
548
+ release-notes/images/1_24/ts-move-to-file-pre.png filter=lfs diff=lfs merge=lfs -text
549
+ release-notes/images/1_24/ts-update-imports.gif filter=lfs diff=lfs merge=lfs -text
550
+ release-notes/images/1_25/debugtoolbar.gif filter=lfs diff=lfs merge=lfs -text
551
+ release-notes/images/1_25/defaultExtensionsView.gif filter=lfs diff=lfs merge=lfs -text
552
+ release-notes/images/1_25/drop.gif filter=lfs diff=lfs merge=lfs -text
553
+ release-notes/images/1_25/editor-sub-word-navigation.gif filter=lfs diff=lfs merge=lfs -text
554
+ release-notes/images/1_25/editorPaneBackground.png filter=lfs diff=lfs merge=lfs -text
555
+ release-notes/images/1_25/grid-dnd.gif filter=lfs diff=lfs merge=lfs -text
556
+ release-notes/images/1_25/grid-layout.gif filter=lfs diff=lfs merge=lfs -text
557
+ release-notes/images/1_25/lsp-inspector.gif filter=lfs diff=lfs merge=lfs -text
558
+ release-notes/images/1_25/multistepinput.gif filter=lfs diff=lfs merge=lfs -text
559
+ release-notes/images/1_25/settings-editor.png filter=lfs diff=lfs merge=lfs -text
560
+ release-notes/images/1_25/snippet_placeholder_transform.gif filter=lfs diff=lfs merge=lfs -text
561
+ release-notes/images/1_26/breadcrumbs_active.gif filter=lfs diff=lfs merge=lfs -text
562
+ release-notes/images/1_26/breadcrumbs_tabs_notabs.png filter=lfs diff=lfs merge=lfs -text
563
+ release-notes/images/1_26/extension-intellisense.gif filter=lfs diff=lfs merge=lfs -text
564
+ release-notes/images/1_26/grid-maximize.gif filter=lfs diff=lfs merge=lfs -text
565
+ release-notes/images/1_26/multistepinput.gif filter=lfs diff=lfs merge=lfs -text
566
+ release-notes/images/1_26/open-folder-uri.png filter=lfs diff=lfs merge=lfs -text
567
+ release-notes/images/1_26/quickfix-problems.gif filter=lfs diff=lfs merge=lfs -text
568
+ release-notes/images/1_26/rapid_render.gif filter=lfs diff=lfs merge=lfs -text
569
+ release-notes/images/1_26/settings-editor.png filter=lfs diff=lfs merge=lfs -text
570
+ release-notes/images/1_26/terminal-column-selection.png filter=lfs diff=lfs merge=lfs -text
571
+ release-notes/images/1_26/ts-convert-to-namespace-import.gif filter=lfs diff=lfs merge=lfs -text
572
+ release-notes/images/1_26/ts-import-all-quick-fix.gif filter=lfs diff=lfs merge=lfs -text
573
+ release-notes/images/1_26/ts-jsx-folding.gif filter=lfs diff=lfs merge=lfs -text
574
+ release-notes/images/1_26/ts-jsx-tag-complete.gif filter=lfs diff=lfs merge=lfs -text
575
+ release-notes/images/1_26/webview-icon.png filter=lfs diff=lfs merge=lfs -text
576
+ release-notes/images/1_27/css-definition.gif filter=lfs diff=lfs merge=lfs -text
577
+ release-notes/images/1_27/css-import.gif filter=lfs diff=lfs merge=lfs -text
578
+ release-notes/images/1_27/extension-settings.png filter=lfs diff=lfs merge=lfs -text
579
+ release-notes/images/1_27/github_pull_requests.gif filter=lfs diff=lfs merge=lfs -text
580
+ release-notes/images/1_27/log-streaming.gif filter=lfs diff=lfs merge=lfs -text
581
+ release-notes/images/1_27/picker-highlights.gif filter=lfs diff=lfs merge=lfs -text
582
+ release-notes/images/1_27/search-filter.gif filter=lfs diff=lfs merge=lfs -text
583
+ release-notes/images/1_28/comment_edit.gif filter=lfs diff=lfs merge=lfs -text
584
+ release-notes/images/1_28/deleted.gif filter=lfs diff=lfs merge=lfs -text
585
+ release-notes/images/1_28/markdown-folding.gif filter=lfs diff=lfs merge=lfs -text
586
+ release-notes/images/1_28/markdown-preview-link.gif filter=lfs diff=lfs merge=lfs -text
587
+ release-notes/images/1_28/record-keybindings.gif filter=lfs diff=lfs merge=lfs -text
588
+ release-notes/images/1_28/tabcompletion.gif filter=lfs diff=lfs merge=lfs -text
589
+ release-notes/images/1_28/ts-convert-to-async.gif filter=lfs diff=lfs merge=lfs -text
590
+ release-notes/images/1_28/ts-rename-import.gif filter=lfs diff=lfs merge=lfs -text
591
+ release-notes/images/1_29/file-icon-preview.gif filter=lfs diff=lfs merge=lfs -text
592
+ release-notes/images/1_29/highlight-modified-tabs.gif filter=lfs diff=lfs merge=lfs -text
593
+ release-notes/images/1_29/json-schema-loading.gif filter=lfs diff=lfs merge=lfs -text
594
+ release-notes/images/1_29/mojave-dark.png filter=lfs diff=lfs merge=lfs -text
595
+ release-notes/images/1_29/multiline.gif filter=lfs diff=lfs merge=lfs -text
596
+ release-notes/images/1_29/references-view.gif filter=lfs diff=lfs merge=lfs -text
597
+ release-notes/images/1_29/workbench-navigation.gif filter=lfs diff=lfs merge=lfs -text
598
+ release-notes/images/1_30/api-sighelp-context.gif filter=lfs diff=lfs merge=lfs -text
599
+ release-notes/images/1_30/custom-title-menu-linux.png filter=lfs diff=lfs merge=lfs -text
600
+ release-notes/images/1_30/debug-from-process-explorer.gif filter=lfs diff=lfs merge=lfs -text
601
+ release-notes/images/1_30/downgrade-Extension.gif filter=lfs diff=lfs merge=lfs -text
602
+ release-notes/images/1_30/exthost-slow-the-movie.gif filter=lfs diff=lfs merge=lfs -text
603
+ release-notes/images/1_30/go-to-declaration.png filter=lfs diff=lfs merge=lfs -text
604
+ release-notes/images/1_30/html-custom-tag-attribute.gif filter=lfs diff=lfs merge=lfs -text
605
+ release-notes/images/1_30/input-example.gif filter=lfs diff=lfs merge=lfs -text
606
+ release-notes/images/1_30/references-viewlet.png filter=lfs diff=lfs merge=lfs -text
607
+ release-notes/images/1_30/settings-actions.png filter=lfs diff=lfs merge=lfs -text
608
+ release-notes/images/1_30/ts-new-callback-nav.png filter=lfs diff=lfs merge=lfs -text
609
+ release-notes/images/1_30/ts-new-quickfix.gif filter=lfs diff=lfs merge=lfs -text
610
+ release-notes/images/1_30/ts-old-callback-nav.png filter=lfs diff=lfs merge=lfs -text
611
+ release-notes/images/1_30/ts-rename.gif filter=lfs diff=lfs merge=lfs -text
612
+ release-notes/images/1_31/api-toc.png filter=lfs diff=lfs merge=lfs -text
613
+ release-notes/images/1_31/customdata.gif filter=lfs diff=lfs merge=lfs -text
614
+ release-notes/images/1_31/html-css-json-selection.gif filter=lfs diff=lfs merge=lfs -text
615
+ release-notes/images/1_31/live-theme-editing.gif filter=lfs diff=lfs merge=lfs -text
616
+ release-notes/images/1_31/no-reload-language-extension.gif filter=lfs diff=lfs merge=lfs -text
617
+ release-notes/images/1_31/problems-multi-line.gif filter=lfs diff=lfs merge=lfs -text
618
+ release-notes/images/1_31/ref-history.png filter=lfs diff=lfs merge=lfs -text
619
+ release-notes/images/1_31/screencast.gif filter=lfs diff=lfs merge=lfs -text
620
+ release-notes/images/1_31/select-all.gif filter=lfs diff=lfs merge=lfs -text
621
+ release-notes/images/1_31/smart-select-demo.gif filter=lfs diff=lfs merge=lfs -text
622
+ release-notes/images/1_31/terminal-cwd-links.gif filter=lfs diff=lfs merge=lfs -text
623
+ release-notes/images/1_31/terminal-reflow.gif filter=lfs diff=lfs merge=lfs -text
624
+ release-notes/images/1_31/type-filter.gif filter=lfs diff=lfs merge=lfs -text
625
+ release-notes/images/1_32/column-selection-alt-key.gif filter=lfs diff=lfs merge=lfs -text
626
+ release-notes/images/1_32/debug-console-font.gif filter=lfs diff=lfs merge=lfs -text
627
+ release-notes/images/1_32/html-attribute-completion.gif filter=lfs diff=lfs merge=lfs -text
628
+ release-notes/images/1_32/keyboard-shortcuts-when.gif filter=lfs diff=lfs merge=lfs -text
629
+ release-notes/images/1_32/problem-hover.png filter=lfs diff=lfs merge=lfs -text
630
+ release-notes/images/1_32/server-ready.gif filter=lfs diff=lfs merge=lfs -text
631
+ release-notes/images/1_32/theme-install.gif filter=lfs diff=lfs merge=lfs -text
632
+ release-notes/images/1_32/vetur-intellisense-vue-template.gif filter=lfs diff=lfs merge=lfs -text
633
+ release-notes/images/1_7/hitCount.gif filter=lfs diff=lfs merge=lfs -text
634
+ release-notes/images/1_7/horizontal.png filter=lfs diff=lfs merge=lfs -text
635
+ release-notes/images/1_7/multiDebug.gif filter=lfs diff=lfs merge=lfs -text
636
+ release-notes/images/1_8/add-config.gif filter=lfs diff=lfs merge=lfs -text
637
+ release-notes/images/1_8/hide-activitybar.gif filter=lfs diff=lfs merge=lfs -text
638
+ release-notes/images/1_8/javascript-in-html.gif filter=lfs diff=lfs merge=lfs -text
639
+ release-notes/images/1_8/quick-edit-settings.gif filter=lfs diff=lfs merge=lfs -text
640
+ release-notes/images/1_8/search-settings.gif filter=lfs diff=lfs merge=lfs -text
641
+ release-notes/images/1_8/viewlet.gif filter=lfs diff=lfs merge=lfs -text
642
+ release-notes/images/1_9/configure-lang-mode.png filter=lfs diff=lfs merge=lfs -text
643
+ release-notes/images/1_9/inline_values.png filter=lfs diff=lfs merge=lfs -text
644
+ release-notes/images/1_9/log-objects.png filter=lfs diff=lfs merge=lfs -text
645
+ release-notes/images/1_9/markdown-double-click-preview-switch.gif filter=lfs diff=lfs merge=lfs -text
646
+ release-notes/images/1_9/markdown-preview-to-editor-scroll-sync.gif filter=lfs diff=lfs merge=lfs -text
647
+ release-notes/images/1_9/markdown-selection-preview-scroll-sync.gif filter=lfs diff=lfs merge=lfs -text
648
+ release-notes/images/1_9/no_folder_debug.gif filter=lfs diff=lfs merge=lfs -text
649
+ release-notes/images/1_9/search-result-nav.gif filter=lfs diff=lfs merge=lfs -text
650
+ release-notes/images/1_9/settings.png filter=lfs diff=lfs merge=lfs -text
651
+ release-notes/images/1_9/tasks.gif filter=lfs diff=lfs merge=lfs -text
652
+ release-notes/images/1_9/terminal-after.gif filter=lfs diff=lfs merge=lfs -text
653
+ release-notes/images/1_9/toggle-skip-file.png filter=lfs diff=lfs merge=lfs -text
654
+ release-notes/images/April/smartStepping.gif filter=lfs diff=lfs merge=lfs -text
655
+ release-notes/images/February/function-breakpoint.gif filter=lfs diff=lfs merge=lfs -text
656
+ release-notes/images/February/high-contrast.png filter=lfs diff=lfs merge=lfs -text
657
+ release-notes/images/January/api-virtual-documents.png filter=lfs diff=lfs merge=lfs -text
658
+ release-notes/images/July_2016/insertSnippet.gif filter=lfs diff=lfs merge=lfs -text
659
+ release-notes/images/July_2016/restartFrame.gif filter=lfs diff=lfs merge=lfs -text
660
+ release-notes/images/July_2016/tabCompletion.gif filter=lfs diff=lfs merge=lfs -text
661
+ release-notes/images/June_2016/dnd_editor.gif filter=lfs diff=lfs merge=lfs -text
662
+ release-notes/images/June_2016/editor-mouse-wheel-zoom.gif filter=lfs diff=lfs merge=lfs -text
663
+ release-notes/images/June_2016/extensions_viewlet.png filter=lfs diff=lfs merge=lfs -text
664
+ release-notes/images/June_2016/multiline-find.gif filter=lfs diff=lfs merge=lfs -text
665
+ release-notes/images/June_2016/searchAndReplace.png filter=lfs diff=lfs merge=lfs -text
666
+ release-notes/images/June_2016/social.jpg filter=lfs diff=lfs merge=lfs -text
667
+ release-notes/images/June_2016/stacks.png filter=lfs diff=lfs merge=lfs -text
668
+ release-notes/images/June_2016/tabs.png filter=lfs diff=lfs merge=lfs -text
669
+ release-notes/images/March/column-select-mouse.gif filter=lfs diff=lfs merge=lfs -text
670
+ release-notes/images/March/extension-widget.png filter=lfs diff=lfs merge=lfs -text
671
+ release-notes/images/May_2016/peek.gif filter=lfs diff=lfs merge=lfs -text
672
+ release-notes/images/May_2016/selectAllFindMatches.gif filter=lfs diff=lfs merge=lfs -text
673
+ release-notes/images/May_2016/tabsprogress.png filter=lfs diff=lfs merge=lfs -text
674
+ tutorials/images/docker-extension/create.gif filter=lfs diff=lfs merge=lfs -text
675
+ tutorials/images/functions-extension/function-debugging.png filter=lfs diff=lfs merge=lfs -text
676
+ tutorials/images/functions-extension/functions-vscode-intro.png filter=lfs diff=lfs merge=lfs -text
677
+ tutorials/images/nodejs-deployment/emptyazuresite.png filter=lfs diff=lfs merge=lfs -text
678
+ tutorials/images/nodejs-deployment/searchforextension.png filter=lfs diff=lfs merge=lfs -text
679
+ tutorials/images/nodejs-deployment/sqlextension.png filter=lfs diff=lfs merge=lfs -text
680
+ tutorials/images/static-website/azure-app.png filter=lfs diff=lfs merge=lfs -text
681
+ tutorials/images/static-website/updated-azure-app.png filter=lfs diff=lfs merge=lfs -text
.gitignore ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ _build
2
+ node_modules
3
+
4
+ .DS_Store
5
+ .vscode/spell.json
6
+
7
+ .idea
8
+
9
+ *.sublime-project
10
+ *.sublime-workspace
.vscode/settings.json ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ // Place your settings in this file to overwrite default and user settings.
2
+ {
3
+ "editor.wordWrap": "on",
4
+ "files.eol": "\n",
5
+ "files.trimTrailingWhitespace": true,
6
+ "files.associations": {
7
+ "**/toc.json": "jsonc"
8
+ }
9
+ }
CONTRIBUTING.md ADDED
@@ -0,0 +1,188 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Visual Studio Code Documentation
2
+
3
+ You've found the GitHub repository that houses the source for the VS Code docs at <https://code.visualstudio.com/docs>.
4
+
5
+ ## Contribute to VS Code documentation
6
+
7
+ Thank you for your interest in VS Code documentation!
8
+
9
+ * [Contributing](#contributing)
10
+ * [Documentation intent](#documentation-intent)
11
+ * [Repository organization](#repository-organization)
12
+ * [Branches](#branches)
13
+ * [Authoring Tools](#authoring-tools)
14
+ * [How to use Markdown to format your topic](#how-to-use-markdown-to-format-your-topic)
15
+ * [Topic Metadata](#topic-metadata)
16
+ * [Formatting](#formatting)
17
+
18
+ >**Note**: Before submitting a pull request, especially for rendering or link issues, please review the content on the official VS Code website, [code.visualstudio.com](https://code.visualstudio.com). The element in question may render correctly after processing by the website build.
19
+
20
+ ## Contributing
21
+
22
+ To contribute to [VS Code documentation](https://code.visualstudio.com/docs), you need to fork this repository and submit a pull request for the Markdown and/or image changes that you're proposing.
23
+
24
+ * [How to fork a repository](https://help.github.com/articles/fork-a-repo)
25
+ * [How to make a pull request](https://help.github.com/articles/creating-a-pull-request/)
26
+ * [Changing a commit message](https://help.github.com/articles/changing-a-commit-message/)
27
+ * [How to squash commits](https://help.github.com/articles/about-pull-request-merges/)
28
+
29
+ ## Documentation intent
30
+
31
+ The goal of the VS Code documentation is to educate users on VS Code features and how VS Code can be used to enhance their development experience with different programming languages and runtimes.
32
+
33
+ The documentation is not intended to provide:
34
+
35
+ * An introduction to coding or software development
36
+ * Tutorials on technologies independent from VS Code
37
+ * Promotion of third-party tools, plug-ins or services
38
+ * Excessive detail or advanced walkthroughs
39
+
40
+ The documentation should target developers learning to use VS Code or searching for quick answers to commonly asked questions. Other forums such as blog posts can provide more detailed content elaborating on specific scenarios.
41
+
42
+ ## Repository organization
43
+
44
+ The content in this repository follows the organization of documentation at <https://code.visualstudio.com/docs>.
45
+
46
+ This repository contains the following folders:
47
+
48
+ * \setup
49
+ * \introvideos
50
+ * \getstarted
51
+ * \editor
52
+ * \languages
53
+ * \extensions
54
+ * \extensionAPI
55
+ * \other
56
+ * \supporting
57
+
58
+ Within these folders you'll find the Markdown files used for the content. Each of these folders also contains an \images folder that references the images (such as screenshots) used in the topics.
59
+
60
+ ### Branches
61
+
62
+ We recommend that you create local working branches that target a specific scope of change (and then submit a pull request when your changes are ready). Each branch should be limited to a single concept/topic, both to streamline work flow, and to reduce the possibility of merge conflicts. The following efforts are of the appropriate scope for a new branch:
63
+
64
+ * A new topic (and associated images).
65
+ * Spelling and grammar edits on a topic.
66
+ * Applying a single formatting change across a large set of topics.
67
+
68
+ ## Authoring tools
69
+
70
+ [Visual Studio Code](https://code.visualstudio.com) is a great editor for Markdown!
71
+
72
+ In fact, VS Code and its core documentation are written using VS Code.
73
+
74
+ ## How to use Markdown to format your topic
75
+
76
+ The topics in this repository use Markdown. Here is a good overview of [Markdown basics](https://help.github.com/articles/markdown-basics/).
77
+
78
+ ## Topic Metadata
79
+
80
+ Topic metadata enables certain functionalities for the topics such as table of contents order, topic descriptions, and online search optimization as well as aiding Microsoft in evaluating the effectiveness of the content.
81
+
82
+ * **Order** - This is the order that is used in the left rail TOC, the page is left out of the TOC if this is blank
83
+ * **Area** - General area within VS Code
84
+ * **TOCTitle** - The title used in the left rail Table of Contents for this page
85
+ * **PageTitle** - The title used in the HTML title for the page and in search results
86
+ * **ContentId** - A GUID which uniquely identifies the topic to DevDiv doc reporting.
87
+ * **DateApproved** - This is set when the page is actually published on the VS Code portal. You can ignore it.
88
+ * **MetaDescription** - The meta description for this page which helps for search. Use sentence structure limited to 300 characters.
89
+ * **MetaSocialImage** - Optional. Used for og:image in page header for sharing on social media. Should be 1024 x 512 .png.
90
+ * **MetaTags** - Optional. Further tags for this page again for search.
91
+
92
+ ## Product name
93
+
94
+ Use the full product name "Visual Studio Code" in the topic MetaDescription and the first use in a topic. You can use the shortened "VS Code" after that throughout the rest of the content. Do not use "VSCode" (no space) or "Code".
95
+
96
+ ### Metadata for /api docs
97
+
98
+ **For Writer**:
99
+
100
+ * **MetaDescription** - The meta description for this page which helps for search
101
+
102
+ **For Doc Maintainer**:
103
+
104
+ * **DateApproved** - This is set when the page is actually published on the VS Code portal.
105
+
106
+ ## Formatting
107
+
108
+ ### Headings & Right Nav
109
+
110
+ H2 subheadings `##` end up in the right hand jump list for the document (this happens in our compile script). It's a good idea to include h2 subheadings to help users get an overview of the doc and quickly navigate to the major topics.
111
+
112
+ ### Text formatting
113
+
114
+ Use bold for VS Code commands and UI elements.
115
+
116
+ **Extensions: Install Extension**
117
+ **Debug Console**
118
+
119
+ Limit the use of bold for emphasis unless it is crucial to get the user's attention. Avoid the use of italics for emphasis since italics doesn't render well on the code.visualstudio.com site.
120
+
121
+ Use inline code formatting (backticks) for settings, filename and JSON attributes.
122
+
123
+ `files.exclude`
124
+ `tasks.json`
125
+ `preLaunchTask`
126
+
127
+ Use '>' to show menu sequence.
128
+
129
+ **File** > **Preferences** > **Settings**
130
+ **View** > **Command Palette**
131
+
132
+ ### Links
133
+
134
+ For links within our own documentation, use a site relative link like `/docs/editor/codebasics.md`.
135
+
136
+ >For example: `[Why VS Code](/docs/editor/whyvscode.md)` - links to the **Why Visual Studio Code** page
137
+
138
+ >**Correction:** For this repo to ease content development you should add the .md suffix. We will parse these out for the website deployment.
139
+
140
+ ### Bookmarks
141
+
142
+ To provide links to h2 subheadings (Markdown ##), the format is `[Link Text](page.md#subheading-title)`.
143
+
144
+ Note the subheading title is lowercase and subheading title words are separated by '-' hyphens.
145
+
146
+ >For example: `[Keyboard Shortcuts](/docs/editor/codebasics.md#keyboard-shortcuts)` - links to https://code.visualstudio.com/docs/editor/codebasics#_keyboard-shortcuts.
147
+
148
+ ### Images
149
+
150
+ Images are important to bring the product to life - even if people can't try the product, these really help them to see what they are missing.
151
+
152
+ For images you're adding to the repo, store them in the `images` subfolder of the TOC section, for example: `editor\images\debugging`.
153
+
154
+ When you link to an image, the path and filename are case-sensitive. The convention is for image filenames to be all lowercase.
155
+
156
+ >For example: `![Debug Breakpoints](images/debugging/breakpoints.png)`
157
+
158
+ ### Key bindings
159
+
160
+ The VS Code portal is able to show the correct key bindings depending on the reader's operating system (macOS, Windows or Linux).
161
+
162
+ To enable this for keyboard shortcuts, use the format `kb(workbench.action.files.openFile)` where the command name is included in parentheses.
163
+
164
+ >For a list of key bindings and the relevant `Command Ids` review the [key bindings document](https://code.visualstudio.com/docs/getstarted/keybindings).
165
+
166
+ If you are listing out multiple key bindings, you can use a table.
167
+
168
+ >Shortcut|Key Strokes
169
+ >--------|-----------
170
+ >Cut|`kb(editor.action.clipboardCutAction)`
171
+ >Copy|`kb(editor.action.clipboardCopyAction)`
172
+ >Paste|`kb(editor.action.clipboardPasteAction)`
173
+
174
+ ### Source Code
175
+
176
+ For source code we use the fenced code block notation ```` ``` ````.
177
+
178
+ >**Note:** You can add an optional language identifier to enable syntax highlighting in your fenced code block. E.g. ```` ```json ```` or ```` ```javascript ````. [Read more →](https://help.github.com/articles/creating-and-highlighting-code-blocks/#syntax-highlighting)
179
+
180
+ Some JavaScript code...
181
+
182
+ ```javascript
183
+ function fancyAlert(arg) {
184
+ if (arg) {
185
+ $.facebox({ div: foo });
186
+ }
187
+ }
188
+ ```
LICENSE.md ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Copyright (c) Microsoft Corporation. All rights reserved. Distributed under the following terms:
2
+
3
+ 1. Documentation is licensed under the [Creative Commons Attribution 3.0 United States License](https://creativecommons.org/licenses/by/3.0/us/legalcode). Code is licensed under the [MIT License](https://opensource.org/licenses/MIT).
4
+
5
+ 2. This license does not grant you rights to use any trademarks or logos of Microsoft. For Microsoft’s general trademark guidelines, go to https://go.microsoft.com/fwlink/?LinkID=254653.
6
+
README.md ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <center>
2
+ <img alt="vscode logo" src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/2d/Visual_Studio_Code_1.18_icon.svg/1200px-Visual_Studio_Code_1.18_icon.svg.png" width="100px">
3
+ </center>
4
+
5
+ # Visual Studio Code Documentation
6
+
7
+ You've found the Visual Studio Code documentation GitHub repository, which contains the content for the [Visual Studio Code documentation](https://code.visualstudio.com/docs).
8
+
9
+ Topics submitted here will be published to the [Visual Studio Code](https://code.visualstudio.com) portal.
10
+
11
+ If you are looking for the VS Code product GitHub repository, you can find it [here](https://github.com/Microsoft/vscode).
12
+
13
+ ## Index
14
+ 1. [About Visual Studio Code](#visual-studio-code)
15
+ 2. [Contributing to the documentation](#contributing-to-the-documentation)
16
+ 3. [Feedback](#feedback)
17
+ 4. [Documentation Issues](#documentation-issues)
18
+ 5. [Editing](#editing)
19
+ 6. [Publishing](#publishing)
20
+
21
+ ## Visual Studio Code
22
+
23
+ [VS Code](https://code.visualstudio.com/) is a lightweight source code editor and powerful development environment for building and debugging modern web and cloud applications. It is free and available on your favorite platform - Linux, macOS, and Windows.
24
+
25
+ If you landed here looking for other information about VS Code, head over to [our website](https://code.visualstudio.com) for additional information.
26
+
27
+ ## Contributing to the documentation
28
+
29
+ To contribute with new topics/information or make changes to existing documentation, see [contributing](https://github.com/Microsoft/vscode-docs/blob/master/CONTRIBUTING.md#contributing) for instructions and guidelines.
30
+
31
+ ## Feedback
32
+
33
+ If you want to give documentation feedback, please use the feedback control located at the bottom of each documentation page.
34
+
35
+ ## Documentation Issues
36
+
37
+ To enter documentation bugs, please create a [new GitHub issue](https://github.com/Microsoft/vscode-docs/issues) (try to check if there isn't a topic about your issue already).
38
+
39
+ If you think the issue is with the VS Code product itself, please enter issues [here](https://github.com/Microsoft/vscode/issues).
40
+
41
+ ## Editing
42
+
43
+ In order to edit the VS Code documentation, ensure that you have [Git](https://git-scm.com/downloads) installed.
44
+
45
+ Clone a copy of the repo:
46
+
47
+ ```
48
+ git clone https://github.com/Microsoft/vscode-docs.git
49
+ ```
50
+
51
+ VS Code itself is great for reviewing and editing [Markdown](https://code.visualstudio.com/docs/languages/markdown) with nice preview support.
52
+
53
+ If you want to use VS Code, simply navigate to the `vscode-docs` directory and launch VS Code from there:
54
+
55
+ ```
56
+ cd vscode-docs
57
+ code .
58
+ ```
59
+
60
+ You can open any of the Markdown files and see a preview with the **Open Preview to the Side** button in the upper right of the editor.
61
+
62
+ ![Markdown Preview Button](images/MDPreviewButton.png)
63
+
64
+ ## Publishing
65
+
66
+ Steps for how to publish documentation changes can be found [here](https://github.com/Microsoft/vscode-website#publishing-a-documentation-change) in the (private) repository of the VS Code website.
api/.prettierrc.json ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ {
2
+ "printWidth": 92,
3
+ "tabWidth": 2,
4
+ "singleQuote": true
5
+ }
api/advanced-topics/extension-host.md ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ # DO NOT TOUCH — Managed by doc writer
3
+ ContentId: 106AA11C-DB26-493A-9E3C-16F513B2AEC8
4
+ DateApproved: 3/7/2019
5
+
6
+ # Summarize the whole topic in less than 300 characters for SEO purpose
7
+ MetaDescription: The Visual Studio Code Extension Host is responsible for managing extensions and ensuring the stability and performance of Visual Studio Code.
8
+ ---
9
+
10
+ # Extension Host
11
+
12
+ As you learned in the [Extension Anatomy](/api/get-started/extension-anatomy) topic, an extension exposes the `activate` and `deactivate` methods and VS Code will manage its lifecycle. This topic provides more details on the **Extension Host** that manages all running extensions.
13
+
14
+ **Extension host** is a Node.js process in VS Code responsible for loading and running extensions. Although you don't need to worry about the Extension Host when you are writing extensions, it is still useful to know what the Extension Host does to your extension.
15
+
16
+ ## Stability and Performance
17
+
18
+ VS Code aims to deliver a stable and performant editor to end users, and misbehaving extensions should not impact the user experience. The Extension Host in VS Code prevents extensions from:
19
+
20
+ - Impacting startup performance
21
+ - Slowing down UI operations
22
+ - Modifying the UI
23
+
24
+ Additionally, VS Code lets extensions declare its [Activation Events](/api/references/activation-events) and loads them lazily. For example, the Markdown extension should only be loaded when a user opens a Markdown file. This makes sure that extensions do not consume unnecessary CPU and memory.
api/advanced-topics/using-proposed-api.md ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ # DO NOT TOUCH — Managed by doc writer
3
+ ContentId: f4d4e9e0-8901-405c-aaf5-faa16c32588b
4
+ DateApproved: 3/7/2019
5
+
6
+ # Summarize the whole topic in less than 300 characters for SEO purpose
7
+ MetaDescription: Use Visual Studio Code's Proposed API
8
+ ---
9
+
10
+ # Using Proposed API
11
+
12
+ At Visual Studio Code, we take Extension API compatibility seriously. We give our best effort to avoid breaking API changes, and extension authors could expect published extensions to continue to work. However, this puts great limitation on us: once we introduce an API, we cannot easily change it any more.
13
+
14
+ Proposed API solves the problem for us. Proposed API is a set of unstable API that are implemented in VS Code but not exposed to the public as stable API does. They are **subject to change**, **only available in Insider distribution** and **cannot be used in published extensions**. Nevertheless, extension authors could test these new API in local development and provide feedback for VS Code team to iterate on the API. Eventually, Proposed API finds their way into the stable API and becomes available for general use.
15
+
16
+ ## Using Proposed API
17
+
18
+ These are the steps for testing Proposed API in local extension development:
19
+
20
+ - Use [Insiders](/insiders) release of VS Code.
21
+ - Add `"enableProposedApi": true` to your `package.json`.
22
+ - Copy the latest version of the [`vscode.proposed.d.ts`](https://github.com/Microsoft/vscode/blob/master/src/vs/vscode.proposed.d.ts) into your project.
api/extension-capabilities/common-capabilities.md ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ # DO NOT TOUCH — Managed by doc writer
3
+ ContentId: 9c48dfbf-e49d-4f33-aadc-5ebf06d5dde0
4
+ DateApproved: 3/7/2019
5
+
6
+ # Summarize the whole topic in less than 300 characters for SEO purpose
7
+ MetaDescription: Common capabilities that Visual Studio Code extensions (plug-ins) can take advantage of
8
+ ---
9
+
10
+ # Common Capabilities
11
+
12
+ Common Capabilities are important building blocks for your extensions. Almost all extensions use some of these functionalities. Here is how you can take advantage of them.
13
+
14
+ ## Command
15
+
16
+ Command is central to how VS Code works. You open the Command Palette to execute commands, bind custom keybindings to commands, and right-click to invoke commands in Context Menus.
17
+
18
+ An extension could:
19
+
20
+ - Register and execute commands with the [`vscode.commands`](/api/references/vscode-api#commands) API.
21
+ - Make commands available in the Command Palette with the [`contributes.commands`](/api/references/contribution-points#contributes.commands) Contribution Point.
22
+
23
+ Learn more about commands at the [Extension Guides / Command](/api/extension-guides/command) topic.
24
+
25
+ ## Configuration
26
+
27
+ An extension can contribute extension-specific settings with the [`contributes.configuration`](/api/references/contribution-points#contributes.configuration) Contribution Point and read them using the [`workspace.getConfiguration`](/api/references/vscode-api#workspace.getConfiguration) API.
28
+
29
+ ## Keybinding
30
+
31
+ An extension can add custom keybindings. Read more in the [`contributes.keybindings`](/api/references/contribution-points#contributes.keybindings) and [Key Bindings](/docs/getstarted/keybindings) topics.
32
+
33
+ ## Context Menu
34
+
35
+ An extension can register custom Context Menu items that will be displayed in different parts of the VS Code UI on right-click. Read more at the [`contributes.menus`](/api/references/contribution-points#contributes.menus) Contribution Point.
36
+
37
+ ## Data Storage
38
+
39
+ There are three options for storing data:
40
+
41
+ - [`ExtensionContext.workspaceState`](/api/references/vscode-api#ExtensionContext.workspaceState): A workspace storage where you can write key/value pairs. VS Code manages the storage and will restore it when the same workspace is opened again.
42
+ - [`ExtensionContext.globalState`](/api/references/vscode-api#ExtensionContext.globalState): A global storage where you can write key/value pairs. VS Code manages the storage and will restore it for each extension activation.
43
+ - [`ExtensionContext.storagePath`](/api/references/vscode-api#ExtensionContext.storagePath): A workspace specific storage path pointing to a local directory where your extension has write/read access. This is a good option if you need to store large files that is accessible only from current workspace.
44
+ - [`ExtensionContext.globalStoragePath`](/api/references/vscode-api#ExtensionContext.globalStoragePath): A global storage path pointing to a local directory where your extension has write/read access. This is a good option if you need to store large files that is accessible from all workspaces.
45
+
46
+ The extension context is available to the `activate` function in the [Extension Entry File](/api/get-started/extension-anatomy#extension-entry-file).
47
+
48
+ ## Display Notifications
49
+
50
+ Almost all extensions need to present information to the user at some point. VS Code offers three APIs for displaying notification messages of different severity:
51
+
52
+ - [`window.showInformationMessage`](/api/references/vscode-api#window.showInformationMessage)
53
+ - [`window.showWarningMessage`](/api/references/vscode-api#window.showWarningMessage)
54
+ - [`window.showErrorMessage`](/api/references/vscode-api#window.showErrorMessage)
55
+
56
+ ## Quick Pick
57
+
58
+ With the [`vscode.QuickPick`](/api/references/vscode-api#QuickPick) API, you can easily collect user input or let the user make a selection from multiple options. The [QuickInput Sample](https://github.com/Microsoft/vscode-extension-samples/tree/master/quickinput-sample) illustrates the API.
59
+
60
+ ## File Picker
61
+
62
+ Extensions can use the [`vscode.window.showOpenDialog`](/api/references/vscode-api#vscode.window.showOpenDialog) API to open the system file picker and select files or folders.
63
+
64
+ ## Output Channel
65
+
66
+ The Output Panel displays a collection of [`OutputChannel`](/api/references/vscode-api#OutputChannel), which are great for logging purpose. You can easily take advantage of it with the [`window.createOutputChannel`](/api/references/vscode-api#window.createOutputChannel) API.
67
+
68
+ ## Progress API
69
+
70
+ You can use the [`vscode.Progress`](/api/references/vscode-api#Progress) API for reporting progress updates to the user.
71
+
72
+ Progress can be shown in different locations using the [`ProgressLocation`](/api/references/vscode-api#ProgressLocation) option:
73
+
74
+ - In the Notifications area
75
+ - In the Source Control view
76
+ - General progress in the VS Code window
77
+
78
+ The [Progress Sample](https://github.com/Microsoft/vscode-extension-samples/tree/master/progress-sample) illustrates this API.
api/extension-capabilities/extending-core-functionalities.md ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ DateApproved:
3
+ MetaDescription:
4
+ ---
5
+
6
+ # Extending Core Functionalities
7
+
8
+ Talk about the core functionalities that extension could plug-in their providers for:
9
+
10
+ - File System Provider
11
+ - Search Provider
12
+ - SCM Provider
api/extension-capabilities/extending-workbench.md ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ # DO NOT TOUCH — Managed by doc writer
3
+ ContentId: e0d5bd37-f020-4235-ad81-c977baaeb24f
4
+ DateApproved: 3/7/2019
5
+
6
+ # Summarize the whole topic in less than 300 characters for SEO purpose
7
+ MetaDescription: Explain how to extend Visual Studio Code's workbench area with custom UI components
8
+ ---
9
+
10
+ # Extending Workbench
11
+
12
+ "Workbench" refers to the overall Visual Studio Code UI that encompasses the following UI components:
13
+
14
+ - Title Bar
15
+ - Activity Bar
16
+ - Side Bar
17
+ - Panel
18
+ - Editor Group
19
+ - Status Bar
20
+
21
+ VS Code provides various APIs that allow you to add your own components to the Workbench. For example, in the image below:
22
+
23
+ ![workbench-contribution](images/extending-workbench/workbench-contribution.png)
24
+
25
+ - Activity Bar: The [Azure App Service extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azureappservice) adds a [View Container](#view-container)
26
+ - Side Bar: The built-in [NPM extension](https://github.com/Microsoft/vscode/tree/master/extensions/npm) adds a [Tree View](#tree-view) to the Explorer View
27
+ - Editor Group: The built-in [Markdown extension](https://github.com/Microsoft/vscode/tree/master/extensions/markdown-language-features) adds a [Webview](#webview) next to other editors in the Editor Group
28
+ - Status Bar: The [VSCodeVim extension](https://marketplace.visualstudio.com/items?itemName=vscodevim.vim) adds a [Status Bar Item](#status-bar-item) in the Status Bar
29
+
30
+ ## Views Container
31
+
32
+ With the [`contributes.viewsContainers`](/api/references/contribution-points#contributes.viewsContainers) Contribution Point, you can add new Views Containers that display next to the five built-in Views Containers. Learn more at the [Tree View](/api/extension-guides/tree-view) topic.
33
+
34
+ ## Tree View
35
+
36
+ With the [`contributes.views`](/api/references/contribution-points#contributes.views) Contribution Point, you can add new Views that display in any of the View Containers. Learn more at the [Tree View](/api/extension-guides/tree-view) topic.
37
+
38
+ ## Webview
39
+
40
+ Webviews are highly customizable views built with HTML/CSS/JavaScript. They display next to text editors in the Editor Group areas. Read more about Webview in the [Webview Guide](/api/extension-guides/webview).
41
+
42
+ ## Status Bar Item
43
+
44
+ Extensions can create custom [`StatusBarItem`](/api/references/vscode-api#StatusBarItem) that display in the Status Bar. Status Bar Items can show text and icons and run commands on click events.
45
+
46
+ - Show text and icons
47
+ - Run a command on click
48
+
49
+ A Status Bar extension sample can be found [here](https://github.com/Microsoft/vscode-extension-samples/tree/master/statusbar-sample).
api/extension-capabilities/images/extending-workbench/workbench-contribution.png ADDED

Git LFS Details

  • SHA256: 5776da85f8813b18ade37dc4ceece172001ee5a5308d20caa05b437450ccb787
  • Pointer size: 131 Bytes
  • Size of remote file: 418 kB
api/extension-capabilities/images/theming/color-theme.png ADDED

Git LFS Details

  • SHA256: 150f31aeda53cfe4eb832a69457f3258fdd5f262d286db5b5acaeb1610a356f6
  • Pointer size: 131 Bytes
  • Size of remote file: 276 kB
api/extension-capabilities/images/theming/icon-theme.png ADDED

Git LFS Details

  • SHA256: f791379a21d1276af0571483da9235ec0fd79aa33b8eef5d75b69bc3000bb8ed
  • Pointer size: 131 Bytes
  • Size of remote file: 664 kB
api/extension-capabilities/overview.md ADDED
@@ -0,0 +1,121 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ # DO NOT TOUCH — Managed by doc writer
3
+ ContentId: d22675fc-6609-43f2-a66b-8f2a52597195
4
+ DateApproved: 3/7/2019
5
+
6
+ # Summarize the whole topic in less than 300 characters for SEO purpose
7
+ MetaDescription: Learn the details of what's possible with Visual Studio Code's rich extension (plug-in) API.
8
+ ---
9
+
10
+ # Extensions Capabilities Overview
11
+
12
+ Visual Studio Code offers many ways for extensions to extend its capabilities. It can sometimes be hard to find the right [Contribution Points](/api/references/contribution-points) and [VS Code API](/api/references/vscode-api) to use. This topic splits extension capabilities into a few categories. Each category describes:
13
+
14
+ - Some functionalities your extension could use
15
+ - Links to more detailed topics for using these functionalities
16
+ - A few extension ideas
17
+
18
+ However, we also impose [restrictions](#restrictions) upon extensions to ensure the stability and performance of VS Code. For example, extensions cannot access the DOM of VS Code UI.
19
+
20
+ ## Common Capabilities
21
+
22
+ [Common Capabilities](./common-capabilities) are core pieces of functionality that you can use in any extension.
23
+
24
+ Some of these capabilities include:
25
+
26
+ - Registering commands, configurations, keybindings, or context menu items.
27
+ - Storing workspace or global data.
28
+ - Displaying notification messages.
29
+ - Using Quick Pick to collect user input.
30
+ - Open the system file picker to let users select files or folders.
31
+ - Use the Progress API to indicate long-running operations.
32
+
33
+ ## Theming
34
+
35
+ [Theming](./theming) controls the look of VS Code, both the colors of source code in the editor and the colors of the VS Code UI. If you've ever wanted to make it look like you're coding the Matrix by making VS Code different shades of green, or just wanted to create the ultimate, minimalist grayscale workspace, then themes are for you.
36
+
37
+ **Extension Ideas**
38
+
39
+ - Change colors of your source code.
40
+ - Change colors of the VS Code UI.
41
+ - Port an existing TextMate theme to VS Code.
42
+ - Add custom file icons.
43
+
44
+ ## Declarative Language Features
45
+
46
+ [Declarative Language Features](/api/language-extensions/overview#declarative-language-features) adds basic text editing support for a programming language such as bracket matching, auto-indentation and syntax highlighting. This is done declaratively, without writing any code. For more advanced language features, like IntelliSense or debugging, see [Programmatic Language Features](#programmatic-language-features).
47
+
48
+ **Extension Ideas**
49
+
50
+ - Bundle common JavaScript snippets into an extension.
51
+ - Tell VS Code about a new programming language.
52
+ - Add or replace the grammar for a programming language.
53
+ - Extend an existing grammar with grammar injections.
54
+ - Port an existing TextMate grammar to VS Code.
55
+
56
+ ## Programmatic Language Features
57
+
58
+ [Programmatic Language Features](/api/language-extensions/overview#programmatic-language-features) add rich programming language support such as Hovers, Go to Definition, diagnostic errors, IntelliSense and CodeLens. These language features are exposed through the [`vscode.languages.*`](/api/references/vscode-api#languages) API. An extension can either use these API directly, or write a Language Server and adapt it to VS Code using the VS Code [Language Server library](https://github.com/Microsoft/vscode-languageserver-node).
59
+
60
+ Although we provide a listing of [language features](/api/language-extensions/programmatic-language-features) and their intended usage, nothing prevents you from using these API creatively. For example, CodeLens and Hovers are a great way to present additional information inline, while diagnostic errors can be used to highlight spelling or code style errors.
61
+
62
+ **Extension Ideas**
63
+
64
+ - Add hovers that show sample usage of an API.
65
+ - Report spelling or linter errors in source code using diagnostics.
66
+ - Register a new code formatter for HTML.
67
+ - Provide rich, context-aware IntelliSense.
68
+ - Add folding, breadcrumbs and outline support for a language.
69
+
70
+ ## Workbench Extensions
71
+
72
+ [Workbench Extensions](./extending-workbench) extend the VS Code Workbench UI. Add new right-click actions to the File Explorer, or even build a custom explorer using VS Code's [TreeView](/api/extension-guides/tree-view) API. And if your extension needs a fully customized user interface, use the [Webview API](/api/extension-guides/webview) to build your own document preview or UI using standard HTML, CSS, and JavaScript.
73
+
74
+ **Extension Ideas**
75
+
76
+ - Add custom context menu actions to the File Explorer.
77
+ - Create a new, interactive TreeView in the Side Bar.
78
+ - Define a new Activity Bar view.
79
+ - Show new information in the Status Bar.
80
+ - Render custom content using the `WebView` API.
81
+ - Contribute Source Control providers.
82
+
83
+ ## Debugging
84
+
85
+ You can take advantage of VS Code's [Debugging](/docs/editor/debugging) functionality by writing [Debugger Extensions](/api/extension-guides/debugger-extension) that connect VS Code's debugging UI to a specific debugger or runtime.
86
+
87
+ **Extension Ideas**
88
+
89
+ - Connect VS Code's debugging UI to a debugger or runtime by contributing a [Debug Adapter implementation](https://microsoft.github.io/debug-adapter-protocol/implementors/adapters/).
90
+ - Specify the languages supported by a debugger extension.
91
+ - Provide rich IntelliSense and hover information for the debug configuration attributes used by the debugger.
92
+ - Provide debug configuration snippets.
93
+
94
+ On the other hand, VS Code also offers a set of [Debug Extension API](/api/references/vscode-api#debug), with which you can implement debug-related functionality on top of any VS Code debugger, in order to automate users' debugging experience.
95
+
96
+ **Extension Ideas**
97
+
98
+ - Start debug sessions based on dynamically created debug configurations.
99
+ - Track the lifecycle of debug sessions.
100
+ - Create and manage breakpoints programmatically.
101
+
102
+ <!-- Add below content back after writing ./extending-core-functionalities.md -->
103
+ <!-- ## Core Extensions
104
+
105
+ [Core Extensions](extending-core-functionalities) are for very advanced users. These let you build a custom back end for many of VS Code's low-level functionality. For example, the `FileSystem` API can be used to support working with files over FTP or other protocols. Core extensions typically work transparently from a user's point of view.
106
+
107
+ **Extension Ideas**
108
+
109
+ - Add support for working with remote files over FTP or SFTP.
110
+ - Register new source control provider, such as Mercurial.
111
+ - Implement a custom file search provider. -->
112
+
113
+ ## Restrictions
114
+
115
+ There are certain restrictions we impose upon extensions. Here are the restrictions and their purposes.
116
+
117
+ ### No DOM Access
118
+
119
+ Extensions have no access to the DOM of VS Code UI. You **cannot** write an extension that applies custom CSS to VS Code or adds a HTML element to VS Code UI.
120
+
121
+ At VS Code, we're continually trying to optimize use of the underlying web technologies to deliver an always available, highly responsive editor and we will continue to tune our use of the DOM as these technologies and our product evolve. To ensure that extensions cannot interfere with the stability and performance of VS Code, and that we can continue to improve the DOM of VS Code without breaking existing extensions, we run extensions in an [Extension Host](/api/advanced-topics/extension-host) process and prevent direct access to the DOM.
api/extension-capabilities/theming.md ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ # DO NOT TOUCH — Managed by doc writer
3
+ ContentId: 37b6ae0a-d1b5-48b6-9bd4-9b50ef11d573
4
+ DateApproved: 3/7/2019
5
+
6
+ # Summarize the whole topic in less than 300 characters for SEO purpose
7
+ MetaDescription: Learn how to add custom themes for colors and icons in Visual Studio Code.
8
+ ---
9
+
10
+ # Theming
11
+
12
+ In Visual Studio Code, there are two types of themes:
13
+
14
+ - **Color Theme**: A mapping from both UI Component Identifier and Text Token Identifier to colors. Color theme allows you to apply your favorite colors to both VS Code UI Components and the text in the editor.
15
+ - **Icon Theme**: A mapping from file type / file name to images. The file icon is displayed across the VS Code UI in places such as File Explorer, Quick Open List, and Editor Tab.
16
+
17
+ ## Color Theme
18
+
19
+ ![color-theme](images/theming/color-theme.png)
20
+
21
+ As you can see in the illustration, Color Theme defines two mappings:
22
+
23
+ - The `colors` mapping that controls colors for UI Components.
24
+ - The `tokenColors` mapping that controls colors for each source code token (your source code is broken into tokens by a [grammar](/api/language-extensions/syntax-highlight-guide)).
25
+
26
+ We have a [Color Theme Guide](/api/extension-guides/color-theme) and a [Color Theme Sample](https://github.com/Microsoft/vscode-extension-samples/tree/master/theme-sample) that illustrates how to create a theme.
27
+
28
+ ## Icon Theme
29
+
30
+ Icon themes allow you to:
31
+
32
+ - Create a mapping from unique icon identifiers to images or font icons.
33
+ - Associate files to these unique icon identifiers by filenames or file language types.
34
+
35
+ The [Icon Theme Guide](/api/extension-guides/icon-theme) discusses how to create an Icon Theme.
36
+
37
+ ![icon-theme](images/theming/icon-theme.png)
api/extension-guides/color-theme.md ADDED
@@ -0,0 +1,116 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ # DO NOT TOUCH — Managed by doc writer
3
+ ContentId: 113b458a-3692-4ccf-a181-048bd572a120
4
+ DateApproved: 3/7/2019
5
+
6
+ # Summarize the whole topic in less than 300 characters for SEO purpose
7
+ MetaDescription: A guide to creating Color Theme in Visual Studio Code
8
+ ---
9
+
10
+ # Color Theme
11
+
12
+ Colors visible in the Visual Studio Code user interface fall in two categories:
13
+
14
+ - Workbench colors used in views and editors, from the Activity Bar to the Status Bar. A complete list of all these colors can be found in the [theme color reference](/api/references/theme-color).
15
+ - Syntax colors used for source code in the editor. The theming of these colors is different as syntax colorization is based on TextMate grammars and TextMate themes.
16
+
17
+ This guide will cover the different ways in which you can create themes.
18
+
19
+ ## Workbench colors
20
+
21
+ The easiest way to create a new workbench color theme is to start with an existing color theme and customize it. First switch to the color theme that you want to modify, then open your [settings](/docs/getstarted/settings) and make changes to the `workbench.colorCustomizations` setting. Changes are applied live to your VS Code instance.
22
+
23
+ The following, for example, would change the color of the title bar:
24
+
25
+ ```json
26
+ {
27
+ "workbench.colorCustomizations": {
28
+ "titleBar.activeBackground": "#ff0000"
29
+ }
30
+ }
31
+ ```
32
+
33
+ A complete list of all themable colors can be found in the [color reference](/api/references/theme-color).
34
+
35
+ ## Syntax colors
36
+
37
+ For syntax highlighting colors, there are two approaches. You just simply reference an existing TextMate theme (`.tmTheme` file) from the community, or you can come up with your own theming rules. The easiest way is to start with an existing theme and customize it, much like in the workbench colors section above.
38
+
39
+ First switch to the color theme to customize and use the `editor.tokenColorCustomizations` [settings](/docs/getstarted/settings). Changes are applied live to your VS Code instance and no refreshing or reloading is necessary.
40
+
41
+ For example, the following would change the color of comments within the editor:
42
+
43
+ ```json
44
+ {
45
+ "editor.tokenColorCustomizations": {
46
+ "comments": "#FF0000"
47
+ }
48
+ }
49
+ ```
50
+
51
+ The setting supports a simple model with a set of common token types such as 'comments', 'strings' and 'numbers' available. If you want to color more than that, you need to use TextMate theme rules directly, which are explained in detail in the [Syntax Highlighting Guide](/api/language-extensions/syntax-highlight-guide).
52
+
53
+ ## Create a new Color Theme
54
+
55
+ Once you have tweaked your theme colors using `workbench.colorCustomizations` and `editor.tokenColorCustomizations`, it's time to create the actual theme.
56
+
57
+ 1. Generate a theme file using the **Developer: Generate Color Theme from Current Settings** command from the **Command Palette**
58
+ 2. Use VS Code's [Yeoman](http://yeoman.io) extension generator to generate a new theme extension:
59
+
60
+ ```bash
61
+ npm install -g yo generator-code
62
+ yo code
63
+ ```
64
+
65
+ 3. If you customized a theme as described above, select 'Start fresh'.
66
+
67
+ ![yo code theme](./images/color-theme/yocode-colortheme.png)
68
+
69
+ 4. Copy the theme file generated from your settings to the new extension.
70
+
71
+ You can also use an existing TextMate theme by telling the extension generator to import a TextMate theme file (.tmTheme) and package it for use in VS Code. Alternatively, if you have already downloaded the theme, replace the `tokenColors` section with a link to the `.tmTheme` file to use.
72
+
73
+ ```json
74
+ {
75
+ "type": "dark",
76
+ "colors": {
77
+ "editor.background": "#1e1e1e",
78
+ "editor.foreground": "#d4d4d4",
79
+ "editorIndentGuide.background": "#404040",
80
+ "editorRuler.foreground": "#333333",
81
+ "activityBarBadge.background": "#007acc",
82
+ "sideBarTitle.foreground": "#bbbbbb"
83
+ },
84
+ "tokenColors": "./Diner.tmTheme"
85
+ }
86
+ ```
87
+
88
+ > **Tip:** Give your color definition file the `.color-theme.json` suffix and you will get hovers, code completion, color decorators, and color pickers when editing.
89
+
90
+ > **Tip:** [ColorSublime](https://colorsublime.github.io) has hundreds of existing TextMate themes to choose from. Pick a theme you like and copy the Download link to use in the Yeoman generator or into your extension. It will be in a format like `"https://raw.githubusercontent.com/Colorsublime/Colorsublime-Themes/master/themes/(name).tmTheme"`
91
+
92
+ ## Test a new Color Theme
93
+
94
+ To try out the new theme, press F5 to launch an Extension Development Host window.
95
+
96
+ There, open the Color Theme picker with **File** > **Preferences** > **Color Theme** and you can see your theme in the drop-down list. Arrow up and down to see a live preview of your theme.
97
+
98
+ ![select my theme](images/color-theme/mytheme.png)
99
+
100
+ Changes to the theme file are applied live in the `Extension Development Host` window.
101
+
102
+ ## Publishing a Theme to the Extension Marketplace
103
+
104
+ If you'd like to share your new theme with the community, you can publish it to the [Extension Marketplace](/docs/editor/extension-gallery). Use the [vsce publishing tool](/api/working-with-extensions/publishing-extension) to package your theme and publish it to the VS Code Marketplace.
105
+
106
+ > **Tip:** To make it easy for users to find your theme, include the word "theme" in the extension description and set the `Category` to `Theme` in your `package.json`.
107
+
108
+ We also have recommendations on how to make your extension look great on the VS Code Marketplace, see [Marketplace Presentation Tips](/api/references/extension-manifest#marketplace-presentation-tips).
109
+
110
+ ## Adding a new Color Id
111
+
112
+ Color ids can also be contributed by extensions through the [color contribution point](/api/references/contribution-points#contributes.colors). These colors also appear when using code complete in the `workbench.colorCustomizations` settings and the color theme definition file. Users can see what colors an extension defines in the [extension contributions](/docs/editor/extension-gallery#_extension-details) tab.
113
+
114
+ ## Further reading
115
+
116
+ - [CSS Tricks - Creating a VS Code theme](https://css-tricks.com/creating-a-vs-code-theme/)
api/extension-guides/command.md ADDED
@@ -0,0 +1,201 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ # DO NOT TOUCH — Managed by doc writer
3
+ ContentId: 995c7085-5fc0-44e0-a171-30a759c0b7da
4
+ DateApproved: 3/7/2019
5
+
6
+ # Summarize the whole topic in less than 300 characters for SEO purpose
7
+ MetaDescription: A guide to using commands programmatically in Visual Studio Code extensions (plug-ins)
8
+ ---
9
+
10
+ # Commands
11
+
12
+ Commands trigger actions in Visual Studio Code. If you have ever [configured a keybinding](/docs/getstarted/keybindings), then you've worked with commands. Commands are also used by extensions to expose functionality to users, bind to actions in VS Code's UI, and implement internal logic.
13
+
14
+ ## Using Commands
15
+
16
+ VS Code includes a large set of [built-in commands](/api/references/commands) that you can use to interact with the editor, control the user interface, or perform background operations. Many extensions also expose their core functionality as commands that users and other extensions can leverage.
17
+
18
+ ### Programmatically executing a command
19
+
20
+ The [`vscode.commands.executeCommand`](/api/references/vscode-api#commands.executeCommand) API programmatically executes a command. This lets you leverage VS Code's built-in functionality, and build on extensions such as VS Code's built-in Git and Markdown extensions.
21
+
22
+ The `editor.action.addCommentLine` command, for example, comments the currently selected lines in the active text editor:
23
+
24
+ ```ts
25
+ import * as vscode from 'vscode';
26
+
27
+ function commentLine() {
28
+ vscode.commands.executeCommand('editor.action.addCommentLine');
29
+ }
30
+ ```
31
+
32
+ Some commands take arguments that control their behavior. Commands may also return a result. The API-like `vscode.executeDefinitionProvider` command, for example, queries a document for definitions at a given position. It takes a document URI and a position as arguments, and returns a promise with a list of definitions:
33
+
34
+ ```ts
35
+ import * as vscode from 'vscode';
36
+
37
+ async function printDefinitionsForActiveEditor() {
38
+ const activeEditor = vscode.window.activeTextEditor;
39
+ if (!activeEditor) {
40
+ return;
41
+ }
42
+
43
+ const definitions = await vscode.commands.executeCommand<vscode.Location[]>(
44
+ 'vscode.executeDefinitionProvider',
45
+ activeEditor.document.uri,
46
+ activeEditor.selection.active
47
+ );
48
+
49
+ for (const definition of definitions) {
50
+ console.log(definition);
51
+ }
52
+ }
53
+ ```
54
+
55
+ To find available commands:
56
+
57
+ - [Browse the keyboard shortcuts](/docs/getstarted/keybindings)
58
+ - [Look through VS Code's built-in advanced commands api](/api/references/commands)
59
+
60
+ ### Command URIs
61
+
62
+ Commands URIs are links that execute a given command. They can be used as clickable links in hover text, completion item details, or inside of webviews.
63
+
64
+ A command URI uses the `command` scheme followed by the command name. The command URI for the `editor.action.addCommentLine` command, for example, is `command:editor.action.addCommentLine`. Here's a hover provider that shows a link in the comments of the current line in the active text editor:
65
+
66
+ ```ts
67
+ import * as vscode from 'vscode';
68
+
69
+ export function activate(context: vscode.ExtensionContext) {
70
+ vscode.languages.registerHoverProvider(
71
+ 'javascript',
72
+ new class implements vscode.HoverProvider {
73
+ provideHover(
74
+ _document: vscode.TextDocument,
75
+ _position: vscode.Position,
76
+ _token: vscode.CancellationToken
77
+ ): vscode.ProviderResult<vscode.Hover> {
78
+ const commentCommandUri = vscode.Uri.parse(`command:editor.action.addCommentLine`);
79
+ const contents = new vscode.MarkdownString(`[Add comment](${commentCommandUri})`);
80
+
81
+ // To enable command URIs in Markdown content, you must set the `isTrusted` flag.
82
+ // When creating trusted Markdown string, make sure to properly sanitize all the
83
+ // input content so that only expected command URIs can be executed
84
+ contents.isTrusted = true;
85
+
86
+ return new vscode.Hover(contents);
87
+ }
88
+ }()
89
+ );
90
+ }
91
+ ```
92
+
93
+ The list of arguments to the command is passed as a JSON array that has been properly URI encoded: The example below uses the `git.stage` command to create a hover like that stages the current file:
94
+
95
+ ```ts
96
+ import * as vscode from 'vscode';
97
+
98
+ export function activate(context: vscode.ExtensionContext) {
99
+ vscode.languages.registerHoverProvider(
100
+ 'javascript',
101
+ new class implements vscode.HoverProvider {
102
+ provideHover(
103
+ document: vscode.TextDocument,
104
+ _position: vscode.Position,
105
+ _token: vscode.CancellationToken
106
+ ): vscode.ProviderResult<vscode.Hover> {
107
+ const args = [{ resourceUri: document.uri }];
108
+ const stageCommandUri = vscode.Uri.parse(
109
+ `command:git.stage?${encodeURIComponent(JSON.stringify(args))}`
110
+ );
111
+ const contents = new vscode.MarkdownString(`[Stage file](${stageCommandUri})`);
112
+ contents.isTrusted = true;
113
+ return new vscode.Hover(contents);
114
+ }
115
+ }()
116
+ );
117
+ }
118
+ ```
119
+
120
+ ## Creating new commands
121
+
122
+ ### Registering a command
123
+
124
+ [`vscode.commands.registerCommand`](/api/references/vscode-api#commands.registerCommand) binds a command id to a handler function in your extension:
125
+
126
+ ```ts
127
+ import * as vscode from 'vscode';
128
+
129
+ export function activate(context: vscode.ExtensionContext) {
130
+ const command = 'myExtension.sayHello';
131
+
132
+ const commandHandler = (name?: string = 'world') => {
133
+ console.log(`Hello ${name}!!!`);
134
+ };
135
+
136
+ context.subscriptions.push(vscode.commands.registerCommand(command, commandHandler));
137
+ }
138
+ ```
139
+
140
+ The handler function will be invoked whenever the `myExtension.sayHello` command is executed, be it programmatically with `executeCommand`, from the VS Code UI, or through a keybinding.
141
+
142
+ ### Creating a user facing command
143
+
144
+ `vscode.commands.registerCommand` only binds a command id to a handler function. To expose this command in the Command Palette so it is discoverable by users, you also need a corresponding command `contribution` in your extension's `package.json`:
145
+
146
+ ```json
147
+ {
148
+ "contributes": {
149
+ "commands": [
150
+ {
151
+ "command": "myExtension.sayHello",
152
+ "title": "Say Hello"
153
+ }
154
+ ]
155
+ }
156
+ }
157
+ ```
158
+
159
+ The `commands` contribution tells VS Code that your extension provides a given command, and also lets you control how the command is displayed in the UI. Now our command will show up in the Command Palette:
160
+
161
+ ![The contributed command in the Command Palette](images/commands/palette.png)
162
+
163
+ We still need to call `registerCommand` to actually tie the command id to the handler. This means that if the user selects the `myExtension.sayHello` command from the Command Palette but our extension has not been activated yet, nothing will happen. To prevent this, extensions must register an `onCommand` `activiationEvent` for all user facing commands:
164
+
165
+ ```json
166
+ {
167
+ "activationEvents": ["onCommand:myExtension.sayHello"]
168
+ }
169
+ ```
170
+
171
+ Now when a user first invokes the `myExtension.sayHello` command from the Command Palette or through a keybinding, the extension will be activated and `registerCommand` will bind `myExtension.sayHello` to the proper handler.
172
+
173
+ You do not need an `onCommand` activation event for internal commands but you must define them for any commands that:
174
+
175
+ - Can be invoked using the Command Palette.
176
+ - Can be invoked using a keybinding.
177
+ - Can be invoked through the VS Code UI, such as through the editor title bar.
178
+ - Is intended as an API for other extensions to consume.
179
+
180
+ ### Controlling when a command shows up in the Command Palette
181
+
182
+ By default, all user facing commands contributed through the `commands` section of the `package.json` show up in the Command Palette. However, many commands are only relevant in certain circumstances, such as when there is an active text editor of a given language or when the user has a certain configuration option set.
183
+
184
+ The [`menus.commandPalette`](/api/references/contribution-points#contributes.menus) contribution point lets you restrict when a command should show in the Command Palette. It takes the id of the target command and a [when clause](/docs/getstarted/keybindings#_when-clause-contexts) that controls when the command is shown:
185
+
186
+ ```json
187
+ {
188
+ "contributes": {
189
+ "menus": {
190
+ "commandPalette": [
191
+ {
192
+ "command": "myExtension.sayHello",
193
+ "when": "editorLangId == markdown"
194
+ }
195
+ ]
196
+ }
197
+ }
198
+ }
199
+ ```
200
+
201
+ Now the `myExtension.sayHello` command will only show up in the Command Palette when the user is in a Markdown file.
api/extension-guides/debugger-extension.md ADDED
@@ -0,0 +1,367 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ # DO NOT TOUCH — Managed by doc writer
3
+ ContentId: 49EF49AD-8BE6-4D46-ADC8-D678BDC04E85
4
+ DateApproved: 3/7/2019
5
+
6
+ # Summarize the whole topic in less than 300 characters for SEO purpose
7
+ MetaDescription: Learn how to provide debugger extensions (plug-ins) for Visual Studio Code through a Debug Adapter.
8
+ ---
9
+
10
+ # Debugger Extension
11
+
12
+ Visual Studio Code's debugging architecture allows extension authors to easily integrate existing debuggers into VS Code, while having a common user interface with all of them.
13
+
14
+ VS Code ships with one built-in debugger extension, the [Node.js](https://nodejs.org) debugger extension, which is an excellent showcase for the many debugger features supported by VS Code:
15
+
16
+ ![VS Code Debug Features](images/debugger-extension/debug-features.png)
17
+
18
+ This screenshot shows the following debugging features:
19
+
20
+ 1. Debug configuration management.
21
+ 2. Debug actions for starting/stopping and stepping.
22
+ 3. Source-, function-, conditional-, inline breakpoints, and log points.
23
+ 4. Stack traces, including multi-thread and multi-process support.
24
+ 5. Navigating through complex data structures in views and hovers.
25
+ 6. Variable values shown in hovers or inlined in the source.
26
+ 7. Managing watch expressions.
27
+ 8. Debug console for interactive evaluation with autocomplete.
28
+
29
+ This documentation will help you create a debugger extension which can make any debugger work with VS Code.
30
+
31
+ ## Debugging Architecture of VS Code
32
+
33
+ VS Code implements a generic (language-agnostic) debugger UI based on an abstract protocol that we've introduced to communicate with debugger backends.
34
+ Because debuggers typically do not implement this protocol, some intermediary is needed to "adapt" the debugger to the protocol.
35
+ This intermediary is typically a standalone process that communicates with the debugger.
36
+
37
+ ![VS Code Debug Architecture](images/debugger-extension/debug-arch1.png)
38
+
39
+ We call this intermediary the **Debug Adapter** (or **DA** for short) and the abstract protocol that is used between the DA and VS Code is the **Debug Adapter Protocol** (**DAP** for short).
40
+ Since the Debug Adapter Protocol is independent from VS Code, it has its own [web site](https://microsoft.github.io/debug-adapter-protocol/) where you can find an [introduction and overview](https://microsoft.github.io/debug-adapter-protocol/overview), the detailed [specification](https://microsoft.github.io/debug-adapter-protocol/specification), and some lists with [known implementations and supporting tools](https://microsoft.github.io/debug-adapter-protocol/implementors/adapters/).
41
+ The history of and motivation behind DAP is explained in this [blog post](https://code.visualstudio.com/blogs/2018/08/07/debug-adapter-protocol-website#_why-the-need-for-decoupling-with-protocols).
42
+
43
+ Since debug adapters are independent from VS Code and can be used in [other developments tools](https://microsoft.github.io/debug-adapter-protocol/implementors/tools/), they do not match VS Code's extensibility architecture which is based on extensions and contribution points.
44
+
45
+ For this reason VS Code provides a contribution point, `debuggers`, where a debug adapter can be contributed under a specific debug type (e.g. `node` for the Node.js debugger). VS Code launches the registered DA whenever the user starts a debug session of that type.
46
+
47
+ So in its most minimal form, a debugger extension is just a declarative contribution of a debug adapter implementation and the extension is basically a packaging container for the debug adapter without any additional code.
48
+
49
+ ![VS Code Debug Architecture 2](images/debugger-extension/debug-arch2.png)
50
+
51
+ A more realistic debugger extension contributes many or all of the following declarative items to VS Code:
52
+
53
+ - List of languages supported by the debugger. VS Code enables the UI to set breakpoints for those languages.
54
+ - JSON schema for the debug configuration attributes introduced by the debugger. VS Code uses this schema to verify the configuration in the launch.json editor and provides IntelliSense.
55
+ - Default debug configurations for the initial launch.json created by VS Code.
56
+ - Debug configuration snippets that a user can add to a launch.json file.
57
+ - Declaration of variables that can be used in debug configurations.
58
+
59
+ You can find more information in [`contributes.breakpoints`](/api/references/contribution-points#contributes.breakpoints) and [`contributes.debuggers`](/api/references/contribution-points#contributes.debuggers) references.
60
+
61
+ In addition to the purely declarative contributions from above, the Debug Extension API enables this code-based functionality:
62
+
63
+ - Dynamically generated default debug configurations for the initial launch.json created by VS Code.
64
+ - Determine the debug adapter to use dynamically.
65
+ - Verify or modify debug configurations before they are passed to the debug adapter.
66
+ - Communicate with the debug adapter.
67
+ - Send messages to the debug console.
68
+
69
+ In the rest of this document we show how to develop a debugger extension.
70
+
71
+ ## The Mock Debug Extension
72
+
73
+ Since creating a debug adapter from scratch is a bit heavy for this tutorial, we will start with a simple DA which we have created as an educational "debug adapter starter kit". It is called _Mock Debug_ because it does not talk to a real debugger, but mocks one. Mock Debug simulates a debugger and supports step, continue, breakpoints, exceptions, and variable access, but it is not connected to any real debugger.
74
+
75
+ Before delving into the development setup for mock-debug, let's first install a [pre-built version](https://marketplace.visualstudio.com/items/andreweinand.mock-debug)
76
+ from the VS Code Marketplace and play with it:
77
+
78
+ - Switch to the Extensions viewlet and type "mock" to search for the Mock Debug extension,
79
+ - "Install" and "Reload" the extension.
80
+
81
+ To try Mock Debug:
82
+
83
+ - Create a new empty folder `mock test` and open it in VS Code.
84
+ - Create a file `readme.md` and enter several lines of arbitrary text.
85
+ - Switch to the Debug view and press the gear icon.
86
+ - VS Code will let you select an "environment" in order to create a default launch configuration. Pick "Mock Debug".
87
+ - Press the green Start button and then Enter to confirm the suggested file `readme.md`.
88
+
89
+ A debug session starts and you can "step" through the readme file, set and hit breakpoints, and run into exceptions (if the word `exception` appears in a line).
90
+
91
+ ![Mock Debugger running](images/debugger-extension/mock-debug.gif)
92
+
93
+ Before using Mock Debug as a starting point for your own development, we recommend to uninstall the pre-built version first:
94
+
95
+ - Switch to the Extensions viewlet and click on the gear icon of the Mock Debug extension.
96
+ - Run the "Uninstall" action and then "Reload" the window.
97
+
98
+ ## Development Setup for Mock Debug
99
+
100
+ Now let's get the source for Mock Debug and start development on it within VS Code:
101
+
102
+ ```bash
103
+ git clone https://github.com/Microsoft/vscode-mock-debug.git
104
+ cd vscode-mock-debug
105
+ npm install
106
+ ```
107
+
108
+ Open the project folder `vscode-mock-debug` in VS Code.
109
+
110
+ What's in the package?
111
+
112
+ - `package.json` is the manifest for the mock-debug extension:
113
+ - It lists the contributions of the mock-debug extension.
114
+ - The `compile` and `watch` scripts are used to transpile the TypeScript source into the `out` folder and watch for subsequent source modifications.
115
+ - The dependencies `vscode-debugprotocol`, `vscode-debugadapter`, and `vscode-debugadapter-testsupport` are NPM modules that simplify the development of node-based debug adapters.
116
+ - `src/mockRuntime.ts` is a _mock_ runtime with a simple debug API.
117
+ - The code that _adapts_ the runtime to the Debug Adapter Protocol lives in `src/mockDebug.ts`. Here you find the handlers for the various requests of the DAP.
118
+ - Since the implementation of debugger extension lives in the debug adapter, there is no need to have extension code at all (i.e. code that runs in the extension host process). However, Mock Debug has a small `src/extension.ts` because it illustrates what can be done in the extension code of a debugger extension.
119
+
120
+ Now build and launch the Mock Debug extension by selecting the **Extension** launch configuration and hitting `F5`.
121
+ Initially, this will do a full transpile of the TypeScript sources into the `out` folder.
122
+ After the full build, a _watcher task_ is started that transpiles any changes you make.
123
+
124
+ After transpiling the source, a new VS Code window labelled "[Extension Development Host]" appears with the Mock Debug extension now running in debug mode. From that window open your `mock test` project with the `readme.md` file, start a debug session with 'F5', and then step through it:
125
+
126
+ ![Debugging Extension and Server](images/debugger-extension/debug-mock-session.png)
127
+
128
+ Since you are running the extension in debug mode, you could now set and hit breakpoints in `src/extension.ts` but as I've mentioned above, there is not much interesting code executing in the extension. The interesting code runs in the debug adapter which is a separate process.
129
+
130
+ In order to debug the debug adapter itself, we have to run it in debug mode. This is most easily achieved by running the debug adapter in _server mode_ and configure VS Code to connect to it. In your VS Code vscode-mock-debug project select the launch configuration **Server** from the drop down menu and press the green start button.
131
+
132
+ Since we already had an active debug session for the extension the VS Code debugger UI now enters _multi session_ mode which is indicated by seeing the names of the two debug sessions **Extension** and **Server** showing up in the CALL STACK view:
133
+
134
+ ![Debugging Extension and Server](images/debugger-extension/debugger-extension-server.png)
135
+
136
+ Now we are able to debug both the extension and the DA simultaneously.
137
+ A faster way to arrive here is by using the **Extension + Server** launch configuration which launches both sessions automatically.
138
+
139
+ An alternative, even simpler approach for debugging the extension and the DA can be found [below](#alternative-approach-to-develop-a-debugger-extension).
140
+
141
+ Set a breakpoint at the beginning of method `launchRequest(...)` in file `src/mockDebug.ts` and as a last step configure the mock debugger to connect to the DA server by adding a `debugServer` attribute for port `4711` to your mock test launch config:
142
+
143
+ ```json
144
+ {
145
+ "version": "0.2.0",
146
+ "configurations": [
147
+ {
148
+ "type": "mock",
149
+ "request": "launch",
150
+ "name": "mock test",
151
+ "program": "${workspaceFolder}/readme.md",
152
+ "stopOnEntry": true,
153
+ "debugServer": 4711
154
+ }
155
+ ]
156
+ }
157
+ ```
158
+
159
+ If you now launch this debug configuration, VS Code does not start the mock debug adapter as a separate process, but directly connects to local port 4711 of the already running server, and you should hit the breakpoint in `launchRequest`.
160
+
161
+ With this setup, you can now easily edit, transpile, and debug Mock Debug.
162
+
163
+ But now the real work begins: you will have to replace the mock implementation of the debug adapter in `src/mockDebug.ts` and `src/mockRuntime.ts` by some code that talks to a "real" debugger or runtime. This involves understanding and implementing the Debug Adapter Protocol. More details
164
+ about this can be found [here](https://microsoft.github.io/debug-adapter-protocol/overview#How_it_works).
165
+
166
+ ## Anatomy of the package.json of a Debugger Extension
167
+
168
+ Besides providing a debugger-specific implementation of the debug adapter a debugger extension needs a `package.json` that contributes to the various debug-related contributions points.
169
+
170
+ So let's have a closer look at the `package.json` of Mock Debug.
171
+
172
+ Like every VS Code extension, the `package.json` declares the fundamental properties **name**, **publisher**, and **version** of the extension. Use the **categories** field to make the extension easier to find in the VS Code Extension Marketplace.
173
+
174
+ ```json
175
+ {
176
+ "name": "mock-debug",
177
+ "displayName": "Mock Debug",
178
+ "version": "0.24.0",
179
+ "publisher": "...",
180
+ "description": "Starter extension for developing debug adapters for VS Code.",
181
+ "author": {
182
+ "name": "...",
183
+ "email": "..."
184
+ },
185
+ "engines": {
186
+ "vscode": "^1.17.0",
187
+ "node": "^7.9.0"
188
+ },
189
+ "icon": "images/mock-debug-icon.png",
190
+ "categories": ["Debuggers"],
191
+
192
+ "contributes": {
193
+ "breakpoints": [{ "language": "markdown" }],
194
+ "debuggers": [
195
+ {
196
+ "type": "mock",
197
+ "label": "Mock Debug",
198
+
199
+ "program": "./out/mockDebug.js",
200
+ "runtime": "node",
201
+
202
+ "configurationAttributes": {
203
+ "launch": {
204
+ "required": ["program"],
205
+ "properties": {
206
+ "program": {
207
+ "type": "string",
208
+ "description": "Absolute path to a text file.",
209
+ "default": "${workspaceFolder}/${command:AskForProgramName}"
210
+ },
211
+ "stopOnEntry": {
212
+ "type": "boolean",
213
+ "description": "Automatically stop after launch.",
214
+ "default": true
215
+ }
216
+ }
217
+ }
218
+ },
219
+
220
+ "initialConfigurations": [
221
+ {
222
+ "type": "mock",
223
+ "request": "launch",
224
+ "name": "Ask for file name",
225
+ "program": "${workspaceFolder}/${command:AskForProgramName}",
226
+ "stopOnEntry": true
227
+ }
228
+ ],
229
+
230
+ "configurationSnippets": [
231
+ {
232
+ "label": "Mock Debug: Launch",
233
+ "description": "A new configuration for launching a mock debug program",
234
+ "body": {
235
+ "type": "mock",
236
+ "request": "launch",
237
+ "name": "${2:Launch Program}",
238
+ "program": "^\"\\${workspaceFolder}/${1:Program}\""
239
+ }
240
+ }
241
+ ],
242
+
243
+ "variables": {
244
+ "AskForProgramName": "extension.mock-debug.getProgramName"
245
+ }
246
+ }
247
+ ]
248
+ },
249
+
250
+ "activationEvents": ["onDebug", "onCommand:extension.mock-debug.getProgramName"]
251
+ }
252
+ ```
253
+
254
+ Now take a look at the **contributes** section which contains the contributions specific to debug extensions.
255
+
256
+ First, we use the **breakpoints** contribution point to list the languages for which setting breakpoints will be enabled. Without this, it would not be possible to set breakpoints in Markdown files.
257
+
258
+ Next is the **debuggers** section. Here, one debugger is introduced under a debug **type** `mock`. The user can reference this type in launch configurations. The optional attribute **label** can be used to give the debug type a nice name when showing it in the UI.
259
+
260
+ Since the debug extension uses a debug adapter, a relative path to its code is given as the **program** attribute.
261
+ In order to make the extension self-contained the application must live inside the extension folder. By convention, we keep this applications inside a folder named `out` or `bin`, but you are free to use a different name.
262
+
263
+ Since VS Code runs on different platforms, we have to make sure that the DA program supports the different platforms as well. For this we have the following options:
264
+
265
+ 1. If the program is implemented in a platform independent way, e.g. as program that runs on a runtime that is available on all supported platforms, you can specify this runtime via the **runtime** attribute. As of today, VS Code supports `node` and `mono` runtimes. Our Mock debug adapter from above uses this approach.
266
+
267
+ 1. If your DA implementation needs different executables on different platforms, the **program** attribute can be qualified for specific platforms like this:
268
+
269
+ ```json
270
+ "debuggers": [{
271
+ "type": "gdb",
272
+ "windows": {
273
+ "program": "./bin/gdbDebug.exe",
274
+ },
275
+ "osx": {
276
+ "program": "./bin/gdbDebug.sh",
277
+ },
278
+ "linux": {
279
+ "program": "./bin/gdbDebug.sh",
280
+ }
281
+ }]
282
+ ```
283
+
284
+ 1. A combination of both approaches is possible too. The following example is from the Mono DA which is implemented as a mono application that needs a runtime on macOS and Linux but not on Windows:
285
+
286
+ ```json
287
+ "debuggers": [{
288
+ "type": "mono",
289
+ "program": "./bin/monoDebug.exe",
290
+ "osx": {
291
+ "runtime": "mono"
292
+ },
293
+ "linux": {
294
+ "runtime": "mono"
295
+ }
296
+ }]
297
+ ```
298
+
299
+ **configurationAttributes** declares the schema for the `launch.json` attributes that are available for this debugger. This schema is used for validating the `launch.json` and supporting IntelliSense and hover help when editing the launch configuration.
300
+
301
+ The **initialConfigurations** define the initial content of the default `launch.json` for this debugger. This information is used when a project does not have a `launch.json` and a user starts a debug session or clicks on the gear icon in the debug viewlet. In this case VS Code lets the user pick a debug environment and then creates the corresponding `launch.json`:
302
+
303
+ ![Debugger Quickpick](images/debugger-extension/debug-init-config.png)
304
+
305
+ Instead of defining the initial content of the `launch.json` statically in the `package.json`, it is possible to compute the initial configurations dynamically by implementing a `DebugConfigurationProvider` (for details see the section [Using a DebugConfigurationProvider below](#using-a-debugconfigurationprovider)).
306
+
307
+ **configurationSnippets** define launch configuration snippets that get surfaced in IntelliSense when editing the `launch.json`. As a convention, prefix the `label` attribute of a snippet by the debug environment name so that it can be clearly identified when presented in a list of many snippet proposals.
308
+
309
+ The **variables** contribution binds "variables" to "commands". These variables can be used in the launch configuration using the **\${command:xyz}** syntax and the variables are substituted by the value returned from the bound command when a debug session is started.
310
+
311
+ The implementation of a command lives in the extension and it can range from a simple expression with no UI, to sophisticated functionality based on the UI features available in the extension API.
312
+ Mock Debug binds a variable `AskForProgramName` to the command `extension.mock-debug.getProgramName`. The [implementation](https://github.com/Microsoft/vscode-mock-debug/blob/606454ff3bd669867a38d9b2dc7b348d324a3f6b/src/extension.ts#L21-L26) of this command in `src/extension.ts` uses the `showInputBox` to let the user enter a program name:
313
+
314
+ ```ts
315
+ vscode.commands.registerCommand('extension.mock-debug.getProgramName', config => {
316
+ return vscode.window.showInputBox({
317
+ placeHolder: 'Please enter the name of a markdown file in the workspace folder',
318
+ value: 'readme.md'
319
+ });
320
+ });
321
+ ```
322
+
323
+ The variable can now be used in any string typed value of a launch configuration as **\${command:AskForProgramName}**.
324
+
325
+ ## Using a DebugConfigurationProvider
326
+
327
+ If the static nature of debug contributions in the `package.json` is not sufficient, a `DebugConfigurationProvider` can be used to dynamically control the following aspects of a debug extension:
328
+
329
+ - The initial debug configurations for a newly created launch.json can be generated dynamically, e.g. based on some contextual information available in the workspace.
330
+ - A launch configuration can be _resolved_ (or modified) before it is used to start a new debug session. This allows for filling in default values based on information available in the workspace.
331
+
332
+ The `MockConfigurationProvider` in `src/extension.ts` implements `resolveDebugConfiguration` to detect the case where a debug session is started when no launch.json exists, but a Markdown file is open in the active editor. This is a typical scenario where the user has a file open in the editor and just wants to debug it without creating a launch.json.
333
+
334
+ A debug configuration provider is registered for a specific debug type via `vscode.debug.registerDebugConfigurationProvider`, typically in the extension's `activate` function.
335
+ To ensure that the `DebugConfigurationProvider` is registered early enough, the extension must be activated as soon as the debug functionality is used. This can be easily achieved by configuring extension activation for the `onDebug` event in the `package.json`:
336
+
337
+ ```json
338
+ "activationEvents": [
339
+ "onDebug",
340
+ // ...
341
+ ],
342
+ ```
343
+
344
+ This catch-all `onDebug` is triggered as soon as any debug functionality is used. This works fine as long as the extension has cheap startup costs (i.e. does not spend a lot of time in its startup sequence). If a debug extension has an expensive startup (for instance because of starting a language server), the `onDebug` activation event could negatively affect other debug extensions, because it is triggered rather early and does not take a specific debug type into account.
345
+
346
+ A better approach for expensive debug extensions is to use more fine-grained activation events:
347
+
348
+ - `onDebugInitialConfigurations` is fired just before the `provideDebugConfigurations` method of the `DebugConfigurationProvider` is called.
349
+ - `onDebugResolve:type` is fired just before the `resolveDebugConfiguration` method of the `DebugConfigurationProvider` for the specified type is called.
350
+
351
+ **Rule of thumb:** If activation of a debug extensions is cheap, use `onDebug`. If it is expensive, use `onDebugInitialConfigurations` and/or `onDebugResolve` depending on whether the `DebugConfigurationProvider` implements the corresponding methods `provideDebugConfigurations` and/or `resolveDebugConfiguration`.
352
+
353
+ ## Publishing your debugger extension
354
+
355
+ Once you have created your debugger extension you can publish it to the Marketplace:
356
+
357
+ - Update the attributes in the `package.json` to reflect the naming and purpose of your debugger extension.
358
+ - Upload to the Marketplace as described in [Publishing Extension](/api/working-with-extensions/publishing-extension).
359
+
360
+ ## Alternative approach to develop a debugger extension
361
+
362
+ As we have seen, developing a debugger extension typically involves debugging both the extension and the debug adapter in two parallel sessions. As explained above VS Code supports this nicely but development could be easier if both the extension and the debug adapter would be one program that could be debugged in one debug session.
363
+
364
+ This approach is in fact easily doable as long as your debug adapter is implemented in TypeScript/JavaScript. The basic idea is to run the debug adapter as a server inside the extension host and to make VS Code to connect to it instead of launching a new debug adapter per session.
365
+
366
+ Mock Debug shows how a [DebugAdapterDescriptorFactory](https://github.com/Microsoft/vscode-mock-debug/blob/6a2ef01b95bb22cdf55683f4d616cad501051510/src/extension.ts#L74-L98) can be used to create and [register](https://github.com/Microsoft/vscode-mock-debug/blob/6a2ef01b95bb22cdf55683f4d616cad501051510/src/extension.ts#L32-L36) a server-based debug adapter.
367
+ The feature is enabled by setting the compile time flag [`EMBED_DEBUG_ADAPTER`](https://github.com/Microsoft/vscode-mock-debug/blob/6a2ef01b95bb22cdf55683f4d616cad501051510/src/extension.ts#L17) to true. If you now start debugging the extension with **F5** you will hit breakpoints not only in the extension host but in the debug adapter as well.
api/extension-guides/file-system-provider.md ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ DateApproved:
3
+ MetaDescription:
4
+ ---
5
+
6
+ # File System Provider
7
+
8
+ For https://github.com/Microsoft/vscode-extension-samples/tree/master/fsprovider-sample and https://github.com/Microsoft/vscode-extension-samples/tree/master/nodefs-provider-sample
api/extension-guides/i18n.md ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ DateApproved:
3
+ MetaDescription:
4
+ ---
5
+
6
+ # Internationalization
7
+
8
+ https://github.com/Microsoft/vscode-extension-samples/tree/master/i18n-sample
api/extension-guides/icon-theme.md ADDED
@@ -0,0 +1,160 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ # DO NOT TOUCH — Managed by doc writer
3
+ ContentId: f470466d-89b0-4115-ab7a-2448023b0a6d
4
+ DateApproved: 3/7/2019
5
+
6
+ # Summarize the whole topic in less than 300 characters for SEO purpose
7
+ MetaDescription: A guide to creating Icon Theme in Visual Studio Code
8
+ ---
9
+
10
+ # Icon Theme
11
+
12
+ Visual Studio Code displays icons next to filenames throughout its UI, and extensions can contribute new sets of file icons that users can choose from.
13
+
14
+ ## Adding a new Icon Theme
15
+
16
+ You can create your own icon theme from icons (preferably SVG) and from icon fonts. As example, check out the two built-in themes: [Minimal](https://github.com/Microsoft/vscode/tree/master/extensions/theme-defaults) and [Seti](https://github.com/Microsoft/vscode/tree/master/extensions/theme-seti).
17
+
18
+ To begin, create a VS Code extension and add the `iconTheme` contribution point.
19
+
20
+ ```json
21
+ {
22
+ "contributes": {
23
+ "iconThemes": [
24
+ {
25
+ "id": "turtles",
26
+ "label": "Turtles",
27
+ "path": "./fileicons/turtles-icon-theme.json"
28
+ }
29
+ ]
30
+ }
31
+ }
32
+ ```
33
+
34
+ The `id` is the identifier for the icon theme. It is currently only used internally. In the future, it might be used in the settings, so make it unique but also readable. `label` is shown in the icon theme picker drop-down. The `path` points to a file in the extension that defines the icon set. If your icon set name follows the `*icon-theme.json` name scheme, you will get completion support and hovers in VS Code.
35
+
36
+ ### Icon Set File
37
+
38
+ The icon set file is a JSON file consisting of file icon associations and icon definitions.
39
+
40
+ An icon association maps a file type ('file', 'folder', 'json-file'...) to an icon definition. Icon definitions define where the icon is located: That can be an image file or also glyph in a font.
41
+
42
+ ### Icon definitions
43
+
44
+ The `iconDefinitions` section contains all definitions. Each definition has an id, which will be used to reference the definition. A definition can be referenced also by more than one file association.
45
+
46
+ ```json
47
+ {
48
+ "iconDefinitions": {
49
+ "_folder_dark": {
50
+ "iconPath": "./images/Folder_16x_inverse.svg"
51
+ }
52
+ }
53
+ }
54
+ ```
55
+
56
+ This icon definition above contains a definition with the identifier `_folder_dark`.
57
+
58
+ The following properties are supported:
59
+
60
+ - `iconPath`: When using a svg/png: the path to the image.
61
+ - `fontCharacter`: When using a glyph font: The character in the font to use.
62
+ - `fontColor`: When using a glyph font: The color to use for the glyph.
63
+ - `fontSize`: When using a font: The font size. By default, the size specified in the font specification is used. Should be a relative size (e.g. 150%) to the parent font size.
64
+ - `fontId`: When using a font: The id of the font. If not specified, the first font specified in font specification section will be picked.
65
+
66
+ ### File association
67
+
68
+ Icons can be associated to folders, folder names, files, file extensions, file names and [language ids](/api/references/contribution-points#contributes.languages).
69
+
70
+ Additionally each of these associations can be refined for 'light' and 'highContrast' color themes.
71
+
72
+ Each file association points to an icon definition.
73
+
74
+ ```json
75
+ {
76
+ "file": "_file_dark",
77
+ "folder": "_folder_dark",
78
+ "folderExpanded": "_folder_open_dark",
79
+ "folderNames": {
80
+ ".vscode": "_vscode_folder"
81
+ },
82
+ "fileExtensions": {
83
+ "ini": "_ini_file"
84
+ },
85
+ "fileNames": {
86
+ "win.ini": "_win_ini_file"
87
+ },
88
+ "languageIds": {
89
+ "ini": "_ini_file"
90
+ },
91
+ "light": {
92
+ "folderExpanded": "_folder_open_light",
93
+ "folder": "_folder_light",
94
+ "file": "_file_light",
95
+ "fileExtensions": {
96
+ "ini": "_ini_file_light"
97
+ }
98
+ },
99
+ "highContrast": {}
100
+ }
101
+ ```
102
+
103
+ - `file` is the default file icon, shown for all files that don't match any extension, filename or language id. Currently all properties defined by the definition of the file icon will be inherited (only relevant for font glyphs, useful for the fontSize).
104
+ - `folder` is the folder icon for collapsed folders, and if `folderExpanded` is not set, also for expanded folders. Icons for specific folder names can be associated using the `folderNames` property.
105
+ The folder icon is optional. If not set, no icon will be shown for folder.
106
+ - `folderExpanded` is the folder icon for expanded folders. The expanded folder icon is optional. If not set, the icon defined for `folder` will be shown.
107
+ - `folderNames` associates folder names to icons. The key of the set is the folder name, not including any path segments. Patterns or wildcards are not supported. Folder name matching is case insensitive.
108
+ - `folderNamesExpanded` associates folder names to icons for expanded folder. The key of the set is the folder name, not including any path segments. Patterns or wildcards are not supported. Folder name matching is case insensitive.
109
+ - `rootFolder` is the folder icon for collapsed workspace root folders , and if `rootFolderExpanded` is not set, also for expanded workspace root folders. If not set, the icon defined for `folder` will be shown for workspace root folders.
110
+ - `rootFolderExpanded` is the folder icon for expanded workspace root folders. If not set, the icon defined for `rootFolder` will be shown for exanded workspace root folders.
111
+ - `languageIds` associates languages to icons. The key in the set is the language id as defined in the [language contribution point](/api/references/contribution-points#contributes.languages). The language of a file is evaluated based on the file extensions and file names as defined in the language contribution. Note that the 'first line match' of the language contribution is not considered.
112
+ - `fileExtensions` associates file extensions to icons. The key in the set is the file extension name. The extension name is a file name segment after a dot (not including the dot). File names with multiple dots such as `lib.d.ts` can match multiple extensions; 'd.ts' and 'ts'. Extensions are compared case insensitive.
113
+ - `fileNames` associates file names to icons. The key in the set is the full file name, not including any path segments. Patterns or wildcards are not supported. File name matching is case insensitive. A 'fileName' match is the strongest match, and the icon associated to the file name will be preferred over an icon of a matching fileExtension and also of a matching language Id.
114
+
115
+ A file extension match is preferred over a language match, but is weaker than a file name match.
116
+
117
+ The `light` and the `highContrast` section have the same file association properties as just listed. They allow to override icons for the corresponding themes.
118
+
119
+ ### Font definitions
120
+
121
+ The `fonts` section lets you declare any number of glyph fonts that you want to use.
122
+ You can later reference these fonts in the icon definitions. The font declared first will be used as the default if an icon definition does not specify a font id.
123
+
124
+ Copy the font file into your extension and set the path accordingly.
125
+ It is recommended to use [WOFF](https://developer.mozilla.org/docs/Web/Guide/WOFF) fonts.
126
+
127
+ - Set 'woff' as the format.
128
+ - the weight property values are defined [here](https://developer.mozilla.org/docs/Web/CSS/font-weight#Values).
129
+ - the style property values are defined [here](https://developer.mozilla.org/docs/Web/CSS/@font-face/font-style#Values).
130
+ - the size should be relative to the font size where the icon is used. Therefore, always use percentage.
131
+
132
+ ```json
133
+ {
134
+ "fonts": [
135
+ {
136
+ "id": "turtles-font",
137
+ "src": [
138
+ {
139
+ "path": "./turtles.woff",
140
+ "format": "woff"
141
+ }
142
+ ],
143
+ "weight": "normal",
144
+ "style": "normal",
145
+ "size": "150%"
146
+ }
147
+ ],
148
+ "iconDefinitions": {
149
+ "_file": {
150
+ "fontCharacter": "\\E002",
151
+ "fontColor": "#5f8b3b",
152
+ "fontId": "turtles-font"
153
+ }
154
+ }
155
+ }
156
+ ```
157
+
158
+ ### Folder icons in File Icon Themes
159
+
160
+ File Icon themes can instruct the File Explorer not to show the default folder icon (the rotating triangles or "twisties") when the folder icons are good enough to indicate the expansion state of a folder. This mode is enabled by setting `"hidesExplorerArrows":true` in the File Icon theme definition file.
api/extension-guides/images/color-theme/color-setting.png ADDED

Git LFS Details

  • SHA256: 3e33b786a5cb42ababa7e6b95c1588a4e118a9c6cca4d702744f8c180b710379
  • Pointer size: 131 Bytes
  • Size of remote file: 273 kB
api/extension-guides/images/color-theme/mytheme.png ADDED
api/extension-guides/images/color-theme/tm-inspector.png ADDED

Git LFS Details

  • SHA256: 38c9f842e34507294d648d60dece29479cec9be8f93df5b04ac830cfceb110e7
  • Pointer size: 131 Bytes
  • Size of remote file: 203 kB
api/extension-guides/images/color-theme/yocode-colortheme.png ADDED
api/extension-guides/images/commands/palette.png ADDED
api/extension-guides/images/debugger-extension/debug-arch1.png ADDED
api/extension-guides/images/debugger-extension/debug-arch2.png ADDED
api/extension-guides/images/debugger-extension/debug-features.png ADDED

Git LFS Details

  • SHA256: 085536ca6bc19742828c0cdee02b5c7f013686d9c3fb92d7fbb57029a774d88f
  • Pointer size: 131 Bytes
  • Size of remote file: 296 kB
api/extension-guides/images/debugger-extension/debug-init-config.png ADDED
api/extension-guides/images/debugger-extension/debug-mock-session.png ADDED
api/extension-guides/images/debugger-extension/debugger-extension-server.png ADDED

Git LFS Details

  • SHA256: 3b5f4be4fb2d8ad12f6722c57eb6b58363d09960d823b2afe4f1dac72b7be397
  • Pointer size: 131 Bytes
  • Size of remote file: 134 kB
api/extension-guides/images/debugger-extension/mock-debug.gif ADDED

Git LFS Details

  • SHA256: 4315f93fe647e71568cbaa7d8e7297875040c1db4ed336ccc9c32e9f492db0d1
  • Pointer size: 131 Bytes
  • Size of remote file: 154 kB
api/extension-guides/images/scm-provider/main.png ADDED
api/extension-guides/images/scm-provider/menus.png ADDED
api/extension-guides/images/scm-provider/quickdiff.png ADDED
api/extension-guides/images/scm-provider/sourcecontrol-menu.png ADDED
api/extension-guides/images/tree-view/view-actions.png ADDED
api/extension-guides/images/tree-view/view-container.png ADDED

Git LFS Details

  • SHA256: 74c51920a7f9c98aa6342011b7f61258fdbb4b62cce8b6c5fad28b9cca2ef737
  • Pointer size: 131 Bytes
  • Size of remote file: 291 kB
api/extension-guides/images/tree-view/view.png ADDED
api/extension-guides/images/virtual-documents/cowsay-bwd.png ADDED
api/extension-guides/images/webview/basics-developer_tools.png ADDED

Git LFS Details

  • SHA256: ebc3aa5e2d941b410b02f06a6182fc1b685d1ebd24a6605da9550d6a808a1516
  • Pointer size: 131 Bytes
  • Size of remote file: 219 kB
api/extension-guides/images/webview/basics-drag.gif ADDED

Git LFS Details

  • SHA256: 6b7c66d2a0ad3d0da8c3bba86fcdbeb5979f863e88349a2b7752838ec80ddfa0
  • Pointer size: 132 Bytes
  • Size of remote file: 2.93 MB
api/extension-guides/images/webview/basics-html.png ADDED

Git LFS Details

  • SHA256: 686667a12313d31ffe7c30d9d2ef31d05766a729e6e9c702362a845048f65179
  • Pointer size: 131 Bytes
  • Size of remote file: 135 kB
api/extension-guides/images/webview/basics-no_content.png ADDED
api/extension-guides/images/webview/basics-ondidchangeviewstate.gif ADDED

Git LFS Details

  • SHA256: 16588bcda79469423503d5f0c9e6fe8be26b2af270889328a48552b82a86dae4
  • Pointer size: 132 Bytes
  • Size of remote file: 3.51 MB
api/extension-guides/images/webview/basics-restore.gif ADDED

Git LFS Details

  • SHA256: 63608084786607862bb87ba9cf678e9e3e6b93b9aa38696f4279fbbe9c51d823
  • Pointer size: 132 Bytes
  • Size of remote file: 1.78 MB