diff --git a/.vscode/notebooks/my-work.github-issues b/.vscode/notebooks/my-work.github-issues index bc9aa8dcac6..278ab639460 100644 --- a/.vscode/notebooks/my-work.github-issues +++ b/.vscode/notebooks/my-work.github-issues @@ -3,133 +3,114 @@ "kind": 1, "language": "markdown", "value": "##### `Config`: This should be changed every month/milestone", - "editable": true, - "outputs": [] + "editable": true }, { "kind": 2, "language": "github-issues", "value": "// list of repos we work in\n$repos=repo:microsoft/vscode repo:microsoft/vscode-remote-release repo:microsoft/vscode-js-debug repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-github-issue-notebooks repo:microsoft/vscode-internalbacklog\n\n// current milestone name\n$milestone=milestone:\"March 2021\"", - "editable": true, - "outputs": [] + "editable": true }, { "kind": 1, "language": "github-issues", "value": "## Milestone Work", - "editable": true, - "outputs": [] + "editable": true }, { "kind": 2, "language": "github-issues", "value": "$repos $milestone assignee:@me is:open", - "editable": true, - "outputs": [] + "editable": true }, { "kind": 1, "language": "github-issues", "value": "## Bugs, Debt, Features...", - "editable": true, - "outputs": [] + "editable": true }, { "kind": 1, "language": "markdown", "value": "#### My Bugs", - "editable": true, - "outputs": [] + "editable": true }, { "kind": 2, "language": "github-issues", "value": "$repos assignee:@me is:open label:bug", - "editable": true, - "outputs": [] + "editable": true }, { "kind": 1, "language": "markdown", "value": "#### Debt & Engineering", - "editable": true, - "outputs": [] + "editable": true }, { "kind": 2, "language": "github-issues", "value": "$repos assignee:@me is:open label:debt OR $repos assignee:@me is:open label:engineering", - "editable": true, - "outputs": [] + "editable": true }, { "kind": 1, "language": "markdown", "value": "#### Performance 🐌 🔜 🏎", - "editable": true, - "outputs": [] + "editable": true }, { "kind": 2, "language": "github-issues", "value": "$repos assignee:@me is:open label:perf OR $repos assignee:@me is:open label:perf-startup OR $repos assignee:@me is:open label:perf-bloat OR $repos assignee:@me is:open label:freeze-slow-crash-leak", - "editable": true, - "outputs": [] + "editable": true }, { "kind": 1, "language": "markdown", "value": "#### Feature Requests", - "editable": true, - "outputs": [] + "editable": true }, { "kind": 2, "language": "github-issues", "value": "$repos assignee:@me is:open label:feature-request milestone:Backlog sort:reactions-+1-desc", - "editable": true, - "outputs": [] + "editable": true }, { "kind": 2, "language": "github-issues", "value": "$repos assignee:@me is:open milestone:\"Backlog Candidates\"", - "editable": true, - "outputs": [] + "editable": true }, { "kind": 1, "language": "markdown", "value": "### Personal Inbox\n", - "editable": true, - "outputs": [] + "editable": true }, { "kind": 1, "language": "markdown", "value": "\n#### Missing Type label", - "editable": true, - "outputs": [] + "editable": true }, { "kind": 2, "language": "github-issues", "value": "$repos assignee:@me is:open type:issue -label:bug -label:\"needs more info\" -label:feature-request -label:under-discussion -label:debt -label:plan-item -label:upstream", - "editable": true, - "outputs": [] + "editable": true }, { "kind": 1, "language": "markdown", "value": "#### Not Actionable", - "editable": true, - "outputs": [] + "editable": true }, { "kind": 2, "language": "github-issues", "value": "$repos assignee:@me is:open label:\"needs more info\"", - "editable": true, - "outputs": [] + "editable": true } ] \ No newline at end of file diff --git a/.vscode/notebooks/verification.github-issues b/.vscode/notebooks/verification.github-issues index 64223907d9b..5c94b133401 100644 --- a/.vscode/notebooks/verification.github-issues +++ b/.vscode/notebooks/verification.github-issues @@ -3,63 +3,54 @@ "kind": 1, "language": "markdown", "value": "### Bug Verification Queries\n\nBefore shipping we want to verify _all_ bugs. That means when a bug is fixed we check that the fix actually works. It's always best to start with bugs that you have filed and the proceed with bugs that have been filed from users outside the development team. ", - "editable": true, - "outputs": [] + "editable": true }, { "kind": 1, "language": "markdown", "value": "#### Config: update list of `repos` and the `milestone`", - "editable": true, - "outputs": [] + "editable": true }, { "kind": 2, "language": "github-issues", "value": "$repos=repo:microsoft/vscode repo:microsoft/vscode-internalbacklog repo:microsoft/vscode-remote-release repo:microsoft/vscode-js-debug repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-github-issue-notebooks \n$milestone=milestone:\"March 2021\"", - "editable": true, - "outputs": [] + "editable": true }, { "kind": 1, "language": "markdown", "value": "### Bugs You Filed", - "editable": true, - "outputs": [] + "editable": true }, { "kind": 2, "language": "github-issues", "value": "$repos $milestone is:closed -assignee:@me label:bug -label:verified -label:*duplicate author:@me", - "editable": false, - "outputs": [] + "editable": false }, { "kind": 1, "language": "markdown", "value": "### Bugs From Outside", - "editable": true, - "outputs": [] + "editable": true }, { "kind": 2, "language": "github-issues", "value": "$repos $milestone is:closed -assignee:@me label:bug -label:verified -label:*duplicate -author:@me -assignee:@me label:bug -label:verified -author:@me -author:aeschli -author:alexdima -author:alexr00 -author:bpasero -author:chrisdias -author:chrmarti -author:connor4312 -author:dbaeumer -author:deepak1556 -author:eamodio -author:egamma -author:gregvanl -author:isidorn -author:JacksonKearl -author:joaomoreno -author:jrieken -author:lramos15 -author:lszomoru -author:meganrogge -author:misolori -author:mjbvz -author:rebornix -author:RMacfarlane -author:roblourens -author:sana-ajani -author:sandy081 -author:sbatten -author:Tyriar -author:weinand -author:rzhao271 -author:kieferrm -author:TylerLeonhardt -author:bamurtaugh", - "editable": false, - "outputs": [] + "editable": false }, { "kind": 1, "language": "markdown", "value": "### All", - "editable": true, - "outputs": [] + "editable": true }, { "kind": 2, "language": "github-issues", "value": "$repos $milestone is:closed -assignee:@me label:bug -label:verified -label:*duplicate", - "editable": false, - "outputs": [] + "editable": false } ] \ No newline at end of file diff --git a/extensions/css-language-features/package.nls.json b/extensions/css-language-features/package.nls.json index b27b41636f9..727ba718d7f 100644 --- a/extensions/css-language-features/package.nls.json +++ b/extensions/css-language-features/package.nls.json @@ -4,7 +4,7 @@ "css.title": "CSS", "css.customData.desc": "A list of relative file paths pointing to JSON files following the [custom data format](https://github.com/microsoft/vscode-css-languageservice/blob/master/docs/customData.md).\n\nVS Code loads custom data on startup to enhance its CSS support for the custom CSS properties, at directives, pseudo classes and pseudo elements you specify in the JSON files.\n\nThe file paths are relative to workspace and only workspace folder settings are considered.", "css.completion.triggerPropertyValueCompletion.desc": "By default, VS Code triggers property value completion after selecting a CSS property. Use this setting to disable this behavior.", - "css.completion.completePropertyWithSemicolon.desc": "Insert semicolon at end of line when completing CSS properties", + "css.completion.completePropertyWithSemicolon.desc": "Insert semicolon at end of line when completing CSS properties.", "css.lint.argumentsInColorFunction.desc": "Invalid number of parameters.", "css.lint.boxModel.desc": "Do not use `width` or `height` when using `padding` or `border`.", "css.lint.compatibleVendorPrefixes.desc": "When using a vendor-specific prefix make sure to also include all other vendor-specific properties.", @@ -32,7 +32,7 @@ "css.hover.references": "Show references to MDN in CSS hovers.", "less.title": "LESS", "less.completion.triggerPropertyValueCompletion.desc": "By default, VS Code triggers property value completion after selecting a CSS property. Use this setting to disable this behavior.", - "less.completion.completePropertyWithSemicolon.desc": "Insert semicolon at end of line when completing CSS properties", + "less.completion.completePropertyWithSemicolon.desc": "Insert semicolon at end of line when completing CSS properties.", "less.lint.argumentsInColorFunction.desc": "Invalid number of parameters.", "less.lint.boxModel.desc": "Do not use `width` or `height` when using `padding` or `border`.", "less.lint.compatibleVendorPrefixes.desc": "When using a vendor-specific prefix make sure to also include all other vendor-specific properties.", @@ -59,7 +59,7 @@ "less.hover.references": "Show references to MDN in LESS hovers.", "scss.title": "SCSS (Sass)", "scss.completion.triggerPropertyValueCompletion.desc": "By default, VS Code triggers property value completion after selecting a CSS property. Use this setting to disable this behavior.", - "scss.completion.completePropertyWithSemicolon.desc": "Insert semicolon at end of line when completing CSS properties", + "scss.completion.completePropertyWithSemicolon.desc": "Insert semicolon at end of line when completing CSS properties.", "scss.lint.argumentsInColorFunction.desc": "Invalid number of parameters.", "scss.lint.boxModel.desc": "Do not use `width` or `height` when using `padding` or `border`.", "scss.lint.compatibleVendorPrefixes.desc": "When using a vendor-specific prefix make sure to also include all other vendor-specific properties.", diff --git a/extensions/emmet/package.nls.json b/extensions/emmet/package.nls.json index 3ee2d4a057e..f8bbbc367fc 100644 --- a/extensions/emmet/package.nls.json +++ b/extensions/emmet/package.nls.json @@ -28,7 +28,7 @@ "emmetExtensionsPath": "Path to a folder containing Emmet profiles and snippets.", "emmetShowExpandedAbbreviation": "Shows expanded Emmet abbreviations as suggestions.\nThe option `\"inMarkupAndStylesheetFilesOnly\"` applies to html, haml, jade, slim, xml, xsl, css, scss, sass, less and stylus.\nThe option `\"always\"` applies to all parts of the file regardless of markup/css.", "emmetShowAbbreviationSuggestions": "Shows possible Emmet abbreviations as suggestions. Not applicable in stylesheets or when emmet.showExpandedAbbreviation is set to `\"never\"`.", - "emmetIncludeLanguages": "Enable Emmet abbreviations in languages that are not supported by default. Add a mapping here between the language and emmet supported language.\n E.g.: `{\"vue-html\": \"html\", \"javascript\": \"javascriptreact\"}`", + "emmetIncludeLanguages": "Enable Emmet abbreviations in languages that are not supported by default. Add a mapping here between the language and Emmet supported language.\n For example: `{\"vue-html\": \"html\", \"javascript\": \"javascriptreact\"}`", "emmetVariables": "Variables to be used in Emmet snippets", "emmetTriggerExpansionOnTab": "When enabled, Emmet abbreviations are expanded when pressing TAB.", "emmetPreferences": "Preferences used to modify behavior of some actions and resolvers of Emmet.", @@ -54,7 +54,7 @@ "emmetPreferencesCssOProperties": "Comma separated CSS properties that get the 'o' vendor prefix when used in Emmet abbreviation that starts with `-`. Set to empty string to always avoid the 'o' prefix.", "emmetPreferencesCssMsProperties": "Comma separated CSS properties that get the 'ms' vendor prefix when used in Emmet abbreviation that starts with `-`. Set to empty string to always avoid the 'ms' prefix.", "emmetPreferencesCssFuzzySearchMinScore": "The minimum score (from 0 to 1) that fuzzy-matched abbreviation should achieve. Lower values may produce many false-positive matches, higher values may reduce possible matches.", - "emmetOptimizeStylesheetParsing": "When set to `false`, the whole file is parsed to determine if current position is valid for expanding Emmet abbreviations. When set to `true`, only the content around the current position in css/scss/less files is parsed.", + "emmetOptimizeStylesheetParsing": "When set to `false`, the whole file is parsed to determine if current position is valid for expanding Emmet abbreviations. When set to `true`, only the content around the current position in CSS/SCSS/Less files is parsed.", "emmetPreferencesOutputReverseAttributes": "If `true`, reverses attribute merging directions when resolving snippets.", "emmetPreferencesCssColorShort": "If `true`, color values like #f will be expanded to #fff instead of #ffffff." } diff --git a/extensions/git/package.nls.json b/extensions/git/package.nls.json index 2d82fe61782..43f3228a629 100644 --- a/extensions/git/package.nls.json +++ b/extensions/git/package.nls.json @@ -100,7 +100,7 @@ "config.autoRepositoryDetection.subFolders": "Scan for subfolders of the currently opened folder.", "config.autoRepositoryDetection.openEditors": "Scan for parent folders of open files.", "config.autorefresh": "Whether auto refreshing is enabled.", - "config.autofetch": "When set to true, commits will automatically be fetched from the default remote of the current Git repository. Setting to `all` will fetch from all remotes", + "config.autofetch": "When set to true, commits will automatically be fetched from the default remote of the current Git repository. Setting to `all` will fetch from all remotes.", "config.autofetchPeriod": "Duration in seconds between each automatic git fetch, when `git.autofetch` is enabled.", "config.confirmSync": "Confirm before synchronizing git repositories.", "config.countBadge": "Controls the Git count badge.", @@ -126,7 +126,7 @@ "config.suggestSmartCommit": "Suggests to enable smart commit (commit all changes when there are no staged changes).", "config.enableCommitSigning": "Enables commit signing with GPG or X.509.", "config.discardAllScope": "Controls what changes are discarded by the `Discard all changes` command. `all` discards all changes. `tracked` discards only tracked files. `prompt` shows a prompt dialog every time the action is run.", - "config.decorations.enabled": "Controls whether Git contributes colors and badges to the explorer and the open editors view.", + "config.decorations.enabled": "Controls whether Git contributes colors and badges to the Explorer and the Open Editors view.", "config.enableStatusBarSync": "Controls whether the Git Sync command appears in the status bar.", "config.followTagsWhenSync": "Follow push all tags when running the sync command.", "config.promptToSaveFilesBeforeStash": "Controls whether Git should check for unsaved files before stashing changes.", @@ -177,11 +177,11 @@ "config.untrackedChanges.mixed": "All changes, tracked and untracked, appear together and behave equally.", "config.untrackedChanges.separate": "Untracked changes appear separately in the Source Control view. They are also excluded from several actions.", "config.untrackedChanges.hidden": "Untracked changes are hidden and excluded from several actions.", - "config.requireGitUserConfig": "Controls whether to require explicit Git user configuration or allow Git to guess if missing", + "config.requireGitUserConfig": "Controls whether to require explicit Git user configuration or allow Git to guess if missing.", "config.showCommitInput": "Controls whether to show the commit input in the Git source control panel.", "config.terminalAuthentication": "Controls whether to enable VS Code to be the authentication handler for git processes spawned in the integrated terminal. Note: terminals need to be restarted to pick up a change in this setting.", - "config.timeline.showAuthor": "Controls whether to show the commit author in the Timeline view", - "config.timeline.date": "Controls which date to use for items in the Timeline view", + "config.timeline.showAuthor": "Controls whether to show the commit author in the Timeline view.", + "config.timeline.date": "Controls which date to use for items in the Timeline view.", "config.timeline.date.committed": "Use the committed date", "config.timeline.date.authored": "Use the authored date", "config.useCommitInputAsStashMessage": "Controls whether to use the message from the commit input box as the default stash message.", diff --git a/extensions/html-language-features/package.nls.json b/extensions/html-language-features/package.nls.json index 49c63209140..32a3c7bcb7e 100644 --- a/extensions/html-language-features/package.nls.json +++ b/extensions/html-language-features/package.nls.json @@ -18,7 +18,7 @@ "html.format.wrapAttributes.forcealign": "Wrap each attribute except first and keep aligned.", "html.format.wrapAttributes.forcemultiline": "Wrap each attribute.", "html.format.wrapAttributes.alignedmultiple": "Wrap when line length is exceeded, align attributes vertically.", - "html.format.wrapAttributes.preserve": "Preserve wrapping of attributes", + "html.format.wrapAttributes.preserve": "Preserve wrapping of attributes.", "html.format.wrapAttributes.preservealigned": "Preserve wrapping of attributes but align.", "html.format.templating.desc": "Honor django, erb, handlebars and php templating language tags.", "html.format.unformattedContentDelimiter.desc": "Keep text content together between this string.", diff --git a/extensions/json-language-features/package.nls.json b/extensions/json-language-features/package.nls.json index 9315f7f2fed..42100504378 100644 --- a/extensions/json-language-features/package.nls.json +++ b/extensions/json-language-features/package.nls.json @@ -1,7 +1,7 @@ { "displayName": "JSON Language Features", "description": "Provides rich language support for JSON files.", - "json.schemas.desc": "Associate schemas to JSON files in the current project", + "json.schemas.desc": "Associate schemas to JSON files in the current project.", "json.schemas.url.desc": "A URL to a schema or a relative path to a schema in the current directory", "json.schemas.fileMatch.desc": "An array of file patterns to match against when resolving JSON files to schemas. `*` can be used as a wildcard. Exclusion patterns can also be defined and start with '!'. A file matches when there is at least one matching pattern and the last matching pattern is not an exclusion pattern.", "json.schemas.fileMatch.item.desc": "A file pattern that can contain '*' to match against when resolving JSON files to schemas.", diff --git a/extensions/markdown-language-features/package.nls.json b/extensions/markdown-language-features/package.nls.json index 6cf645a4103..ff874da0d7c 100644 --- a/extensions/markdown-language-features/package.nls.json +++ b/extensions/markdown-language-features/package.nls.json @@ -1,28 +1,28 @@ { "displayName": "Markdown Language Features", "description": "Provides rich language support for Markdown.", - "markdown.preview.breaks.desc": "Sets how line-breaks are rendered in the markdown preview. Setting it to 'true' creates a
for newlines inside paragraphs.", - "markdown.preview.linkify": "Enable or disable conversion of URL-like text to links in the markdown preview.", - "markdown.preview.doubleClickToSwitchToEditor.desc": "Double click in the markdown preview to switch to the editor.", - "markdown.preview.fontFamily.desc": "Controls the font family used in the markdown preview.", - "markdown.preview.fontSize.desc": "Controls the font size in pixels used in the markdown preview.", - "markdown.preview.lineHeight.desc": "Controls the line height used in the markdown preview. This number is relative to the font size.", - "markdown.preview.markEditorSelection.desc": "Mark the current editor selection in the markdown preview.", - "markdown.preview.scrollEditorWithPreview.desc": "When a markdown preview is scrolled, update the view of the editor.", - "markdown.preview.scrollPreviewWithEditor.desc": "When a markdown editor is scrolled, update the view of the preview.", + "markdown.preview.breaks.desc": "Sets how line-breaks are rendered in the Markdown preview. Setting it to 'true' creates a
for newlines inside paragraphs.", + "markdown.preview.linkify": "Enable or disable conversion of URL-like text to links in the Markdown preview.", + "markdown.preview.doubleClickToSwitchToEditor.desc": "Double click in the Markdown preview to switch to the editor.", + "markdown.preview.fontFamily.desc": "Controls the font family used in the Markdown preview.", + "markdown.preview.fontSize.desc": "Controls the font size in pixels used in the Markdown preview.", + "markdown.preview.lineHeight.desc": "Controls the line height used in the Markdown preview. This number is relative to the font size.", + "markdown.preview.markEditorSelection.desc": "Mark the current editor selection in the Markdown preview.", + "markdown.preview.scrollEditorWithPreview.desc": "When a Markdown preview is scrolled, update the view of the editor.", + "markdown.preview.scrollPreviewWithEditor.desc": "When a Markdown editor is scrolled, update the view of the preview.", "markdown.preview.title": "Open Preview", "markdown.previewSide.title": "Open Preview to the Side", "markdown.showLockedPreviewToSide.title": "Open Locked Preview to the Side", "markdown.showSource.title": "Show Source", - "markdown.styles.dec": "A list of URLs or local paths to CSS style sheets to use from the markdown preview. Relative paths are interpreted relative to the folder open in the explorer. If there is no open folder, they are interpreted relative to the location of the markdown file. All '\\' need to be written as '\\\\'.", + "markdown.styles.dec": "A list of URLs or local paths to CSS style sheets to use from the Markdown preview. Relative paths are interpreted relative to the folder open in the explorer. If there is no open folder, they are interpreted relative to the location of the Markdown file. All '\\' need to be written as '\\\\'.", "markdown.showPreviewSecuritySelector.title": "Change Preview Security Settings", - "markdown.trace.desc": "Enable debug logging for the markdown extension.", + "markdown.trace.desc": "Enable debug logging for the Markdown extension.", "markdown.preview.refresh.title": "Refresh Preview", "markdown.preview.toggleLock.title": "Toggle Preview Locking", - "configuration.markdown.preview.openMarkdownLinks.description": "Controls how links to other markdown files in the markdown preview should be opened.", - "configuration.markdown.preview.openMarkdownLinks.inEditor": "Try to open links in the editor", - "configuration.markdown.preview.openMarkdownLinks.inPreview": "Try to open links in the markdown preview", - "configuration.markdown.links.openLocation.description": "Controls where links in markdown files should be opened.", + "configuration.markdown.preview.openMarkdownLinks.description": "Controls how links to other Markdown files in the Markdown preview should be opened.", + "configuration.markdown.preview.openMarkdownLinks.inEditor": "Try to open links in the editor.", + "configuration.markdown.preview.openMarkdownLinks.inPreview": "Try to open links in the Markdown preview.", + "configuration.markdown.links.openLocation.description": "Controls where links in Markdown files should be opened.", "configuration.markdown.links.openLocation.currentGroup": "Open links in the active editor group.", "configuration.markdown.links.openLocation.beside": "Open links beside the active editor." } diff --git a/extensions/markdown-language-features/src/features/previewContentProvider.ts b/extensions/markdown-language-features/src/features/previewContentProvider.ts index beeeb569d2c..474b1864ed7 100644 --- a/extensions/markdown-language-features/src/features/previewContentProvider.ts +++ b/extensions/markdown-language-features/src/features/previewContentProvider.ts @@ -28,7 +28,7 @@ const previewStrings = { cspAlertMessageTitle: localize( 'preview.securityMessage.title', - 'Potentially unsafe or insecure content has been disabled in the markdown preview. Change the Markdown preview security setting to allow insecure content or enable scripts'), + 'Potentially unsafe or insecure content has been disabled in the Markdown preview. Change the Markdown preview security setting to allow insecure content or enable scripts'), cspAlertMessageLabel: localize( 'preview.securityMessage.label', diff --git a/extensions/testing-editor-contributions/package.nls.json b/extensions/testing-editor-contributions/package.nls.json index 83d8ef57167..f7535e8769d 100644 --- a/extensions/testing-editor-contributions/package.nls.json +++ b/extensions/testing-editor-contributions/package.nls.json @@ -14,6 +14,6 @@ "state.passed": "Passed", "state.passedWithDuration": "Passed in {0}", - "config.enableCodeLens": "Whether code lens on test cases and suites should be visible", + "config.enableCodeLens": "Whether CodeLens on test cases and suites should be visible.", "config.enableProblemDiagnostics": "Whether test failures should be reported in the 'problems' view and show as errors in the editor." } diff --git a/package.json b/package.json index 9e703297f00..ed0e1fce917 100644 --- a/package.json +++ b/package.json @@ -78,7 +78,7 @@ "sudo-prompt": "9.1.1", "tas-client-umd": "0.1.4", "v8-inspect-profiler": "^0.0.20", - "vscode-oniguruma": "1.5.0", + "vscode-oniguruma": "1.5.1", "vscode-proxy-agent": "^0.8.1", "vscode-regexpp": "^3.1.0", "vscode-ripgrep": "^1.11.1", diff --git a/remote/package.json b/remote/package.json index ac20cdb340f..9ee9d9c8f85 100644 --- a/remote/package.json +++ b/remote/package.json @@ -17,7 +17,7 @@ "nsfw": "^2.1.1", "spdlog": "^0.11.1", "tas-client-umd": "0.1.4", - "vscode-oniguruma": "1.5.0", + "vscode-oniguruma": "1.5.1", "vscode-proxy-agent": "^0.8.1", "vscode-regexpp": "^3.1.0", "vscode-ripgrep": "^1.11.1", diff --git a/remote/web/package.json b/remote/web/package.json index 67875bbbf78..332bcad0a34 100644 --- a/remote/web/package.json +++ b/remote/web/package.json @@ -6,7 +6,7 @@ "iconv-lite-umd": "0.6.8", "jschardet": "2.2.1", "tas-client-umd": "0.1.4", - "vscode-oniguruma": "1.5.0", + "vscode-oniguruma": "1.5.1", "vscode-textmate": "5.3.1", "xterm": "4.12.0-beta.3", "xterm-addon-search": "0.8.0", diff --git a/remote/web/yarn.lock b/remote/web/yarn.lock index 3f19c009920..90375966738 100644 --- a/remote/web/yarn.lock +++ b/remote/web/yarn.lock @@ -17,10 +17,10 @@ tas-client-umd@0.1.4: resolved "https://registry.yarnpkg.com/tas-client-umd/-/tas-client-umd-0.1.4.tgz#49db4130dd63a8342fabf77185a740fc6a7bea80" integrity sha512-1hFqJeLD3ryNikniIaO7TItlXhS5vx7bJ+wbPDf8o+IifgwwOWK2ARisdEM9SnJd0ccfcwNPG6Po+RiKn5L2hg== -vscode-oniguruma@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.5.0.tgz#d2235868efe933c5796fdc687cfcd644407259b1" - integrity sha512-5MgXSXvwy2GBy8BRi1Pegk+60LAHiY184cW93Fe1SmA9oPu8fRV3G9Yurbhkh/0hrb0E0/VK4JPieBX66gkftQ== +vscode-oniguruma@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.5.1.tgz#9ca10cd3ada128bd6380344ea28844243d11f695" + integrity sha512-JrBZH8DCC262TEYcYdeyZusiETu0Vli0xFgdRwNJjDcObcRjbmJP+IFcA3ScBwIXwgFHYKbAgfxtM/Cl+3Spjw== vscode-textmate@5.3.1: version "5.3.1" diff --git a/remote/yarn.lock b/remote/yarn.lock index 0b9155f0192..6cd4d611797 100644 --- a/remote/yarn.lock +++ b/remote/yarn.lock @@ -371,10 +371,10 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -vscode-oniguruma@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.5.0.tgz#d2235868efe933c5796fdc687cfcd644407259b1" - integrity sha512-5MgXSXvwy2GBy8BRi1Pegk+60LAHiY184cW93Fe1SmA9oPu8fRV3G9Yurbhkh/0hrb0E0/VK4JPieBX66gkftQ== +vscode-oniguruma@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.5.1.tgz#9ca10cd3ada128bd6380344ea28844243d11f695" + integrity sha512-JrBZH8DCC262TEYcYdeyZusiETu0Vli0xFgdRwNJjDcObcRjbmJP+IFcA3ScBwIXwgFHYKbAgfxtM/Cl+3Spjw== vscode-proxy-agent@^0.8.1: version "0.8.1" diff --git a/src/vs/editor/common/config/commonEditorConfig.ts b/src/vs/editor/common/config/commonEditorConfig.ts index c4218e2cefe..4a888eb21e7 100644 --- a/src/vs/editor/common/config/commonEditorConfig.ts +++ b/src/vs/editor/common/config/commonEditorConfig.ts @@ -509,7 +509,7 @@ const editorConfiguration: IConfigurationNode = { nls.localize('wordBasedSuggestionsMode.matchingDocuments', 'Suggest words from all open documents of the same language.'), nls.localize('wordBasedSuggestionsMode.allDocuments', 'Suggest words from all open documents.') ], - description: nls.localize('wordBasedSuggestionsMode', "Controls from what documents word based completions are computed.") + description: nls.localize('wordBasedSuggestionsMode', "Controls from which documents word based completions are computed.") }, 'editor.semanticHighlighting.enabled': { enum: [true, false, 'configuredByTheme'], diff --git a/src/vs/editor/common/config/editorOptions.ts b/src/vs/editor/common/config/editorOptions.ts index 7d5b3c3faa4..56bb100dd87 100644 --- a/src/vs/editor/common/config/editorOptions.ts +++ b/src/vs/editor/common/config/editorOptions.ts @@ -1402,8 +1402,8 @@ class EditorFind extends BaseEditorOption enum: ['never', 'always', 'multiline'], default: defaults.autoFindInSelection, enumDescriptions: [ - nls.localize('editor.find.autoFindInSelection.never', 'Never turn on Find in selection automatically (default)'), - nls.localize('editor.find.autoFindInSelection.always', 'Always turn on Find in selection automatically'), + nls.localize('editor.find.autoFindInSelection.never', 'Never turn on Find in selection automatically (default).'), + nls.localize('editor.find.autoFindInSelection.always', 'Always turn on Find in selection automatically.'), nls.localize('editor.find.autoFindInSelection.multiline', 'Turn on Find in selection automatically when multiple lines of content are selected.') ], description: nls.localize('find.autoFindInSelection', "Controls the condition for turning on find in selection automatically.") @@ -3990,7 +3990,7 @@ export const EditorOptions = { )), stickyTabStops: register(new EditorBooleanOption( EditorOption.stickyTabStops, 'stickyTabStops', false, - { description: nls.localize('stickyTabStops', "Emulate selection behaviour of tab characters when using spaces for indentation. Selection will stick to tab stops.") } + { description: nls.localize('stickyTabStops', "Emulate selection behavior of tab characters when using spaces for indentation. Selection will stick to tab stops.") } )), codeLens: register(new EditorBooleanOption( EditorOption.codeLens, 'codeLens', true, @@ -4294,7 +4294,7 @@ export const EditorOptions = { )), renderLineHighlightOnlyWhenFocus: register(new EditorBooleanOption( EditorOption.renderLineHighlightOnlyWhenFocus, 'renderLineHighlightOnlyWhenFocus', false, - { description: nls.localize('renderLineHighlightOnlyWhenFocus', "Controls if the editor should render the current line highlight only when the editor is focused") } + { description: nls.localize('renderLineHighlightOnlyWhenFocus', "Controls if the editor should render the current line highlight only when the editor is focused.") } )), renderValidationDecorations: register(new EditorStringEnumOption( EditorOption.renderValidationDecorations, 'renderValidationDecorations', @@ -4310,7 +4310,7 @@ export const EditorOptions = { '', nls.localize('renderWhitespace.boundary', "Render whitespace characters except for single spaces between words."), nls.localize('renderWhitespace.selection', "Render whitespace characters only on selected text."), - nls.localize('renderWhitespace.trailing', "Render only trailing whitespace characters"), + nls.localize('renderWhitespace.trailing', "Render only trailing whitespace characters."), '' ], description: nls.localize('renderWhitespace', "Controls how the editor should render whitespace characters.") diff --git a/src/vs/platform/request/common/request.ts b/src/vs/platform/request/common/request.ts index d14d210e430..0ab494b56e4 100644 --- a/src/vs/platform/request/common/request.ts +++ b/src/vs/platform/request/common/request.ts @@ -102,7 +102,7 @@ Registry.as(Extensions.Configuration) 'http.systemCertificates': { type: 'boolean', default: true, - description: localize('systemCertificates', "Controls whether CA certificates should be loaded from the OS. (On Windows and macOS a reload of the window is required after turning this off.)") + description: localize('systemCertificates', "Controls whether CA certificates should be loaded from the OS. (On Windows and macOS, a reload of the window is required after turning this off.)") } } }); diff --git a/src/vs/platform/update/common/update.config.contribution.ts b/src/vs/platform/update/common/update.config.contribution.ts index 60194ec1cae..bbc6be086fb 100644 --- a/src/vs/platform/update/common/update.config.contribution.ts +++ b/src/vs/platform/update/common/update.config.contribution.ts @@ -41,7 +41,7 @@ configurationRegistry.registerConfiguration({ default: true, scope: ConfigurationScope.APPLICATION, title: localize('enableWindowsBackgroundUpdatesTitle', "Enable Background Updates on Windows"), - description: localize('enableWindowsBackgroundUpdates', "Enable to download and install new VS Code Versions in the background on Windows"), + description: localize('enableWindowsBackgroundUpdates', "Enable to download and install new VS Code versions in the background on Windows."), included: isWindows && !isWeb }, 'update.showReleaseNotes': { diff --git a/src/vs/platform/windows/common/windows.ts b/src/vs/platform/windows/common/windows.ts index 41d08e82168..f835d4792ab 100644 --- a/src/vs/platform/windows/common/windows.ts +++ b/src/vs/platform/windows/common/windows.ts @@ -3,7 +3,7 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { isMacintosh, isLinux, isWeb, IProcessEnvironment } from 'vs/base/common/platform'; +import { isMacintosh, isLinux, isWeb, IProcessEnvironment, isNative } from 'vs/base/common/platform'; import { URI, UriComponents } from 'vs/base/common/uri'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { IWorkspaceIdentifier, ISingleFolderWorkspaceIdentifier } from 'vs/platform/workspaces/common/workspaces'; @@ -94,7 +94,7 @@ export function getMenuBarVisibility(configurationService: IConfigurationService const titleBarStyle = getTitleBarStyle(configurationService); const menuBarVisibility = configurationService.getValue('window.menuBarVisibility'); - if (menuBarVisibility === 'default' || (titleBarStyle === 'native' && menuBarVisibility === 'compact')) { + if (menuBarVisibility === 'default' || (titleBarStyle === 'native' && menuBarVisibility === 'compact') || (isMacintosh && isNative)) { return 'classic'; } else { return menuBarVisibility; diff --git a/src/vs/vscode.d.ts b/src/vs/vscode.d.ts index 32a328f59d5..e0f687fc93e 100644 --- a/src/vs/vscode.d.ts +++ b/src/vs/vscode.d.ts @@ -7800,6 +7800,13 @@ declare module 'vscode' { * from the user's workspace. */ readonly backupId?: string; + + /** + * If the URI is an untitled file, this will be populated with the byte data of that file + * + * If this is provided, your extension should utilize this byte data rather than executing fs APIs on the URI passed in + */ + readonly untitledDocumentData?: Uint8Array; } /** diff --git a/src/vs/vscode.proposed.d.ts b/src/vs/vscode.proposed.d.ts index 145bed60c4a..a26219662be 100644 --- a/src/vs/vscode.proposed.d.ts +++ b/src/vs/vscode.proposed.d.ts @@ -942,20 +942,6 @@ declare module 'vscode' { //#endregion - //#region Provide a way for custom editors to process untitled files without relying on textDocument https://github.com/microsoft/vscode/issues/115631 - /** - * Additional information about the opening custom document. - */ - interface CustomDocumentOpenContext { - /** - * If the URI is an untitled file, this will be populated with the byte data of that file - * - * If this is provided, your extension should utilize this byte data rather than executing fs APIs on the URI passed in - */ - readonly untitledDocumentData?: Uint8Array; - } - //#endregion - //#region https://github.com/microsoft/vscode/issues/106744, Notebooks (misc) export enum NotebookCellKind { diff --git a/src/vs/workbench/api/browser/mainThreadExtensionService.ts b/src/vs/workbench/api/browser/mainThreadExtensionService.ts index e918f18faf2..67d6345252a 100644 --- a/src/vs/workbench/api/browser/mainThreadExtensionService.ts +++ b/src/vs/workbench/api/browser/mainThreadExtensionService.ts @@ -122,7 +122,7 @@ export class MainThreadExtensionService implements MainThreadExtensionServiceSha } }); } else { - this._notificationService.error(localize('unknownDep', "Cannot activate the '{0}' extension because it depends on an unknown '{1}' extension .", extName, missingDependency)); + this._notificationService.error(localize('unknownDep', "Cannot activate the '{0}' extension because it depends on an unknown '{1}' extension.", extName, missingDependency)); } } diff --git a/src/vs/workbench/browser/parts/notifications/notificationsCommands.ts b/src/vs/workbench/browser/parts/notifications/notificationsCommands.ts index 84a733d0d30..409f9fa3248 100644 --- a/src/vs/workbench/browser/parts/notifications/notificationsCommands.ts +++ b/src/vs/workbench/browser/parts/notifications/notificationsCommands.ts @@ -90,7 +90,9 @@ export function registerNotificationCommands(center: INotificationsCenterControl handler: accessor => { const telemetryService = accessor.get(ITelemetryService); model.notifications.forEach(n => { - telemetryService.publicLog2('notification:hide', notificationToMetrics(n.message.original, n.sourceId, n.silent)); + if (n.visible) { + telemetryService.publicLog2('notification:hide', notificationToMetrics(n.message.original, n.sourceId, n.silent)); + } }); center.hide(); @@ -171,7 +173,9 @@ export function registerNotificationCommands(center: INotificationsCenterControl CommandsRegistry.registerCommand(HIDE_NOTIFICATION_TOAST, accessor => { const telemetryService = accessor.get(ITelemetryService); model.notifications.forEach(n => { - telemetryService.publicLog2('notification:hide', notificationToMetrics(n.message.original, n.sourceId, n.silent)); + if (n.visible) { + telemetryService.publicLog2('notification:hide', notificationToMetrics(n.message.original, n.sourceId, n.silent)); + } }); toasts.hide(); }); diff --git a/src/vs/workbench/browser/parts/titlebar/titlebarPart.ts b/src/vs/workbench/browser/parts/titlebar/titlebarPart.ts index f61347a8152..94f766ad69d 100644 --- a/src/vs/workbench/browser/parts/titlebar/titlebarPart.ts +++ b/src/vs/workbench/browser/parts/titlebar/titlebarPart.ts @@ -133,7 +133,7 @@ export class TitlebarPart extends Part implements ITitleService { this.titleUpdater.schedule(); } - if (this.titleBarStyle !== 'native') { + if (this.titleBarStyle !== 'native' && (!isMacintosh || isWeb)) { if (event.affectsConfiguration('window.menuBarVisibility')) { if (this.currentMenubarVisibility === 'compact') { this.uninstallMenubar(); diff --git a/src/vs/workbench/browser/workbench.contribution.ts b/src/vs/workbench/browser/workbench.contribution.ts index c0eafe86283..7e949a0be85 100644 --- a/src/vs/workbench/browser/workbench.contribution.ts +++ b/src/vs/workbench/browser/workbench.contribution.ts @@ -23,7 +23,7 @@ import { isStandalone } from 'vs/base/browser/browser'; enum: ['default', 'large'], enumDescriptions: [ localize('workbench.editor.titleScrollbarSizing.default', "The default size."), - localize('workbench.editor.titleScrollbarSizing.large', "Increases the size, so it can be grabbed more easily with the mouse") + localize('workbench.editor.titleScrollbarSizing.large', "Increases the size, so it can be grabbed more easily with the mouse.") ], description: localize('tabScrollbarHeight', "Controls the height of the scrollbars used for tabs and breadcrumbs in the editor title area."), default: 'default', @@ -40,7 +40,7 @@ import { isStandalone } from 'vs/base/browser/browser'; }, 'workbench.editor.scrollToSwitchTabs': { 'type': 'boolean', - 'markdownDescription': localize({ comment: ['This is the description for a setting. Values surrounded by single quotes are not to be translated.'], key: 'scrollToSwitchTabs' }, "Controls whether scrolling over tabs will open them or not. By default tabs will only reveal upon scrolling, but not open. You can press and hold the Shift-key while scrolling to change this behaviour for that duration. This value is ignored when `#workbench.editor.showTabs#` is disabled."), + 'markdownDescription': localize({ comment: ['This is the description for a setting. Values surrounded by single quotes are not to be translated.'], key: 'scrollToSwitchTabs' }, "Controls whether scrolling over tabs will open them or not. By default tabs will only reveal upon scrolling, but not open. You can press and hold the Shift-key while scrolling to change this behavior for that duration. This value is ignored when `#workbench.editor.showTabs#` is disabled."), 'default': false }, 'workbench.editor.highlightModifiedTabs': { @@ -174,7 +174,7 @@ import { isStandalone } from 'vs/base/browser/browser'; 'type': 'string', 'enum': ['right', 'down'], 'default': 'right', - 'markdownDescription': localize('sideBySideDirection', "Controls the default direction of editors that are opened side by side (e.g. from the explorer). By default, editors will open on the right hand side of the currently active one. If changed to `down`, the editors will open below the currently active one.") + 'markdownDescription': localize('sideBySideDirection', "Controls the default direction of editors that are opened side by side (for example, from the Explorer). By default, editors will open on the right hand side of the currently active one. If changed to `down`, the editors will open below the currently active one.") }, 'workbench.editor.closeEmptyGroups': { 'type': 'boolean', diff --git a/src/vs/workbench/common/notifications.ts b/src/vs/workbench/common/notifications.ts index 847f7fffaa7..9f854aa5fef 100644 --- a/src/vs/workbench/common/notifications.ts +++ b/src/vs/workbench/common/notifications.ts @@ -285,6 +285,7 @@ export interface INotificationViewItem { readonly progress: INotificationViewItemProgress; readonly expanded: boolean; + readonly visible: boolean; readonly canCollapse: boolean; readonly hasProgress: boolean; @@ -611,6 +612,10 @@ export class NotificationViewItem extends Disposable implements INotificationVie return this._actions; } + get visible(): boolean { + return this._visible; + } + updateSeverity(severity: Severity): void { this._severity = severity; this._onDidChangeContent.fire({ kind: NotificationViewItemContentChangeKind.SEVERITY }); diff --git a/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts b/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts index 89976ac0fb3..49010ad5e8e 100644 --- a/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts +++ b/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts @@ -156,7 +156,8 @@ Registry.as(ConfigurationExtensions.Configuration) 'extensions.confirmedUriHandlerExtensionIds': { type: 'array', description: localize('handleUriConfirmedExtensions', "When an extension is listed here, a confirmation prompt will not be shown when that extension handles a URI."), - default: [] + default: [], + scope: ConfigurationScope.APPLICATION }, 'extensions.webWorker': { type: 'boolean', diff --git a/src/vs/workbench/contrib/externalUriOpener/common/configuration.ts b/src/vs/workbench/contrib/externalUriOpener/common/configuration.ts index 83bd5a39828..94ea24e0a8d 100644 --- a/src/vs/workbench/contrib/externalUriOpener/common/configuration.ts +++ b/src/vs/workbench/contrib/externalUriOpener/common/configuration.ts @@ -39,7 +39,7 @@ export const externalUriOpenersConfigurationNode: IConfigurationNode = { properties: { [externalUriOpenersSettingId]: { type: 'object', - markdownDescription: nls.localize('externalUriOpeners', "Configure the opener to use for external uris (i.e. http, https)."), + markdownDescription: nls.localize('externalUriOpeners', "Configure the opener to use for external URIs (http, https)."), defaultSnippets: [{ body: { 'example.com': '$1' @@ -49,11 +49,11 @@ export const externalUriOpenersConfigurationNode: IConfigurationNode = { anyOf: [ { type: 'string', - markdownDescription: nls.localize('externalUriOpeners.uri', "Map uri pattern to an opener id.\nExample patterns: \n{0}", exampleUriPatterns), + markdownDescription: nls.localize('externalUriOpeners.uri', "Map URI pattern to an opener id.\nExample patterns: \n{0}", exampleUriPatterns), }, { type: 'string', - markdownDescription: nls.localize('externalUriOpeners.uri', "Map uri pattern to an opener id.\nExample patterns: \n{0}", exampleUriPatterns), + markdownDescription: nls.localize('externalUriOpeners.uri', "Map URI pattern to an opener id.\nExample patterns: \n{0}", exampleUriPatterns), enum: [defaultExternalUriOpenerId], enumDescriptions: [nls.localize('externalUriOpeners.defaultId', "Open using VS Code's standard opener.")], }, diff --git a/src/vs/workbench/contrib/notebook/browser/contrib/coreActions.ts b/src/vs/workbench/contrib/notebook/browser/contrib/coreActions.ts index 5394fedf200..9b16fd34c75 100644 --- a/src/vs/workbench/contrib/notebook/browser/contrib/coreActions.ts +++ b/src/vs/workbench/contrib/notebook/browser/contrib/coreActions.ts @@ -634,7 +634,7 @@ MenuRegistry.appendMenuItem(MenuId.EditorTitle, { }, order: -1, group: 'navigation', - when: ContextKeyExpr.and(executeNotebookCondition, ContextKeyExpr.or(NOTEBOOK_INTERRUPTIBLE_KERNEL.toNegated(), NOTEBOOK_HAS_RUNNING_CELL.toNegated())) + when: ContextKeyExpr.and(NOTEBOOK_IS_ACTIVE_EDITOR, executeNotebookCondition, ContextKeyExpr.or(NOTEBOOK_INTERRUPTIBLE_KERNEL.toNegated(), NOTEBOOK_HAS_RUNNING_CELL.toNegated())) }); MenuRegistry.appendMenuItem(MenuId.EditorTitle, { @@ -645,7 +645,7 @@ MenuRegistry.appendMenuItem(MenuId.EditorTitle, { }, order: -1, group: 'navigation', - when: ContextKeyExpr.and(NOTEBOOK_HAS_RUNNING_CELL, NOTEBOOK_INTERRUPTIBLE_KERNEL) + when: ContextKeyExpr.and(NOTEBOOK_IS_ACTIVE_EDITOR, NOTEBOOK_HAS_RUNNING_CELL, NOTEBOOK_INTERRUPTIBLE_KERNEL) }); registerAction2(class extends NotebookCellAction { @@ -1521,7 +1521,7 @@ registerAction2(class extends NotebookAction { title: localize('clearAllCellsOutputs', 'Clear All Cells Outputs'), menu: { id: MenuId.EditorTitle, - // when: NOTEBOOK_IS_ACTIVE_EDITOR, + when: NOTEBOOK_IS_ACTIVE_EDITOR, group: 'navigation', order: 0 }, diff --git a/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.ts b/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.ts index ee50568a487..1117b83ee55 100644 --- a/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.ts +++ b/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.ts @@ -522,6 +522,7 @@ export class NotebookEditorWidget extends Disposable implements INotebookEditor private _createBody(parent: HTMLElement): void { this._notebookTopToolbarContainer = document.createElement('div'); this._notebookTopToolbarContainer.classList.add('notebook-top-toolbar'); + this._notebookTopToolbarContainer.style.display = 'none'; DOM.append(parent, this._notebookTopToolbarContainer); this._body = document.createElement('div'); this._body.classList.add('cell-list-container'); @@ -1413,7 +1414,7 @@ export class NotebookEditorWidget extends Disposable implements INotebookEditor this._dimension = new DOM.Dimension(dimension.width, dimension.height); DOM.size(this._body, dimension.width, dimension.height - (this._useGlobalToolbar ? /** Toolbar height */ 26 : 0)); - this._list.updateOptions({ additionalScrollHeight: this._scrollBeyondLastLine ? dimension.height - SCROLLABLE_ELEMENT_PADDING_TOP : 0 }); + this._list.updateOptions({ additionalScrollHeight: this._scrollBeyondLastLine ? dimension.height - SCROLLABLE_ELEMENT_PADDING_TOP : SCROLLABLE_ELEMENT_PADDING_TOP }); this._list.layout(dimension.height - SCROLLABLE_ELEMENT_PADDING_TOP, dimension.width); this._overlayContainer.style.visibility = 'visible'; diff --git a/src/vs/workbench/contrib/notebook/browser/view/notebookCellList.ts b/src/vs/workbench/contrib/notebook/browser/view/notebookCellList.ts index 48e538404a5..1e8740af512 100644 --- a/src/vs/workbench/contrib/notebook/browser/view/notebookCellList.ts +++ b/src/vs/workbench/contrib/notebook/browser/view/notebookCellList.ts @@ -1094,8 +1094,8 @@ export class NotebookCellList extends WorkbenchList implements ID this.view.setScrollTop(this.view.elementTop(viewIndex) - this.view.renderHeight / 2); break; case CellRevealPosition.Bottom: - this.view.setScrollTop(elementBottom - this.view.renderHeight); - this.view.setScrollTop(this.view.elementTop(viewIndex) + this.view.elementHeight(viewIndex) - this.view.renderHeight); + this.view.setScrollTop(this.scrollTop + (elementBottom - wrapperBottom)); + this.view.setScrollTop(this.scrollTop + (this.view.elementTop(viewIndex) + this.view.elementHeight(viewIndex) - this.getViewScrollBottom())); break; default: break; diff --git a/src/vs/workbench/contrib/notebook/test/notebookCellList.test.ts b/src/vs/workbench/contrib/notebook/test/notebookCellList.test.ts new file mode 100644 index 00000000000..7dcd5cff66f --- /dev/null +++ b/src/vs/workbench/contrib/notebook/test/notebookCellList.test.ts @@ -0,0 +1,218 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import * as assert from 'assert'; +import { SCROLLABLE_ELEMENT_PADDING_TOP } from 'vs/workbench/contrib/notebook/browser/constants'; +import { CellKind } from 'vs/workbench/contrib/notebook/common/notebookCommon'; +import { createNotebookCellList, setupInstantiationService, withTestNotebook } from 'vs/workbench/contrib/notebook/test/testNotebookEditor'; + +suite('NotebookCellList', () => { + const instantiationService = setupInstantiationService(); + + test('revealElementsInView: reveal fully visible cell should not scroll', async function () { + await withTestNotebook( + [ + ['# header a', 'markdown', CellKind.Markdown, [], {}], + ['var b = 1;', 'javascript', CellKind.Code, [], {}], + ['# header b', 'markdown', CellKind.Markdown, [], {}], + ['var b = 2;', 'javascript', CellKind.Code, [], {}], + ['# header c', 'markdown', CellKind.Markdown, [], {}] + ], + async (editor) => { + const viewModel = editor.viewModel; + viewModel.restoreEditorViewState({ + editingCells: [false, false, false, false, false], + editorViewStates: [null, null, null, null, null], + cellTotalHeights: [50, 100, 50, 100, 50] + }); + + const cellList = createNotebookCellList(instantiationService); + cellList.attachViewModel(viewModel); + + // render height 210, it can render 3 full cells and 1 partial cell + cellList.layout(210 + SCROLLABLE_ELEMENT_PADDING_TOP, 100); + // scroll a bit, scrollTop to bottom: 5, 215 + cellList.scrollTop = 5; + + // init scrollTop and scrollBottom + assert.deepStrictEqual(cellList.scrollTop, 5); + assert.deepStrictEqual(cellList.getViewScrollBottom(), 215); + + // reveal cell 1, top 50, bottom 150, which is fully visible in the viewport + cellList.revealElementsInView({ start: 1, end: 2 }); + assert.deepStrictEqual(cellList.scrollTop, 5); + assert.deepStrictEqual(cellList.getViewScrollBottom(), 215); + + // reveal cell 2, top 150, bottom 200, which is fully visible in the viewport + cellList.revealElementsInView({ start: 2, end: 3 }); + assert.deepStrictEqual(cellList.scrollTop, 5); + assert.deepStrictEqual(cellList.getViewScrollBottom(), 215); + + // reveal cell 3, top 200, bottom 300, which is partially visible in the viewport + cellList.revealElementsInView({ start: 3, end: 4 }); + assert.deepStrictEqual(cellList.scrollTop, 90); + }); + }); + + test('revealElementsInView: reveal partially visible cell', async function () { + await withTestNotebook( + [ + ['# header a', 'markdown', CellKind.Markdown, [], {}], + ['var b = 1;', 'javascript', CellKind.Code, [], {}], + ['# header b', 'markdown', CellKind.Markdown, [], {}], + ['var b = 2;', 'javascript', CellKind.Code, [], {}], + ['# header c', 'markdown', CellKind.Markdown, [], {}] + ], + async (editor) => { + const viewModel = editor.viewModel; + viewModel.restoreEditorViewState({ + editingCells: [false, false, false, false, false], + editorViewStates: [null, null, null, null, null], + cellTotalHeights: [50, 100, 50, 100, 50] + }); + + const cellList = createNotebookCellList(instantiationService); + cellList.attachViewModel(viewModel); + + // render height 210, it can render 3 full cells and 1 partial cell + cellList.layout(210 + SCROLLABLE_ELEMENT_PADDING_TOP, 100); + + // init scrollTop and scrollBottom + assert.deepStrictEqual(cellList.scrollTop, 0); + assert.deepStrictEqual(cellList.getViewScrollBottom(), 210); + + // reveal cell 3, top 200, bottom 300, which is partially visible in the viewport + cellList.revealElementsInView({ start: 3, end: 4 }); + assert.deepStrictEqual(cellList.scrollTop, 90); + + // scroll to 5 + cellList.scrollTop = 5; + assert.deepStrictEqual(cellList.scrollTop, 5); + assert.deepStrictEqual(cellList.getViewScrollBottom(), 215); + + // reveal cell 0, top 0, bottom 50 + cellList.revealElementsInView({ start: 0, end: 1 }); + assert.deepStrictEqual(cellList.scrollTop, 0); + }); + }); + + test('revealElementsInView: reveal cell out of viewport', async function () { + await withTestNotebook( + [ + ['# header a', 'markdown', CellKind.Markdown, [], {}], + ['var b = 1;', 'javascript', CellKind.Code, [], {}], + ['# header b', 'markdown', CellKind.Markdown, [], {}], + ['var b = 2;', 'javascript', CellKind.Code, [], {}], + ['# header c', 'markdown', CellKind.Markdown, [], {}] + ], + async (editor) => { + const viewModel = editor.viewModel; + viewModel.restoreEditorViewState({ + editingCells: [false, false, false, false, false], + editorViewStates: [null, null, null, null, null], + cellTotalHeights: [50, 100, 50, 100, 50] + }); + + const cellList = createNotebookCellList(instantiationService); + // without additionalscrollheight, the last 20 px will always be hidden due to `SCROLLABLE_ELEMENT_PADDING_TOP` + cellList.updateOptions({ additionalScrollHeight: 100 }); + cellList.attachViewModel(viewModel); + + // render height 210, it can render 3 full cells and 1 partial cell + cellList.layout(210 + SCROLLABLE_ELEMENT_PADDING_TOP, 100); + + // init scrollTop and scrollBottom + assert.deepStrictEqual(cellList.scrollTop, 0); + assert.deepStrictEqual(cellList.getViewScrollBottom(), 210); + + cellList.revealElementsInView({ start: 4, end: 5 }); + assert.deepStrictEqual(cellList.scrollTop, 140); + // assert.deepStrictEqual(cellList.getViewScrollBottom(), 330); + }); + }); + + test('updateElementHeight', async function () { + await withTestNotebook( + [ + ['# header a', 'markdown', CellKind.Markdown, [], {}], + ['var b = 1;', 'javascript', CellKind.Code, [], {}], + ['# header b', 'markdown', CellKind.Markdown, [], {}], + ['var b = 2;', 'javascript', CellKind.Code, [], {}], + ['# header c', 'markdown', CellKind.Markdown, [], {}] + ], + async (editor) => { + const viewModel = editor.viewModel; + viewModel.restoreEditorViewState({ + editingCells: [false, false, false, false, false], + editorViewStates: [null, null, null, null, null], + cellTotalHeights: [50, 100, 50, 100, 50] + }); + + const cellList = createNotebookCellList(instantiationService); + cellList.attachViewModel(viewModel); + + // render height 210, it can render 3 full cells and 1 partial cell + cellList.layout(210 + SCROLLABLE_ELEMENT_PADDING_TOP, 100); + + // init scrollTop and scrollBottom + assert.deepStrictEqual(cellList.scrollTop, 0); + assert.deepStrictEqual(cellList.getViewScrollBottom(), 210); + + cellList.updateElementHeight(0, 60); + assert.deepStrictEqual(cellList.scrollTop, 0); + + // scroll to 5 + cellList.scrollTop = 5; + assert.deepStrictEqual(cellList.scrollTop, 5); + assert.deepStrictEqual(cellList.getViewScrollBottom(), 215); + + cellList.updateElementHeight(0, 80); + assert.deepStrictEqual(cellList.scrollTop, 5); + }); + }); + + test.skip('updateElementHeight with anchor', async function () { + await withTestNotebook( + [ + ['# header a', 'markdown', CellKind.Markdown, [], {}], + ['var b = 1;', 'javascript', CellKind.Code, [], {}], + ['# header b', 'markdown', CellKind.Markdown, [], {}], + ['var b = 2;', 'javascript', CellKind.Code, [], {}], + ['# header c', 'markdown', CellKind.Markdown, [], {}] + ], + async (editor) => { + // await new Promise(c => setTimeout(c, 3000)); + + const viewModel = editor.viewModel; + viewModel.restoreEditorViewState({ + editingCells: [false, false, false, false, false], + editorViewStates: [null, null, null, null, null], + cellTotalHeights: [50, 100, 50, 100, 50] + }); + + const cellList = createNotebookCellList(instantiationService); + cellList.attachViewModel(viewModel); + + // render height 210, it can render 3 full cells and 1 partial cell + cellList.layout(210 + SCROLLABLE_ELEMENT_PADDING_TOP, 100); + + // init scrollTop and scrollBottom + assert.deepStrictEqual(cellList.scrollTop, 0); + assert.deepStrictEqual(cellList.getViewScrollBottom(), 210); + + // scroll to 5 + cellList.scrollTop = 5; + assert.deepStrictEqual(cellList.scrollTop, 5); + assert.deepStrictEqual(cellList.getViewScrollBottom(), 215); + + cellList.setFocus([1]); + cellList.updateElementHeight2(viewModel.viewCells[0], 100); + assert.deepStrictEqual(cellList.scrollHeight, 400); + + // bug! + assert.deepStrictEqual(cellList.scrollTop, 55); + }); + }); +}); diff --git a/src/vs/workbench/contrib/notebook/test/testNotebookEditor.ts b/src/vs/workbench/contrib/notebook/test/testNotebookEditor.ts index a185fd99111..07ce949cf95 100644 --- a/src/vs/workbench/contrib/notebook/test/testNotebookEditor.ts +++ b/src/vs/workbench/contrib/notebook/test/testNotebookEditor.ts @@ -18,7 +18,7 @@ import { IUndoRedoService } from 'vs/platform/undoRedo/common/undoRedo'; import { EditorModel } from 'vs/workbench/common/editor'; import { ICellViewModel, IActiveNotebookEditor } from 'vs/workbench/contrib/notebook/browser/notebookBrowser'; import { NotebookEventDispatcher } from 'vs/workbench/contrib/notebook/browser/viewModel/eventDispatcher'; -import { NotebookViewModel } from 'vs/workbench/contrib/notebook/browser/viewModel/notebookViewModel'; +import { CellViewModel, NotebookViewModel } from 'vs/workbench/contrib/notebook/browser/viewModel/notebookViewModel'; import { NotebookCellTextModel } from 'vs/workbench/contrib/notebook/common/model/notebookCellTextModel'; import { NotebookTextModel } from 'vs/workbench/contrib/notebook/common/model/notebookTextModel'; import { CellKind, CellUri, ICellRange, INotebookEditorModel, IOutputDto, IResolvedNotebookEditorModel, NotebookCellMetadata, notebookDocumentMetadataDefaults } from 'vs/workbench/contrib/notebook/common/notebookCommon'; @@ -185,8 +185,8 @@ export async function withTestNotebook(cells: [source: string, lang: st } export function createNotebookCellList(instantiationService: TestInstantiationService) { - const delegate: IListVirtualDelegate = { - getHeight() { return 20; }, + const delegate: IListVirtualDelegate = { + getHeight(element: CellViewModel) { return element.getHeight(17); }, getTemplateId() { return 'template'; } }; diff --git a/src/vs/workbench/contrib/search/browser/search.contribution.ts b/src/vs/workbench/contrib/search/browser/search.contribution.ts index 563440c49d0..9feb3fed98d 100644 --- a/src/vs/workbench/contrib/search/browser/search.contribution.ts +++ b/src/vs/workbench/contrib/search/browser/search.contribution.ts @@ -852,8 +852,8 @@ configurationRegistry.registerConfiguration({ markdownDescription: nls.localize('search.mode', "Controls where new `Search: Find in Files` and `Find in Folder` operations occur: either in the sidebar's search view, or in a search editor"), enumDescriptions: [ nls.localize('search.mode.view', "Search in the search view, either in the panel or sidebar."), - nls.localize('search.mode.reuseEditor', "Search in an existing search editor if present, otherwise in a new search editor"), - nls.localize('search.mode.newEditor', "Search in a new search editor"), + nls.localize('search.mode.reuseEditor', "Search in an existing search editor if present, otherwise in a new search editor."), + nls.localize('search.mode.newEditor', "Search in a new search editor."), ] }, 'search.useRipgrep': { @@ -993,7 +993,7 @@ configurationRegistry.registerConfiguration({ 'search.searchEditor.reusePriorSearchConfiguration': { type: 'boolean', default: false, - markdownDescription: nls.localize({ key: 'search.searchEditor.reusePriorSearchConfiguration', comment: ['"Search Editor" is a type of editor that can display search results. "includes, excludes, and flags" refers to the "files to include" and "files to exclude" input boxes, and the flags that control whether a query is case-sensitive or a regex.'] }, "When enabled, new Search Editors will reuse the includes, excludes, and flags of the previously opened Search Editor") + markdownDescription: nls.localize({ key: 'search.searchEditor.reusePriorSearchConfiguration', comment: ['"Search Editor" is a type of editor that can display search results. "includes, excludes, and flags" refers to the "files to include" and "files to exclude" input boxes, and the flags that control whether a query is case-sensitive or a regex.'] }, "When enabled, new Search Editors will reuse the includes, excludes, and flags of the previously opened Search Editor.") }, 'search.searchEditor.defaultNumberOfContextLines': { type: ['number', 'null'], diff --git a/src/vs/workbench/contrib/terminal/browser/terminalActions.ts b/src/vs/workbench/contrib/terminal/browser/terminalActions.ts index 0e8e86049e8..406a7170fa0 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalActions.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalActions.ts @@ -669,6 +669,7 @@ export function registerTerminalActions() { const terminalService = accessor.get(ITerminalService); const labelService = accessor.get(ILabelService); const remoteAgentService = accessor.get(IRemoteAgentService); + const notificationService = accessor.get(INotificationService); const offProcTerminalService = remoteAgentService.getConnection() ? accessor.get(IRemoteTerminalService) : accessor.get(ILocalTerminalService); const remoteTerms = await offProcTerminalService.listProcesses(); const unattachedTerms = remoteTerms.filter(term => !terminalService.isAttachedToTerminal(term)); @@ -681,6 +682,10 @@ export function registerTerminalActions() { term }; }); + if (items.length === 0) { + notificationService.info(localize('noUnattachedTerminals', 'There are no unattached terminals to attach to')); + return; + } const selected = await quickInputService.pick(items, { canPickMany: false }); if (selected) { const instance = terminalService.createTerminal({ attachPersistentProcess: selected.term }); @@ -1473,7 +1478,7 @@ export function registerTerminalActions() { if (launchConfig) { const workspaceShellAllowed = terminalService.configHelper.checkIsProcessLaunchSafe(undefined, launchConfig); if (workspaceShellAllowed) { - const instance = terminalService.createTerminal({ executable: launchConfig.path, args: launchConfig.args, name: launchConfig.overrideName }); + const instance = terminalService.createTerminal({ executable: launchConfig.path, args: launchConfig.args, name: launchConfig.overrideName ? launchConfig.profileName : undefined }); terminalService.setActiveInstance(instance); } } else { diff --git a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts index 9361a986d84..a92307ead3b 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts @@ -32,7 +32,7 @@ import { TerminalLinkManager } from 'vs/workbench/contrib/terminal/browser/links import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility'; import { ITerminalInstanceService, ITerminalInstance, ITerminalExternalLinkProvider } from 'vs/workbench/contrib/terminal/browser/terminal'; import { TerminalProcessManager } from 'vs/workbench/contrib/terminal/browser/terminalProcessManager'; -import type { Terminal as XTermTerminal, IBuffer, ITerminalAddon } from 'xterm'; +import type { Terminal as XTermTerminal, IBuffer, ITerminalAddon, RendererType } from 'xterm'; import type { SearchAddon, ISearchOptions } from 'xterm-addon-search'; import type { Unicode11Addon } from 'xterm-addon-unicode11'; import type { WebglAddon } from 'xterm-addon-webgl'; @@ -404,6 +404,14 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { const font = this._configHelper.getFont(undefined, true); const config = this._configHelper.config; const editorOptions = this._configurationService.getValue('editor'); + let xtermRendererType: RendererType; + if (config.rendererType === 'auto') { + // Set the builtin renderer to canvas, even when webgl is being used since it's an addon + const suggestedRendererType = this._storageService.get(SUGGESTED_RENDERER_TYPE, StorageScope.GLOBAL); + xtermRendererType = suggestedRendererType === 'dom' ? 'dom' : 'canvas'; + } else { + xtermRendererType = config.rendererType === 'experimentalWebgl' ? 'canvas' : config.rendererType; + } const xterm = new Terminal({ altClickMovesCursor: config.altClickMovesCursor && editorOptions.multiCursorModifier === 'alt', @@ -424,7 +432,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { fastScrollModifier: 'alt', fastScrollSensitivity: editorOptions.fastScrollSensitivity, scrollSensitivity: editorOptions.mouseWheelScrollSensitivity, - rendererType: (config.rendererType === 'auto' || config.rendererType === 'experimentalWebgl') ? 'canvas' : config.rendererType, + rendererType: xtermRendererType, wordSeparator: config.wordSeparators }); this._xterm = xterm; @@ -529,7 +537,9 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { this._wrapperElement.appendChild(this._xtermElement); this._container.appendChild(this._wrapperElement); xterm.open(this._xtermElement); - if (this._configHelper.config.rendererType === 'experimentalWebgl') { + + const suggestedRendererType = this._storageService.get(SUGGESTED_RENDERER_TYPE, StorageScope.GLOBAL); + if (this._configHelper.config.rendererType === 'auto' && (suggestedRendererType === 'auto' || suggestedRendererType === undefined) || this._configHelper.config.rendererType === 'experimentalWebgl') { this._enableWebglRenderer(); } @@ -672,33 +682,37 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { const frameTimes: number[] = []; const textRenderLayer = this._xtermCore!._renderService._renderer._renderLayers[0]; const originalOnGridChanged = textRenderLayer.onGridChanged; - const evaluateCanvasRenderer = () => { // Discard first frame time as it's normal to take longer frameTimes.shift(); const medianTime = frameTimes.sort((a, b) => a - b)[Math.floor(frameTimes.length / 2)]; if (medianTime > SLOW_CANVAS_RENDER_THRESHOLD) { - const promptChoices: IPromptChoice[] = [ - { - label: nls.localize('yes', "Yes"), - run: () => this._configurationService.updateValue('terminal.integrated.rendererType', 'dom', ConfigurationTarget.USER) - } as IPromptChoice, - { - label: nls.localize('no', "No"), - run: () => { } - } as IPromptChoice, - { - label: nls.localize('dontShowAgain', "Don't Show Again"), - isSecondary: true, - run: () => this._storageService.store(NEVER_MEASURE_RENDER_TIME_STORAGE_KEY, true, StorageScope.GLOBAL, StorageTarget.MACHINE) - } as IPromptChoice - ]; - this._notificationService.prompt( - Severity.Warning, - nls.localize('terminal.slowRendering', 'The standard renderer for the integrated terminal appears to be slow on your computer. Would you like to switch to the alternative DOM-based renderer which may improve performance? [Read more about terminal settings](https://code.visualstudio.com/docs/editor/integrated-terminal#_changing-how-the-terminal-is-rendered).'), - promptChoices - ); + if (this._configHelper.config.rendererType === 'auto') { + this._storageService.store(SUGGESTED_RENDERER_TYPE, 'dom', StorageScope.GLOBAL, StorageTarget.MACHINE); + this.updateConfig(); + } else { + const promptChoices: IPromptChoice[] = [ + { + label: nls.localize('yes', "Yes"), + run: () => this._configurationService.updateValue('terminal.integrated.rendererType', 'dom', ConfigurationTarget.USER) + } as IPromptChoice, + { + label: nls.localize('no', "No"), + run: () => { } + } as IPromptChoice, + { + label: nls.localize('dontShowAgain', "Don't Show Again"), + isSecondary: true, + run: () => this._storageService.store(NEVER_MEASURE_RENDER_TIME_STORAGE_KEY, true, StorageScope.GLOBAL, StorageTarget.MACHINE) + } as IPromptChoice + ]; + this._notificationService.prompt( + Severity.Warning, + nls.localize('terminal.slowRendering', 'The standard renderer for the integrated terminal appears to be slow on your computer. Would you like to switch to the alternative DOM-based renderer which may improve performance? [Read more about terminal settings](https://code.visualstudio.com/docs/editor/integrated-terminal#_changing-how-the-terminal-is-rendered).'), + promptChoices + ); + } } }; @@ -1255,11 +1269,11 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { this._safeSetOption('rightClickSelectsWord', config.rightClickBehavior === 'selectWord'); this._safeSetOption('wordSeparator', config.wordSeparators); const suggestedRendererType = this._storageService.get(SUGGESTED_RENDERER_TYPE, StorageScope.GLOBAL); - if ((suggestedRendererType === 'auto' && config.rendererType === 'auto') || config.rendererType === 'experimentalWebgl') { + if ((config.rendererType === 'auto' && suggestedRendererType === undefined) || config.rendererType === 'experimentalWebgl') { this._enableWebglRenderer(); } else { this._disposeOfWebglRenderer(); - this._safeSetOption('rendererType', config.rendererType === 'auto' ? 'canvas' : config.rendererType); + this._safeSetOption('rendererType', (config.rendererType === 'auto' && suggestedRendererType === 'dom') ? 'dom' : (config.rendererType === 'dom' ? 'dom' : 'canvas')); } this._refreshEnvironmentVariableInfoWidgetState(this._processManager.environmentVariableInfo); } @@ -1287,7 +1301,11 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { } private _disposeOfWebglRenderer(): void { - this._webglAddon?.dispose(); + try { + this._webglAddon?.dispose(); + } catch { + // ignore + } this._webglAddon = undefined; } diff --git a/src/vs/workbench/contrib/terminal/common/terminal.ts b/src/vs/workbench/contrib/terminal/common/terminal.ts index c27c0127256..2b433cd07f8 100644 --- a/src/vs/workbench/contrib/terminal/common/terminal.ts +++ b/src/vs/workbench/contrib/terminal/common/terminal.ts @@ -237,7 +237,7 @@ export interface ITerminalProfile { isAutoDetected?: boolean; isWorkspaceProfile?: boolean; args?: string | string[] | undefined; - overrideName?: string; + overrideName?: boolean; } export const enum ProfileSource { @@ -249,13 +249,13 @@ export interface ITerminalExecutable { path: string | string[]; args?: string | string[] | undefined; isAutoDetected?: boolean; - overrideName?: string; + overrideName?: boolean; } export interface ITerminalProfileSource { source: ProfileSource; isAutoDetected?: boolean; - overrideName?: string; + overrideName?: boolean; } export type ITerminalProfileObject = ITerminalExecutable | ITerminalProfileSource | null; diff --git a/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts b/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts index 63a48fd4020..9ed0ab4e5b0 100644 --- a/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts +++ b/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts @@ -29,8 +29,8 @@ const terminalProfileSchema: IJSONSchema = { } }, overrideName: { - description: localize('terminalProfile.overrideName', 'An optional name for the terminal which will override the detected one.'), - type: 'string' + description: localize('terminalProfile.overrideName', 'Controls whether or not the profile name overrides the auto detected one.'), + type: 'boolean' } } }; @@ -141,11 +141,12 @@ export const terminalConfiguration: IConfigurationNode = { enum: ['PowerShell', 'Git Bash'] }, overrideName: { - description: localize('terminalProfile.overrideName', 'An optional name for the terminal which will override the detected one.'), - type: 'string' + description: localize('terminalProfile.overrideName', 'Controls whether or not the profile name overrides the auto detected one.'), + type: 'boolean' } } }, + { type: 'null' }, terminalProfileSchema ] } @@ -173,7 +174,12 @@ export const terminalConfiguration: IConfigurationNode = { path: 'tmux' } }, - additionalProperties: terminalProfileSchema + additionalProperties: { + 'anyOf': [ + { type: 'null' }, + terminalProfileSchema + ] + } }, 'terminal.integrated.profiles.linux': { markdownDescription: localize( @@ -198,7 +204,12 @@ export const terminalConfiguration: IConfigurationNode = { path: 'tmux' } }, - additionalProperties: terminalProfileSchema + additionalProperties: { + 'anyOf': [ + { type: 'null' }, + terminalProfileSchema + ] + } }, 'terminal.integrated.showQuickLaunchWslProfiles': { description: localize('terminal.integrated.showQuickLaunchWslProfiles', 'Controls whether or not WSL distros are shown in the quick launch dropdown'), diff --git a/src/vs/workbench/contrib/terminal/node/terminalProfiles.ts b/src/vs/workbench/contrib/terminal/node/terminalProfiles.ts index abd390c4b2f..5190e77ab83 100644 --- a/src/vs/workbench/contrib/terminal/node/terminalProfiles.ts +++ b/src/vs/workbench/contrib/terminal/node/terminalProfiles.ts @@ -228,7 +228,7 @@ function applyConfigProfilesToMap(configProfiles: { [key: string]: ITerminalProf } } -async function validateProfilePaths(profileName: string, potentialPaths: string[], statProvider?: IStatProvider, args?: string[] | string, overrideName?: string, isAutoDetected?: boolean, logService?: ILogService): Promise { +async function validateProfilePaths(profileName: string, potentialPaths: string[], statProvider?: IStatProvider, args?: string[] | string, overrideName?: boolean, isAutoDetected?: boolean, logService?: ILogService): Promise { if (potentialPaths.length === 0) { return Promise.resolve(undefined); } diff --git a/src/vs/workbench/contrib/timeline/browser/timeline.contribution.ts b/src/vs/workbench/contrib/timeline/browser/timeline.contribution.ts index 212f827bfee..a6fda536707 100644 --- a/src/vs/workbench/contrib/timeline/browser/timeline.contribution.ts +++ b/src/vs/workbench/contrib/timeline/browser/timeline.contribution.ts @@ -55,17 +55,17 @@ configurationRegistry.registerConfiguration({ 'null' ], default: null, - description: localize('timeline.excludeSources', "An array of Timeline sources that should be excluded from the Timeline view"), + description: localize('timeline.excludeSources', "An array of Timeline sources that should be excluded from the Timeline view."), }, 'timeline.pageSize': { type: ['number', 'null'], default: null, - markdownDescription: localize('timeline.pageSize', "The number of items to show in the Timeline view by default and when loading more items. Setting to `null` (the default) will automatically choose a page size based on the visible area of the Timeline view"), + markdownDescription: localize('timeline.pageSize', "The number of items to show in the Timeline view by default and when loading more items. Setting to `null` (the default) will automatically choose a page size based on the visible area of the Timeline view."), }, 'timeline.pageOnScroll': { type: 'boolean', default: false, - description: localize('timeline.pageOnScroll', "Experimental. Controls whether the Timeline view will load the next page of items when you scroll to the end of the list"), + description: localize('timeline.pageOnScroll', "Experimental. Controls whether the Timeline view will load the next page of items when you scroll to the end of the list."), }, } }); diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/gettingStartedContent.ts b/src/vs/workbench/contrib/welcome/gettingStarted/common/gettingStartedContent.ts index 7b970db896f..0f4eb88fafd 100644 --- a/src/vs/workbench/contrib/welcome/gettingStarted/common/gettingStartedContent.ts +++ b/src/vs/workbench/contrib/welcome/gettingStarted/common/gettingStartedContent.ts @@ -9,7 +9,7 @@ import { ThemeIcon } from 'vs/platform/theme/common/themeService'; import { registerIcon } from 'vs/platform/theme/common/iconRegistry'; -const setupIcon = registerIcon('getting-started-setup', Codicon.heart, localize('getting-started-setup-icon', "Icon used for the setup category of getting started")); +const setupIcon = registerIcon('getting-started-setup', Codicon.zap, localize('getting-started-setup-icon', "Icon used for the setup category of getting started")); const beginnerIcon = registerIcon('getting-started-beginner', Codicon.lightbulb, localize('getting-started-beginner-icon', "Icon used for the beginner category of getting started")); const codespacesIcon = registerIcon('getting-started-codespaces', Codicon.github, localize('getting-started-codespaces-icon', "Icon used for the codespaces category of getting started")); @@ -166,7 +166,13 @@ export const content: GettingStartedContent = [ }, when: 'isWeb', doneOn: { commandExecuted: 'github.codespaces.openInStable' }, - media: { type: 'image', altText: 'Preview of the Open in VS Code command.', path: 'openVSC.png' }, + media: { + type: 'image', altText: 'Preview of the Open in VS Code command.', path: { + dark: 'dark/openVSC.png', + light: 'light/openVSC.png', + hc: 'light/openVSC.png', + } + }, } ] } @@ -191,14 +197,37 @@ export const content: GettingStartedContent = [ }, { id: 'findLanguageExtensions', - title: localize('gettingStarted.findLanguageExts.title', "Code in any language, without switching editors"), + title: localize('gettingStarted.findLanguageExts.title', "Code in any language"), description: localize('gettingStarted.findLanguageExts.description', "VS Code supports over 50+ programming languages. While many are built-in, others can be easily installed as extensions in one click."), button: { title: localize('gettingStarted.findLanguageExts.button', "Browse Language Extensions"), command: 'workbench.extensions.action.showLanguageExtensions', }, doneOn: { commandExecuted: 'workbench.extensions.action.showLanguageExtensions' }, - media: { type: 'image', altText: 'Language extensions', path: 'languageExtensions.png', } + media: { + type: 'image', altText: 'Language extensions', path: { + dark: 'dark/languageExtensions.png', + light: 'light/languageExtensions.png', + hc: 'hc/languageExtensions.png', + } + } + }, + { + id: 'keymaps', + title: localize('gettingStarted.keymaps.title', "Migrate your keyboard shortcuts"), + description: localize('gettingStarted.keymaps.description', "Keymap extensions bring your favorite keyboard shortcuts from other editors to VS Code."), + button: { + title: localize('gettingStarted.keymaps.button', "Keymap Extensions"), + command: 'workbench.extensions.action.showRecommendedKeymapExtensions', + }, + doneOn: { commandExecuted: 'workbench.extensions.action.showRecommendedKeymapExtensions' }, + media: { + type: 'image', altText: 'List of keymap extensions.', path: { + dark: 'dark/keymaps.png', + light: 'light/keymaps.png', + hc: 'hc/keymaps.png', + }, + } }, { id: 'settingsSync', @@ -210,7 +239,13 @@ export const content: GettingStartedContent = [ command: 'workbench.userDataSync.actions.turnOn', }, doneOn: { eventFired: 'sync-enabled' }, - media: { type: 'image', altText: 'The "Turn on Sync" entry in the settings gear menu.', path: 'settingsSync.png', } + media: { + type: 'image', altText: 'The "Turn on Sync" entry in the settings gear menu.', path: { + dark: 'dark/settingsSync.png', + light: 'light/settingsSync.png', + hc: 'light/settingsSync.png', + }, + } }, { id: 'pickAFolderTask-Mac', @@ -222,7 +257,13 @@ export const content: GettingStartedContent = [ command: 'workbench.action.files.openFileFolder' }, doneOn: { commandExecuted: 'workbench.action.files.openFileFolder' }, - media: { type: 'image', altText: 'Explorer view showing buttons for opening folder and cloning repository.', path: 'openFolder.png' } + media: { + type: 'image', altText: 'Explorer view showing buttons for opening folder and cloning repository.', path: { + dark: 'dark/openFolder.png', + light: 'light/openFolder.png', + hc: 'hc/openFolder.png', + } + } }, { id: 'pickAFolderTask-Other', @@ -234,7 +275,13 @@ export const content: GettingStartedContent = [ command: 'workbench.action.files.openFolder' }, doneOn: { commandExecuted: 'workbench.action.files.openFolder' }, - media: { type: 'image', altText: 'Explorer view showing buttons for opening folder and cloning repository.', path: 'openFolder.png' } + media: { + type: 'image', altText: 'Explorer view showing buttons for opening folder and cloning repository.', path: { + dark: 'dark/openFolder.png', + light: 'light/openFolder.png', + hc: 'hc/openFolder.png', + } + } } ] } @@ -244,7 +291,7 @@ export const content: GettingStartedContent = [ id: 'Beginner', title: localize('gettingStarted.beginner.title', "Learn the Fundamentals"), icon: beginnerIcon, - description: localize('gettingStarted.beginner.description', "Save time with these must-have shortcuts & features."), + description: localize('gettingStarted.beginner.description', "Jump right into VS Code and get an overview of the must-have features."), content: { type: 'items', items: [ @@ -257,19 +304,31 @@ export const content: GettingStartedContent = [ command: 'workbench.action.showCommands' }, doneOn: { commandExecuted: 'workbench.action.showCommands' }, - media: { type: 'image', altText: 'Command Palette overlay for searching and executing commands.', path: 'commandPalette.png' }, + media: { + type: 'image', altText: 'Command Palette overlay for searching and executing commands.', path: { + dark: 'dark/commandPalette.png', + light: 'light/commandPalette.png', + hc: 'light/commandPalette.png', + } + }, }, { id: 'terminal', - title: localize('gettingStarted.terminal.title', "Run tasks in the integrated terminal"), + title: localize('gettingStarted.terminal.title', "Convenient built-in terminal"), description: localize('gettingStarted.terminal.description', "Quickly run shell commands and monitor build output, right next to your code."), when: 'remoteName != codespaces', button: { - title: localize('gettingStarted.terminal.button', "Open Terminal"), + title: localize('gettingStarted.terminal.button', "Show Terminal Panel"), command: 'workbench.action.terminal.toggleTerminal' }, doneOn: { commandExecuted: 'workbench.action.terminal.toggleTerminal' }, - media: { type: 'image', altText: 'Integrated terminal running a few npm commands', path: 'terminal.png' }, + media: { + type: 'image', altText: 'Integrated terminal running a few npm commands', path: { + dark: 'dark/terminal.png', + light: 'light/terminal.png', + hc: 'light/terminal.png', + } + }, }, { id: 'extensions', @@ -280,7 +339,13 @@ export const content: GettingStartedContent = [ command: 'workbench.extensions.action.showRecommendedExtensions' }, doneOn: { commandExecuted: 'workbench.extensions.action.showRecommendedExtensions' }, - media: { type: 'image', altText: 'VS Code extension marketplace with featured language extensions', path: 'extensions.png' }, + media: { + type: 'image', altText: 'VS Code extension marketplace with featured language extensions', path: { + dark: 'dark/extensions.png', + light: 'light/extensions.png', + hc: 'light/extensions.png', + } + }, }, { id: 'settings', diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/colorTheme.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/colorTheme.png index 1cb8d769694..a123c924e31 100644 Binary files a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/colorTheme.png and b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/colorTheme.png differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/commandPalette.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/commandPalette.png deleted file mode 100644 index 6b52579327a..00000000000 Binary files a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/commandPalette.png and /dev/null differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/dark/commandPalette.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/dark/commandPalette.png new file mode 100644 index 00000000000..82eb6713876 Binary files /dev/null and b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/dark/commandPalette.png differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/dark/extensions.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/dark/extensions.png new file mode 100644 index 00000000000..8a46d4765d1 Binary files /dev/null and b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/dark/extensions.png differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/dark/keymaps.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/dark/keymaps.png new file mode 100644 index 00000000000..b4027937a3a Binary files /dev/null and b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/dark/keymaps.png differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/dark/languageExtensions.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/dark/languageExtensions.png new file mode 100644 index 00000000000..bcea47ef758 Binary files /dev/null and b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/dark/languageExtensions.png differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/dark/openFolder.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/dark/openFolder.png new file mode 100644 index 00000000000..0360f98edca Binary files /dev/null and b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/dark/openFolder.png differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/dark/openVSC.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/dark/openVSC.png new file mode 100644 index 00000000000..9a700e0d453 Binary files /dev/null and b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/dark/openVSC.png differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/dark/settings.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/dark/settings.png index 69487763e9c..e36a833325f 100644 Binary files a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/dark/settings.png and b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/dark/settings.png differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/dark/settingsSync.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/dark/settingsSync.png new file mode 100644 index 00000000000..a216783691a Binary files /dev/null and b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/dark/settingsSync.png differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/dark/terminal.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/dark/terminal.png new file mode 100644 index 00000000000..ab1a088c007 Binary files /dev/null and b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/dark/terminal.png differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/extensions.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/extensions.png deleted file mode 100644 index ad10d13cb30..00000000000 Binary files a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/extensions.png and /dev/null differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/forwardPorts.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/forwardPorts.png index a04f070a8a7..ae10f31d6f6 100644 Binary files a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/forwardPorts.png and b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/forwardPorts.png differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/github.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/github.png index aed8305f05f..ed324758c9a 100644 Binary files a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/github.png and b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/github.png differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/hc/keymaps.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/hc/keymaps.png new file mode 100644 index 00000000000..6105fd0f714 Binary files /dev/null and b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/hc/keymaps.png differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/hc/languageExtensions.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/hc/languageExtensions.png new file mode 100644 index 00000000000..40ff0d4e67f Binary files /dev/null and b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/hc/languageExtensions.png differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/hc/openFolder.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/hc/openFolder.png new file mode 100644 index 00000000000..b8f7d590c09 Binary files /dev/null and b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/hc/openFolder.png differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/hc/settings.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/hc/settings.png index 6eda9588a36..4759eef36a2 100644 Binary files a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/hc/settings.png and b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/hc/settings.png differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/languageExtensions.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/languageExtensions.png deleted file mode 100644 index 9bf613a0f2b..00000000000 Binary files a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/languageExtensions.png and /dev/null differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/light/commandPalette.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/light/commandPalette.png new file mode 100644 index 00000000000..ac543bc7fb5 Binary files /dev/null and b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/light/commandPalette.png differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/light/extensions.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/light/extensions.png new file mode 100644 index 00000000000..92c664a0e78 Binary files /dev/null and b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/light/extensions.png differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/light/keymaps.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/light/keymaps.png new file mode 100644 index 00000000000..784f97e4314 Binary files /dev/null and b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/light/keymaps.png differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/light/languageExtensions.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/light/languageExtensions.png new file mode 100644 index 00000000000..1eb0e17cfb9 Binary files /dev/null and b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/light/languageExtensions.png differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/light/openFolder.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/light/openFolder.png new file mode 100644 index 00000000000..0c8d143b6ec Binary files /dev/null and b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/light/openFolder.png differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/light/openVSC.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/light/openVSC.png new file mode 100644 index 00000000000..95610a5ea4e Binary files /dev/null and b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/light/openVSC.png differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/light/settings.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/light/settings.png index c7768c4918c..01fda05dcbb 100644 Binary files a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/light/settings.png and b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/light/settings.png differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/light/settingsSync.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/light/settingsSync.png new file mode 100644 index 00000000000..9267c8293a1 Binary files /dev/null and b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/light/settingsSync.png differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/light/terminal.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/light/terminal.png new file mode 100644 index 00000000000..075e8f089e4 Binary files /dev/null and b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/light/terminal.png differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/openFolder.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/openFolder.png deleted file mode 100644 index 420ba92c2e9..00000000000 Binary files a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/openFolder.png and /dev/null differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/openVSC.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/openVSC.png deleted file mode 100644 index 74720cbe861..00000000000 Binary files a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/openVSC.png and /dev/null differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/pullRequests.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/pullRequests.png index 8b6ca14eaeb..77911cafd75 100644 Binary files a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/pullRequests.png and b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/pullRequests.png differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/remoteTerminal.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/remoteTerminal.png index 58152dfdc9d..366f16404a4 100644 Binary files a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/remoteTerminal.png and b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/remoteTerminal.png differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/runProject.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/runProject.png index 77c4bae64b1..f90629c6945 100644 Binary files a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/runProject.png and b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/runProject.png differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/settingsSync.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/settingsSync.png deleted file mode 100644 index 1bbed4ff98a..00000000000 Binary files a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/settingsSync.png and /dev/null differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/terminal.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/terminal.png deleted file mode 100644 index 649a200a504..00000000000 Binary files a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/terminal.png and /dev/null differ diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/tutorialVideo.png b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/tutorialVideo.png index 0b21902be10..3d1bca2a2f0 100644 Binary files a/src/vs/workbench/contrib/welcome/gettingStarted/common/media/tutorialVideo.png and b/src/vs/workbench/contrib/welcome/gettingStarted/common/media/tutorialVideo.png differ diff --git a/src/vs/workbench/electron-sandbox/desktop.contribution.ts b/src/vs/workbench/electron-sandbox/desktop.contribution.ts index 98d69ceece0..3cd32714c89 100644 --- a/src/vs/workbench/electron-sandbox/desktop.contribution.ts +++ b/src/vs/workbench/electron-sandbox/desktop.contribution.ts @@ -312,7 +312,7 @@ import { IJSONSchema } from 'vs/base/common/jsonSchema'; 'type': 'string' }, 'default': [], - 'markdownDescription': localize('touchbar.ignored', 'A set of identifiers for entries in the touchbar that should not show up (for example `workbench.action.navigateBack`.'), + 'markdownDescription': localize('touchbar.ignored', 'A set of identifiers for entries in the touchbar that should not show up (for example `workbench.action.navigateBack`).'), 'included': isMacintosh } } diff --git a/yarn.lock b/yarn.lock index ab19c75fb17..9b451d9a019 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10091,10 +10091,10 @@ vscode-nls-dev@^3.3.1: xml2js "^0.4.19" yargs "^13.2.4" -vscode-oniguruma@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.5.0.tgz#d2235868efe933c5796fdc687cfcd644407259b1" - integrity sha512-5MgXSXvwy2GBy8BRi1Pegk+60LAHiY184cW93Fe1SmA9oPu8fRV3G9Yurbhkh/0hrb0E0/VK4JPieBX66gkftQ== +vscode-oniguruma@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.5.1.tgz#9ca10cd3ada128bd6380344ea28844243d11f695" + integrity sha512-JrBZH8DCC262TEYcYdeyZusiETu0Vli0xFgdRwNJjDcObcRjbmJP+IFcA3ScBwIXwgFHYKbAgfxtM/Cl+3Spjw== vscode-proxy-agent@^0.8.1: version "0.8.1"