mirror of
https://github.com/microsoft/vscode.git
synced 2026-08-25 10:25:41 +01:00
Merge branch 'main' into fix/terminal-suggestion-positioning__accept-completions
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import * as eslint from 'eslint';
|
||||
import { Node } from 'estree';
|
||||
|
||||
export = new class EnsureNoDisposablesAreLeakedInTestSuite implements eslint.Rule.RuleModule {
|
||||
|
||||
readonly meta: eslint.Rule.RuleMetaData = {
|
||||
type: 'problem',
|
||||
messages: {
|
||||
ensure: 'Suites should include a call to `ensureNoDisposablesAreLeakedInTestSuite()` to ensure no disposables are leaked in tests.'
|
||||
}
|
||||
};
|
||||
|
||||
create(context: eslint.Rule.RuleContext): eslint.Rule.RuleListener {
|
||||
const config = <{ exclude: string[] }>context.options[0];
|
||||
|
||||
const needle = context.getFilename().replace(/\\/g, '/');
|
||||
if (config.exclude.some((e) => needle.endsWith(e))) {
|
||||
return {};
|
||||
}
|
||||
|
||||
return {
|
||||
[`Program > ExpressionStatement > CallExpression[callee.name='suite']`]: (node: Node) => {
|
||||
const src = context.getSourceCode().getText(node)
|
||||
if (!src.includes('ensureNoDisposablesAreLeakedInTestSuite(')) {
|
||||
context.report({
|
||||
node,
|
||||
messageId: 'ensure',
|
||||
});
|
||||
}
|
||||
},
|
||||
};
|
||||
}
|
||||
};
|
||||
+220
@@ -136,6 +136,226 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"files": [
|
||||
"src/vs/**/*.test.ts"
|
||||
],
|
||||
"rules": {
|
||||
"local/code-ensure-no-disposables-leak-in-test": [
|
||||
"warn",
|
||||
{
|
||||
// Files should (only) be removed from the list they adopt the leak detector
|
||||
"exclude": [
|
||||
"src/vs/base/parts/sandbox/test/electron-sandbox/globals.test.ts",
|
||||
"src/vs/base/test/browser/browser.test.ts",
|
||||
"src/vs/base/test/browser/comparers.test.ts",
|
||||
"src/vs/base/test/browser/dom.test.ts",
|
||||
"src/vs/base/test/browser/formattedTextRenderer.test.ts",
|
||||
"src/vs/base/test/browser/hash.test.ts",
|
||||
"src/vs/base/test/browser/iconLabels.test.ts",
|
||||
"src/vs/base/test/browser/indexedDB.test.ts",
|
||||
"src/vs/base/test/browser/ui/contextview/contextview.test.ts",
|
||||
"src/vs/base/test/browser/ui/menu/menubar.test.ts",
|
||||
"src/vs/base/test/browser/ui/scrollbar/scrollableElement.test.ts",
|
||||
"src/vs/base/test/browser/ui/scrollbar/scrollbarState.test.ts",
|
||||
"src/vs/base/test/common/arrays.test.ts",
|
||||
"src/vs/base/test/common/arraysFind.test.ts",
|
||||
"src/vs/base/test/common/assert.test.ts",
|
||||
"src/vs/base/test/common/cache.test.ts",
|
||||
"src/vs/base/test/common/charCode.test.ts",
|
||||
"src/vs/base/test/common/collections.test.ts",
|
||||
"src/vs/base/test/common/color.test.ts",
|
||||
"src/vs/base/test/common/console.test.ts",
|
||||
"src/vs/base/test/common/decorators.test.ts",
|
||||
"src/vs/base/test/common/diff/diff.test.ts",
|
||||
"src/vs/base/test/common/errors.test.ts",
|
||||
"src/vs/base/test/common/filters.perf.test.ts",
|
||||
"src/vs/base/test/common/filters.test.ts",
|
||||
"src/vs/base/test/common/iconLabels.test.ts",
|
||||
"src/vs/base/test/common/iterator.test.ts",
|
||||
"src/vs/base/test/common/json.test.ts",
|
||||
"src/vs/base/test/common/jsonEdit.test.ts",
|
||||
"src/vs/base/test/common/jsonFormatter.test.ts",
|
||||
"src/vs/base/test/common/keybindings.test.ts",
|
||||
"src/vs/base/test/common/keyCodes.test.ts",
|
||||
"src/vs/base/test/common/lazy.test.ts",
|
||||
"src/vs/base/test/common/linkedList.test.ts",
|
||||
"src/vs/base/test/common/linkedText.test.ts",
|
||||
"src/vs/base/test/common/map.test.ts",
|
||||
"src/vs/base/test/common/markdownString.test.ts",
|
||||
"src/vs/base/test/common/marshalling.test.ts",
|
||||
"src/vs/base/test/common/mime.test.ts",
|
||||
"src/vs/base/test/common/naturalLanguage/korean.test.ts",
|
||||
"src/vs/base/test/common/network.test.ts",
|
||||
"src/vs/base/test/common/normalization.test.ts",
|
||||
"src/vs/base/test/common/objects.test.ts",
|
||||
"src/vs/base/test/common/observable.test.ts",
|
||||
"src/vs/base/test/common/path.test.ts",
|
||||
"src/vs/base/test/common/prefixTree.test.ts",
|
||||
"src/vs/base/test/common/resources.test.ts",
|
||||
"src/vs/base/test/common/resourceTree.test.ts",
|
||||
"src/vs/base/test/common/scrollable.test.ts",
|
||||
"src/vs/base/test/common/skipList.test.ts",
|
||||
"src/vs/base/test/common/strings.test.ts",
|
||||
"src/vs/base/test/common/stripComments.test.ts",
|
||||
"src/vs/base/test/common/ternarySearchtree.test.ts",
|
||||
"src/vs/base/test/common/tfIdf.test.ts",
|
||||
"src/vs/base/test/common/types.test.ts",
|
||||
"src/vs/base/test/common/uri.test.ts",
|
||||
"src/vs/base/test/common/uuid.test.ts",
|
||||
"src/vs/base/test/node/crypto.test.ts",
|
||||
"src/vs/base/test/node/css.build.test.ts",
|
||||
"src/vs/base/test/node/id.test.ts",
|
||||
"src/vs/base/test/node/nodeStreams.test.ts",
|
||||
"src/vs/base/test/node/port.test.ts",
|
||||
"src/vs/base/test/node/powershell.test.ts",
|
||||
"src/vs/base/test/node/snapshot.test.ts",
|
||||
"src/vs/base/test/node/unc.test.ts",
|
||||
"src/vs/code/test/electron-sandbox/issue/testReporterModel.test.ts",
|
||||
"src/vs/editor/contrib/codeAction/test/browser/codeActionKeybindingResolver.test.ts",
|
||||
"src/vs/editor/contrib/codeAction/test/browser/codeActionModel.test.ts",
|
||||
"src/vs/editor/contrib/dropOrPasteInto/test/browser/editSort.test.ts",
|
||||
"src/vs/editor/contrib/folding/test/browser/foldingModel.test.ts",
|
||||
"src/vs/editor/contrib/folding/test/browser/foldingRanges.test.ts",
|
||||
"src/vs/editor/contrib/folding/test/browser/indentFold.test.ts",
|
||||
"src/vs/editor/contrib/folding/test/browser/indentRangeProvider.test.ts",
|
||||
"src/vs/editor/contrib/gotoSymbol/test/browser/referencesModel.test.ts",
|
||||
"src/vs/editor/contrib/smartSelect/test/browser/smartSelect.test.ts",
|
||||
"src/vs/editor/contrib/snippet/test/browser/snippetParser.test.ts",
|
||||
"src/vs/editor/contrib/snippet/test/browser/snippetSession.test.ts",
|
||||
"src/vs/editor/contrib/snippet/test/browser/snippetVariables.test.ts",
|
||||
"src/vs/editor/contrib/suggest/test/browser/completionModel.test.ts",
|
||||
"src/vs/editor/contrib/suggest/test/browser/suggestMemory.test.ts",
|
||||
"src/vs/editor/test/common/services/languageService.test.ts",
|
||||
"src/vs/editor/test/node/classification/typescript.test.ts",
|
||||
"src/vs/editor/test/node/diffing/defaultLinesDiffComputer.test.ts",
|
||||
"src/vs/editor/test/node/diffing/fixtures.test.ts",
|
||||
"src/vs/platform/configuration/test/common/configuration.test.ts",
|
||||
"src/vs/platform/configuration/test/common/configurationModels.test.ts",
|
||||
"src/vs/platform/configuration/test/common/configurationRegistry.test.ts",
|
||||
"src/vs/platform/contextkey/test/common/contextkey.test.ts",
|
||||
"src/vs/platform/contextkey/test/common/parser.test.ts",
|
||||
"src/vs/platform/contextkey/test/common/scanner.test.ts",
|
||||
"src/vs/platform/dialogs/test/common/dialog.test.ts",
|
||||
"src/vs/platform/environment/test/node/argv.test.ts",
|
||||
"src/vs/platform/environment/test/node/userDataPath.test.ts",
|
||||
"src/vs/platform/extensionManagement/test/common/configRemotes.test.ts",
|
||||
"src/vs/platform/extensionManagement/test/common/extensionManagement.test.ts",
|
||||
"src/vs/platform/extensions/test/common/extensionValidator.test.ts",
|
||||
"src/vs/platform/externalTerminal/electron-main/externalTerminalService.test.ts",
|
||||
"src/vs/platform/instantiation/test/common/graph.test.ts",
|
||||
"src/vs/platform/instantiation/test/common/instantiationService.test.ts",
|
||||
"src/vs/platform/keybinding/test/common/abstractKeybindingService.test.ts",
|
||||
"src/vs/platform/keybinding/test/common/keybindingLabels.test.ts",
|
||||
"src/vs/platform/keybinding/test/common/keybindingResolver.test.ts",
|
||||
"src/vs/platform/markers/test/common/markerService.test.ts",
|
||||
"src/vs/platform/opener/test/common/opener.test.ts",
|
||||
"src/vs/platform/progress/test/common/progress.test.ts",
|
||||
"src/vs/platform/registry/test/common/platform.test.ts",
|
||||
"src/vs/platform/remote/test/common/remoteHosts.test.ts",
|
||||
"src/vs/platform/telemetry/test/browser/1dsAppender.test.ts",
|
||||
"src/vs/platform/telemetry/test/browser/telemetryService.test.ts",
|
||||
"src/vs/platform/telemetry/test/common/telemetryLogAppender.test.ts",
|
||||
"src/vs/platform/undoRedo/test/common/undoRedoService.test.ts",
|
||||
"src/vs/platform/userDataSync/test/common/extensionsMerge.test.ts",
|
||||
"src/vs/platform/userDataSync/test/common/globalStateMerge.test.ts",
|
||||
"src/vs/platform/userDataSync/test/common/settingsMerge.test.ts",
|
||||
"src/vs/platform/userDataSync/test/common/snippetsMerge.test.ts",
|
||||
"src/vs/platform/userDataSync/test/common/userDataProfilesManifestMerge.test.ts",
|
||||
"src/vs/platform/workspace/test/common/workspace.test.ts",
|
||||
"src/vs/platform/workspaces/test/common/workspaces.test.ts",
|
||||
"src/vs/platform/workspaces/test/electron-main/workspaces.test.ts",
|
||||
"src/vs/server/test/node/serverConnectionToken.test.ts",
|
||||
"src/vs/workbench/api/test/browser/extHost.api.impl.test.ts",
|
||||
"src/vs/workbench/api/test/browser/extHostApiCommands.test.ts",
|
||||
"src/vs/workbench/api/test/browser/extHostBulkEdits.test.ts",
|
||||
"src/vs/workbench/api/test/browser/extHostCommands.test.ts",
|
||||
"src/vs/workbench/api/test/browser/extHostDocumentSaveParticipant.test.ts",
|
||||
"src/vs/workbench/api/test/browser/extHostMessagerService.test.ts",
|
||||
"src/vs/workbench/api/test/browser/extHostTelemetry.test.ts",
|
||||
"src/vs/workbench/api/test/browser/extHostTextEditor.test.ts",
|
||||
"src/vs/workbench/api/test/browser/extHostTypeConverter.test.ts",
|
||||
"src/vs/workbench/api/test/browser/extHostTypes.test.ts",
|
||||
"src/vs/workbench/api/test/browser/extHostWorkspace.test.ts",
|
||||
"src/vs/workbench/api/test/browser/mainThreadConfiguration.test.ts",
|
||||
"src/vs/workbench/api/test/browser/mainThreadDocuments.test.ts",
|
||||
"src/vs/workbench/api/test/common/extensionHostMain.test.ts",
|
||||
"src/vs/workbench/api/test/common/extHostExtensionActivator.test.ts",
|
||||
"src/vs/workbench/api/test/node/extHostTunnelService.test.ts",
|
||||
"src/vs/workbench/contrib/bulkEdit/test/browser/bulkCellEdits.test.ts",
|
||||
"src/vs/workbench/contrib/chat/test/common/chatWordCounter.test.ts",
|
||||
"src/vs/workbench/contrib/debug/test/browser/baseDebugView.test.ts",
|
||||
"src/vs/workbench/contrib/debug/test/browser/breakpoints.test.ts",
|
||||
"src/vs/workbench/contrib/debug/test/browser/callStack.test.ts",
|
||||
"src/vs/workbench/contrib/debug/test/browser/debugHover.test.ts",
|
||||
"src/vs/workbench/contrib/debug/test/browser/repl.test.ts",
|
||||
"src/vs/workbench/contrib/debug/test/common/debugModel.test.ts",
|
||||
"src/vs/workbench/contrib/debug/test/node/debugger.test.ts",
|
||||
"src/vs/workbench/contrib/debug/test/node/streamDebugAdapter.test.ts",
|
||||
"src/vs/workbench/contrib/debug/test/node/terminals.test.ts",
|
||||
"src/vs/workbench/contrib/editSessions/test/browser/editSessions.test.ts",
|
||||
"src/vs/workbench/contrib/extensions/test/common/extensionQuery.test.ts",
|
||||
"src/vs/workbench/contrib/extensions/test/electron-sandbox/extension.test.ts",
|
||||
"src/vs/workbench/contrib/files/test/browser/explorerFileNestingTrie.test.ts",
|
||||
"src/vs/workbench/contrib/files/test/browser/explorerModel.test.ts",
|
||||
"src/vs/workbench/contrib/files/test/browser/explorerView.test.ts",
|
||||
"src/vs/workbench/contrib/files/test/browser/fileActions.test.ts",
|
||||
"src/vs/workbench/contrib/notebook/test/browser/cellDnd.test.ts",
|
||||
"src/vs/workbench/contrib/notebook/test/browser/contrib/contributedStatusBarItemController.test.ts",
|
||||
"src/vs/workbench/contrib/notebook/test/browser/contrib/executionStatusBarItem.test.ts",
|
||||
"src/vs/workbench/contrib/notebook/test/browser/contrib/layoutActions.test.ts",
|
||||
"src/vs/workbench/contrib/notebook/test/browser/contrib/outputCopyTests.test.ts",
|
||||
"src/vs/workbench/contrib/notebook/test/browser/notebookBrowser.test.ts",
|
||||
"src/vs/workbench/contrib/notebook/test/browser/notebookExecutionService.test.ts",
|
||||
"src/vs/workbench/contrib/notebook/test/browser/notebookExecutionStateService.test.ts",
|
||||
"src/vs/workbench/contrib/notebook/test/browser/notebookTextModel.test.ts",
|
||||
"src/vs/workbench/contrib/search/test/common/cacheState.test.ts",
|
||||
"src/vs/workbench/contrib/search/test/common/extractRange.test.ts",
|
||||
"src/vs/workbench/contrib/snippets/test/browser/snippetFile.test.ts",
|
||||
"src/vs/workbench/contrib/snippets/test/browser/snippetsRegistry.test.ts",
|
||||
"src/vs/workbench/contrib/snippets/test/browser/snippetsRewrite.test.ts",
|
||||
"src/vs/workbench/contrib/tags/test/node/workspaceTags.test.ts",
|
||||
"src/vs/workbench/contrib/tasks/test/common/problemMatcher.test.ts",
|
||||
"src/vs/workbench/contrib/tasks/test/common/taskConfiguration.test.ts",
|
||||
"src/vs/workbench/contrib/terminal/test/browser/terminalActions.test.ts",
|
||||
"src/vs/workbench/contrib/themes/test/node/colorRegistryExport.test.ts",
|
||||
"src/vs/workbench/contrib/url/test/browser/trustedDomains.test.ts",
|
||||
"src/vs/workbench/contrib/welcomeGettingStarted/test/browser/gettingStartedMarkdownRenderer.test.ts",
|
||||
"src/vs/workbench/services/commands/test/common/commandService.test.ts",
|
||||
"src/vs/workbench/services/configuration/test/common/configurationModels.test.ts",
|
||||
"src/vs/workbench/services/configurationResolver/test/electron-sandbox/configurationResolverService.test.ts",
|
||||
"src/vs/workbench/services/dialogs/test/electron-sandbox/fileDialogService.test.ts",
|
||||
"src/vs/workbench/services/editor/test/browser/editorResolverService.test.ts",
|
||||
"src/vs/workbench/services/extensions/test/common/extensionDescriptionRegistry.test.ts",
|
||||
"src/vs/workbench/services/keybinding/test/browser/keybindingIO.test.ts",
|
||||
"src/vs/workbench/services/keybinding/test/node/fallbackKeyboardMapper.test.ts",
|
||||
"src/vs/workbench/services/keybinding/test/node/macLinuxKeyboardMapper.test.ts",
|
||||
"src/vs/workbench/services/keybinding/test/node/windowsKeyboardMapper.test.ts",
|
||||
"src/vs/workbench/services/preferences/test/browser/preferencesService.test.ts",
|
||||
"src/vs/workbench/services/preferences/test/common/preferencesValidation.test.ts",
|
||||
"src/vs/workbench/services/search/test/browser/queryBuilder.test.ts",
|
||||
"src/vs/workbench/services/search/test/common/ignoreFile.test.ts",
|
||||
"src/vs/workbench/services/search/test/common/queryBuilder.test.ts",
|
||||
"src/vs/workbench/services/search/test/common/replace.test.ts",
|
||||
"src/vs/workbench/services/search/test/common/search.test.ts",
|
||||
"src/vs/workbench/services/search/test/common/searchHelpers.test.ts",
|
||||
"src/vs/workbench/services/search/test/node/ripgrepFileSearch.test.ts",
|
||||
"src/vs/workbench/services/search/test/node/ripgrepTextSearchEngineUtils.test.ts",
|
||||
"src/vs/workbench/services/search/test/node/textSearchManager.test.ts",
|
||||
"src/vs/workbench/services/telemetry/test/browser/commonProperties.test.ts",
|
||||
"src/vs/workbench/services/textfile/test/common/textFileService.io.test.ts",
|
||||
"src/vs/workbench/services/textMate/test/browser/arrayOperation.test.ts",
|
||||
"src/vs/workbench/services/themes/test/node/tokenStyleResolving.test.ts",
|
||||
"src/vs/workbench/services/userActivity/test/browser/domActivityTracker.test.ts",
|
||||
"src/vs/workbench/services/workspaces/test/browser/workspaces.test.ts",
|
||||
"src/vs/workbench/services/workspaces/test/common/workspaceTrust.test.ts",
|
||||
"src/vs/workbench/test/browser/quickAccess.test.ts",
|
||||
"src/vs/workbench/test/browser/webview.test.ts"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"files": [
|
||||
"**/vscode.d.ts",
|
||||
|
||||
+52
File diff suppressed because one or more lines are too long
+14
-14
File diff suppressed because one or more lines are too long
Vendored
+5
-1
@@ -164,5 +164,9 @@
|
||||
"vscode-notebook-renderer",
|
||||
"src/vs/workbench/workbench.web.main.ts",
|
||||
"src/vs/workbench/api/common/extHostTypes.ts"
|
||||
]
|
||||
],
|
||||
"[github-issues]": {
|
||||
"editor.wordWrap": "on"
|
||||
},
|
||||
"css.format.spaceAroundSelectorSeparator": true,
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
disturl "https://electronjs.org/headers"
|
||||
target "25.9.6"
|
||||
ms_build_id "25531495"
|
||||
target "25.9.7"
|
||||
ms_build_id "25551756"
|
||||
runtime "electron"
|
||||
build_from_source "true"
|
||||
|
||||
@@ -1,75 +1,75 @@
|
||||
bd1bd27fb2724748b50ed9978146e9f3c28f21f09144901da4fb09c2412ef6b8 *chromedriver-v25.9.6-darwin-arm64.zip
|
||||
c8fc339dcf9d93940d9e85be0ca8ef992ee12c93f191b79b074f8c5624c195e8 *chromedriver-v25.9.6-darwin-x64.zip
|
||||
77331490233bd58c1fcd8c930e8a346b50ffe4e790278370c83a7c4bfe2e91b5 *chromedriver-v25.9.6-linux-arm64.zip
|
||||
2a050686a8b455ad3ff799f50844b64849db8d0b3b7354850bfb62b21408dc6c *chromedriver-v25.9.6-linux-armv7l.zip
|
||||
4999e2bb69c65c84e562a9ad3420b0323ad0cffb04979ed6db8211b3bd90783e *chromedriver-v25.9.6-linux-x64.zip
|
||||
42273234489748b2c16886dd4c8afada9ecf972e60ce4323fd810fb101097738 *chromedriver-v25.9.6-mas-arm64.zip
|
||||
d63b3ef6eb49bc0d1d048a77e8f5059599aa8b7d74a4032cb90b6b8978dd822f *chromedriver-v25.9.6-mas-x64.zip
|
||||
88337702ae3854fdd01978383753d125548f45614422e0bc1979b84e9ee4568e *chromedriver-v25.9.6-win32-arm64.zip
|
||||
4e6191def9c9975d44eba453218186ebd1511c61ab739f018c6ee887b9df87e5 *chromedriver-v25.9.6-win32-ia32.zip
|
||||
002e6a0e331013c8679a3835110f6f73c6b297b091bb3a82dff3ae96fbf167f6 *chromedriver-v25.9.6-win32-x64.zip
|
||||
5cf2cf7f78c6c4e2411f2fca3e8a68ea8b627478d12da7f9d1066b12c2c3ad30 *electron-api.json
|
||||
e18f9801837e0cf3d9818bb0829819b57545fcaebf1355999f2cb8d0eada09f1 *electron-v25.9.6-darwin-arm64-dsym-snapshot.zip
|
||||
dd961d0f2de707ce5153adc0f5d62fb97e0b251f0512cf3f364ba9cb4e043161 *electron-v25.9.6-darwin-arm64-dsym.zip
|
||||
14f9d7c37a85ef03300edc335ba3b43583c121bb05d23e7496adfc001a552feb *electron-v25.9.6-darwin-arm64-symbols.zip
|
||||
dc06bbd7378b68d67469b958bf049944e08dc67c7fc9d0a5f94828f85982f5b9 *electron-v25.9.6-darwin-arm64.zip
|
||||
d5cef8cdaa0d697ec82d1c8ca2252d7debe4a6beeab34cbd14e2af294bec6745 *electron-v25.9.6-darwin-x64-dsym-snapshot.zip
|
||||
d3da17c9e8b9bcaf52871f8dfbf8589401613e4ba8dd09316bccf0606ac68fb3 *electron-v25.9.6-darwin-x64-dsym.zip
|
||||
7cac10c7b4ff45f90fd8e15dbc33f69931abaf06e9791f0d4e6af5b589face64 *electron-v25.9.6-darwin-x64-symbols.zip
|
||||
0accf891874030cac28632cc36ac4b88398e99aa3c39be0947ed9e3d3457c0ba *electron-v25.9.6-darwin-x64.zip
|
||||
4374a1513e6829f241855bfe11b2aa6eb276a8f3cfbf4f5b8f67b0f561016219 *electron-v25.9.6-linux-arm64-debug.zip
|
||||
127ba3c914d978e62765b1a6be1ffe963aa9d7ed91dbb8442bb94ebd0e45fec1 *electron-v25.9.6-linux-arm64-symbols.zip
|
||||
6ced27b15114c868d2ec0e479a4cd4c32a42014f28a3cfac274c0cf5d26c8433 *electron-v25.9.6-linux-arm64.zip
|
||||
4374a1513e6829f241855bfe11b2aa6eb276a8f3cfbf4f5b8f67b0f561016219 *electron-v25.9.6-linux-armv7l-debug.zip
|
||||
a6f605e2174ebcaa8f508a49a1ca3d3273295f8d5547a77e7d71d1e631a40baa *electron-v25.9.6-linux-armv7l-symbols.zip
|
||||
311e463b02ed81788c2ab0d462f1efcf45efa49f325b0e9383a2894cdd6bf25c *electron-v25.9.6-linux-armv7l.zip
|
||||
b58e46a687f69df227567083487818d10a31fd010bf377c8c4269a8c5b0f03bf *electron-v25.9.6-linux-x64-debug.zip
|
||||
17661fd7bf9ee53d5f45e7d85a8e00e02c91ef67a1fcd8f04854392910cdca44 *electron-v25.9.6-linux-x64-symbols.zip
|
||||
aa6b7e15c303f3c6a75c5d46c2809975a33848600cdcfc08023085a3fb490799 *electron-v25.9.6-linux-x64.zip
|
||||
e18f9801837e0cf3d9818bb0829819b57545fcaebf1355999f2cb8d0eada09f1 *electron-v25.9.6-mas-arm64-dsym-snapshot.zip
|
||||
d3c688a5a6297fba598f96fc315cd1712120f9f75966c82c7cd4f727159dfa60 *electron-v25.9.6-mas-arm64-dsym.zip
|
||||
49706b64eed5929236c94b74622fee539c84287a2c2b6c7391307f38817750d3 *electron-v25.9.6-mas-arm64-symbols.zip
|
||||
4920d36bc45e07a4705ab779a11db5339af6e0ba52c38dd2e9add007c96399fb *electron-v25.9.6-mas-arm64.zip
|
||||
3601d1a6d5f686944798b58ea95ccbfc92584d2eec7c9e73bf3acb87eb570fb0 *electron-v25.9.6-mas-x64-dsym-snapshot.zip
|
||||
5ccda3381211819ab87cd3a34f22ed9cf422dbe9d36bb4e5458a6b5d523b87bc *electron-v25.9.6-mas-x64-dsym.zip
|
||||
d9d01d00ebbdc8a6a4894d5486c1eec657925bfdf6948b2123051c7eadc06369 *electron-v25.9.6-mas-x64-symbols.zip
|
||||
8cf6f477b9468fb0ae693c96f47852d3f1be96eb5b4ca45b1946295c3677d28f *electron-v25.9.6-mas-x64.zip
|
||||
568fbe49277eb0458e79c7793ea6038c419624b654628892535bc58f1f86c5f8 *electron-v25.9.6-win32-arm64-pdb.zip
|
||||
9cbcf9e64c0f2611d27cea77105595a7ab9c57cc933da3bf162edb1b7f1a9808 *electron-v25.9.6-win32-arm64-symbols.zip
|
||||
e7b968fc53cc7a10a4ccb5133af045968479685ebb9617f06817f03667fdd425 *electron-v25.9.6-win32-arm64-toolchain-profile.zip
|
||||
6c4f9beed89c7bfd1538815861e2b1128a28a82fd729429dca1757dc4f77ccbd *electron-v25.9.6-win32-arm64.zip
|
||||
b8eb0490a78757f61ca4438a1f78eb7874eb8da66544432adbdb97fa84bad2d6 *electron-v25.9.6-win32-ia32-pdb.zip
|
||||
87edb1f236e7728b0c2b7a055e9f56f375fc2cafda880c3a6dc6df06678308ce *electron-v25.9.6-win32-ia32-symbols.zip
|
||||
e7b968fc53cc7a10a4ccb5133af045968479685ebb9617f06817f03667fdd425 *electron-v25.9.6-win32-ia32-toolchain-profile.zip
|
||||
ba25e44570ec2ba476052a43220011ee36609c70af9a96255385987ef9aafee4 *electron-v25.9.6-win32-ia32.zip
|
||||
e9b4061feadf44020976bde51427e8f19d5921cf0bee1a6f7f2c91428896a0f6 *electron-v25.9.6-win32-x64-pdb.zip
|
||||
5f85dc477fd1cb780dddfb6b62ef758a36a7973a1c51e58e5ba00b5b2c0a2eaa *electron-v25.9.6-win32-x64-symbols.zip
|
||||
e7b968fc53cc7a10a4ccb5133af045968479685ebb9617f06817f03667fdd425 *electron-v25.9.6-win32-x64-toolchain-profile.zip
|
||||
ed6410951228470ff976227042a0b430b72ce6c1e241a48fec367a86df8fa0a1 *electron-v25.9.6-win32-x64.zip
|
||||
fc51b357c0fff78487b91a927076e2520d57081abe6a4ddbb8d15e3f462cbdb3 *electron.d.ts
|
||||
0cf917e3270eeb935152a02e223cd551e43f59d40f2951a93cc24be2497f60de *ffmpeg-v25.9.6-darwin-arm64.zip
|
||||
9254e94359efac66a2d9161d8e9312a43d174eab56ce4fb8cab202e5516a3ad0 *ffmpeg-v25.9.6-darwin-x64.zip
|
||||
bd52d57ff97fb56ac01a3482af905d04f0d4e9c13c53858c6d9f99957eca82da *ffmpeg-v25.9.6-linux-arm64.zip
|
||||
9b3d09177fa1e63e2a6beecfa70aeec30aeb5c1873ff21128a68051c4e23f95d *ffmpeg-v25.9.6-linux-armv7l.zip
|
||||
edc7b1c9f1a0733f109a2c0375a4e40c5bfe0bf28b7f06dcc76e1ada0aa2f125 *ffmpeg-v25.9.6-linux-x64.zip
|
||||
d50d1880a1c9e4ef11d8e712091b8faa0f47bcbdf339cbf276dd952892c64dbe *ffmpeg-v25.9.6-mas-arm64.zip
|
||||
d61f6ecb96cb28876e9f53944763cac2d9b85a9d9dba53851f477ac3dc3301ef *ffmpeg-v25.9.6-mas-x64.zip
|
||||
198d05aaef020af1a98453246a3e3ff999331b63967607fb706586f08cc43fac *ffmpeg-v25.9.6-win32-arm64.zip
|
||||
2b80110b470491dbf33f2dcf1188a865980c94fb2a940cff5610e5b86701b51b *ffmpeg-v25.9.6-win32-ia32.zip
|
||||
37f260ab3ae666df594705b400ff6592ddc4f088d95b585acd37ba529db5fff2 *ffmpeg-v25.9.6-win32-x64.zip
|
||||
b1423529a11f5348b6b78a36d355134aec2760a1a2744699c83cd0b6b03cd425 *hunspell_dictionaries.zip
|
||||
c89b061fe0b8835df41b8c00d3f791bc0830fb9be6b0955518c78bcacb5dd75f *libcxx-objects-v25.9.6-linux-arm64.zip
|
||||
098e9f8af88085189e4c04f324baafa09d7a64c350576fd38d9dbf32ff0e8d30 *libcxx-objects-v25.9.6-linux-armv7l.zip
|
||||
2e4e4faac500704cf16db656a870b9981659671ebaef4dfc972b5ad222422a81 *libcxx-objects-v25.9.6-linux-x64.zip
|
||||
b61068bc99d5144f1f31f6a5d9862ebd7f091c745dba0ddfd1135be395540721 *libcxx_headers.zip
|
||||
3a13e19e8633bea161650a6b3eba8a0b08b98e84d0246a72eea099d0807cba3c *libcxxabi_headers.zip
|
||||
a33a708edab6fd2cab24eba6ea520e4b762bfd642e7a8e5548281c190b94a2a1 *mksnapshot-v25.9.6-darwin-arm64.zip
|
||||
3ac987f47d898a8ef3f3ac2703be1aad4c10dc44dc01f5c2a495a8ca9ec9c660 *mksnapshot-v25.9.6-darwin-x64.zip
|
||||
c3ee9b1d7d899c9211154fd56b2403cd882d77bb58fb48bbe744a668fe05256d *mksnapshot-v25.9.6-linux-arm64-x64.zip
|
||||
440e7a903decccf95c1e0a1b01bef286413a59bd2c0831553f52872ba3790e22 *mksnapshot-v25.9.6-linux-armv7l-x64.zip
|
||||
7240fa92f34beb0c6e5f455bc1f08f693de4480e852c986989f799849b1c6961 *mksnapshot-v25.9.6-linux-x64.zip
|
||||
4a4f0337d444fa390ed7dffc70c73b67db0d37c978683aa0d41ee9cac741b690 *mksnapshot-v25.9.6-mas-arm64.zip
|
||||
10de1874b5d168e9cdce9c825a1a29eee830495a9c4c0ab1c2849e89641b35b0 *mksnapshot-v25.9.6-mas-x64.zip
|
||||
b2a15fdb3cca2085fdd72bc991fd8f945a028c0ed5872e9d271a79c8f61efb1d *mksnapshot-v25.9.6-win32-arm64-x64.zip
|
||||
bd625b4089e43ece3246f92bfa1d0d401efe522cf9a3cba52bcc484aa86ec7a5 *mksnapshot-v25.9.6-win32-ia32.zip
|
||||
f82a10a340568bcfc6605e69853f84b2158f0e86561c42036ee2232b23fccbec *mksnapshot-v25.9.6-win32-x64.zip
|
||||
6d0c679fa3f8a9498b708f93c40c0918523c5790bb0e0055b0e8ac871efc228d *chromedriver-v25.9.7-darwin-arm64.zip
|
||||
cd758c34bb6a5bf0ce0df48627fafa4fab5d1f22f2622b29cba3f5c5cc2dd4ae *chromedriver-v25.9.7-darwin-x64.zip
|
||||
bcfd29d527ba4d243b496dddee58a73e82a2aeaae5c1c15d55a5729a5d714576 *chromedriver-v25.9.7-linux-arm64.zip
|
||||
869e2584570e1a472bd60bf6a405abc53702e1c8c20f24ff9e6e74449e49fad6 *chromedriver-v25.9.7-linux-armv7l.zip
|
||||
af8c4bc1277cf816bc9b94d1da4febda0083f7764318dbaca6d678527bffcc4f *chromedriver-v25.9.7-linux-x64.zip
|
||||
9c7ce39bc74da1db6a95ed63683649001a42306476a288afb55c53c3fca1fef0 *chromedriver-v25.9.7-mas-arm64.zip
|
||||
123fbab9b17aac3142051bfd3c60f1ac1b0eb6e71049b9e6d489a0f917daa909 *chromedriver-v25.9.7-mas-x64.zip
|
||||
e6a52e4181ee1a3a15ba254c237043147b72904f38b7b925e40e85d37cf1d44a *chromedriver-v25.9.7-win32-arm64.zip
|
||||
4c5b8d1df6efe5c9ec5db033a3fc2ec7f93f429d0c43d6025fe0f7b96f2cf449 *chromedriver-v25.9.7-win32-ia32.zip
|
||||
388cc0cce6ce11a60d0b81c5b37b8cb04bcbade533616973a4ef7161487aa59f *chromedriver-v25.9.7-win32-x64.zip
|
||||
0bfdc68d235fb824b809f59394a0e39c735235a07c1a715df26cc65cd55141b0 *electron-api.json
|
||||
bba809f7e84b67efabe8b9c92d2cf976d4d90c56c0d20d88fa893d0e47674e50 *electron-v25.9.7-darwin-arm64-dsym-snapshot.zip
|
||||
9058c533f955a792ad491094b4b2c31def667916301eb42f8d36d3b60b7bcf69 *electron-v25.9.7-darwin-arm64-dsym.zip
|
||||
59c72fb1bd0c58b4ad05a2478bb3fba69c05e195b4d5972b3723c13b70d04fa6 *electron-v25.9.7-darwin-arm64-symbols.zip
|
||||
f0fd83b62946669849c535f89eb8a44e17fa1d1a454058447759d2a2f5ce03fc *electron-v25.9.7-darwin-arm64.zip
|
||||
75473483e4dbdd7416e1dd78ab8123940904e7c63d5ae47efd481a3806dedc34 *electron-v25.9.7-darwin-x64-dsym-snapshot.zip
|
||||
119e21d1961f11978a85dc0fef58d689a94ea9593ee4122519a02e449da52cf8 *electron-v25.9.7-darwin-x64-dsym.zip
|
||||
77aaac85c725d32ca9a79e9efa1749d1404bbacb72aa9e15846da566c49543f1 *electron-v25.9.7-darwin-x64-symbols.zip
|
||||
a3c61f288d416a7ddc23c9b5db779502243f630bffaba47ab66c0f00c0018fdb *electron-v25.9.7-darwin-x64.zip
|
||||
d8fe114d07c4d0953e4ab40da6d9c958b401e4304755a7a133f13156b8ca48e4 *electron-v25.9.7-linux-arm64-debug.zip
|
||||
1e0df565ec278b6515adee40f9eed06f5931297a72a6eb71c1472f8d31dbe8b1 *electron-v25.9.7-linux-arm64-symbols.zip
|
||||
c889eec8bdb2737ff03d03d571df7834e3cef764527688db87f6578f54684d7c *electron-v25.9.7-linux-arm64.zip
|
||||
d8fe114d07c4d0953e4ab40da6d9c958b401e4304755a7a133f13156b8ca48e4 *electron-v25.9.7-linux-armv7l-debug.zip
|
||||
d58185a0eff29461868d5e8b15a387ccf8f2ffd407c06e787f1a89b73ce8b794 *electron-v25.9.7-linux-armv7l-symbols.zip
|
||||
56b31812f7b4b010f34240bb3e3ea186c8c7f87e75be483a3877f93d7b9442d1 *electron-v25.9.7-linux-armv7l.zip
|
||||
1818221bd66f005fc6cd843375db9a13dd0c8ef9709725ed9708177fbc2e26d0 *electron-v25.9.7-linux-x64-debug.zip
|
||||
87907fb6fec001e7dcd4ebb9e6340a008385a5de2e59ce06c6de0828f2ed6aaa *electron-v25.9.7-linux-x64-symbols.zip
|
||||
54b458ac590c495bef05ed6708a4667bbeac6a1865734ac3ecbb4da24ab57d26 *electron-v25.9.7-linux-x64.zip
|
||||
bba809f7e84b67efabe8b9c92d2cf976d4d90c56c0d20d88fa893d0e47674e50 *electron-v25.9.7-mas-arm64-dsym-snapshot.zip
|
||||
7d8271d31dc3a1348ccdf7f70bd111ca43f8f5dbba509dcbafafa607432070d4 *electron-v25.9.7-mas-arm64-dsym.zip
|
||||
965d581a44d70e6597b3da8864754eeb3470d1db0451d5d4385c43063e78a80d *electron-v25.9.7-mas-arm64-symbols.zip
|
||||
1ddbe56386e08612f6196f5a9b1ad6de4e45cb1525175f4a8dbb1abd14673614 *electron-v25.9.7-mas-arm64.zip
|
||||
2b2c4ae842cd6da1d4d7784e40a6e28ee087b399320d73fa8470b91570efa92f *electron-v25.9.7-mas-x64-dsym-snapshot.zip
|
||||
abed370155c8f758ab25f1e201791889cd1d1c81e967f56b1eb0e7f2116d307b *electron-v25.9.7-mas-x64-dsym.zip
|
||||
2b5d527fd2c4658dea4a0ec5c16c44f79f4be6d316a450c300cbd2635131ab2f *electron-v25.9.7-mas-x64-symbols.zip
|
||||
ca0a53619c4c71331f1641d4186496a6ad9f557357e24028c49fa25b5e8ab3e2 *electron-v25.9.7-mas-x64.zip
|
||||
491d76cd80b52bac63000c4affdf63f11a043fb196e75974648ef3cacba8eb0b *electron-v25.9.7-win32-arm64-pdb.zip
|
||||
238a44d5c38ef9b3ec521a17af3808f7148bb6106c285b37148a9a45142029e9 *electron-v25.9.7-win32-arm64-symbols.zip
|
||||
e7b968fc53cc7a10a4ccb5133af045968479685ebb9617f06817f03667fdd425 *electron-v25.9.7-win32-arm64-toolchain-profile.zip
|
||||
d3a90da294b5137177af45d492d09603363db39a9c77ce43be24d80fea03347f *electron-v25.9.7-win32-arm64.zip
|
||||
5c1a25b57e6a50ab0224f1eaef5572e122905ff0c690dda58f1c767100eab405 *electron-v25.9.7-win32-ia32-pdb.zip
|
||||
96706d1eab97189ae3eda815a270ebe02bef3e228428fcd343065866569a3a16 *electron-v25.9.7-win32-ia32-symbols.zip
|
||||
e7b968fc53cc7a10a4ccb5133af045968479685ebb9617f06817f03667fdd425 *electron-v25.9.7-win32-ia32-toolchain-profile.zip
|
||||
16fecd283bae6b72747132b8a7da68520a69752ac9d5fa1d39f3a43a8920f366 *electron-v25.9.7-win32-ia32.zip
|
||||
4c2c40cb56ee8e6091a8860c8eec1e59542d525e3c23506e0f265aec29aacb49 *electron-v25.9.7-win32-x64-pdb.zip
|
||||
5c4e56dce95bdfac8d91e7d2b6af69b7dab98d823377392a68e41352e4098daf *electron-v25.9.7-win32-x64-symbols.zip
|
||||
e7b968fc53cc7a10a4ccb5133af045968479685ebb9617f06817f03667fdd425 *electron-v25.9.7-win32-x64-toolchain-profile.zip
|
||||
d4b77ec5b7cfc8d156a0518ebd82eb373440ce2abf1af92b6faa32cf444b7256 *electron-v25.9.7-win32-x64.zip
|
||||
c80b2154d9de94a520c09b038b27f4a5e93177f8de48821c3f129cea0e52bd1c *electron.d.ts
|
||||
65f4ed4292b9114f79385dac6e79c468ad686f97b0c4d507943ad7b9a28821c4 *ffmpeg-v25.9.7-darwin-arm64.zip
|
||||
5259bd7c62211644aa6bb982a8e80d36b5c0049a76917cc1d39fc2226df02da5 *ffmpeg-v25.9.7-darwin-x64.zip
|
||||
bd52d57ff97fb56ac01a3482af905d04f0d4e9c13c53858c6d9f99957eca82da *ffmpeg-v25.9.7-linux-arm64.zip
|
||||
9b3d09177fa1e63e2a6beecfa70aeec30aeb5c1873ff21128a68051c4e23f95d *ffmpeg-v25.9.7-linux-armv7l.zip
|
||||
edc7b1c9f1a0733f109a2c0375a4e40c5bfe0bf28b7f06dcc76e1ada0aa2f125 *ffmpeg-v25.9.7-linux-x64.zip
|
||||
3eb7218d6fa54ebb3836773df6414d1b0e119071761151dc48dd39ab7421a1ba *ffmpeg-v25.9.7-mas-arm64.zip
|
||||
0dbbba4c8120c1a0a00cffec6e4ad70013eab35b77e19877c79fc7ae9caff1e9 *ffmpeg-v25.9.7-mas-x64.zip
|
||||
11853e7c01586a0b9b2a58caee308282b6cf1662b7b5bf9ac5d74de423b16f1c *ffmpeg-v25.9.7-win32-arm64.zip
|
||||
7306690feb13bb97491ca0c4ac3fa78feb5d3227043b317febddb10136eb0b2b *ffmpeg-v25.9.7-win32-ia32.zip
|
||||
da487bff8151e47827fa684607d1799e5d0c0b53dcd51e76c955ed5d2ee8f24a *ffmpeg-v25.9.7-win32-x64.zip
|
||||
77b9a9567a24c5583722d97a3cb23a075ebf1eec885cec660c53cd1b54992b30 *hunspell_dictionaries.zip
|
||||
9a3395cbd02f241134df5eb6cb65788052919bc19816c92befe6cb500eeb398c *libcxx-objects-v25.9.7-linux-arm64.zip
|
||||
1feea6b4bd9ee66c0dfd0327e422f07b4b52cb24e872b12aa37e98d819fbadc6 *libcxx-objects-v25.9.7-linux-armv7l.zip
|
||||
2f3bbda5de58e46705d622d1f671224973cef54de9cbdb8355dfe270ca092288 *libcxx-objects-v25.9.7-linux-x64.zip
|
||||
324a1eed3f8197bbeac0a513d50a394b2eaa0ac92c92f9526b0b07d74f12c4e8 *libcxx_headers.zip
|
||||
8052c0a22a9ad673d32c1ae157df9638838fbd017a030263d4cce21aeed5c824 *libcxxabi_headers.zip
|
||||
7dd7ddb90482c84fb7d29e10ca8293bc85ed692c4f1f636624229bbe8ac103af *mksnapshot-v25.9.7-darwin-arm64.zip
|
||||
696f5eb1d7eb5941ea0c2cca1e0682d77d7883f71ff18f577e6ccdb1591e8a4e *mksnapshot-v25.9.7-darwin-x64.zip
|
||||
aff92c1eb4ef1c33fa4d1fcda43ee6123f87c5acd72093f78c8d22daaba2622d *mksnapshot-v25.9.7-linux-arm64-x64.zip
|
||||
8e7463c9714b99d8fafee3830f5bcbf335ff9f66b9d8b9a77d285a688a0691c0 *mksnapshot-v25.9.7-linux-armv7l-x64.zip
|
||||
329c285e158322667844cccf99767ea1ef39ada804edbbfe99ddbe2c228ddc21 *mksnapshot-v25.9.7-linux-x64.zip
|
||||
aa30c1cb96f52bfc68e44dd7c2420a153de577652a9312a5c85256a1f2769f48 *mksnapshot-v25.9.7-mas-arm64.zip
|
||||
e32f14ed222f7e01d81982959601df7881928d5f90ada773454a06203bd83412 *mksnapshot-v25.9.7-mas-x64.zip
|
||||
472ffc38d34c059c1e1036784a11109f6d998e91d4b8c4bb0e84ded3d66f7bea *mksnapshot-v25.9.7-win32-arm64-x64.zip
|
||||
882a8880a03deffa40b24cbc59af31ac285a6a1e0e049d053f750d3db17853ea *mksnapshot-v25.9.7-win32-ia32.zip
|
||||
dfe408f01ddcc9b4f52b59fcefe49386f30eb097cef78fb98b8667deb42bc7f1 *mksnapshot-v25.9.7-win32-x64.zip
|
||||
|
||||
+1
-1
@@ -36,7 +36,7 @@ async function fetchUrl(url, options, retries = 10, retryDelay = 1000) {
|
||||
try {
|
||||
let startTime = 0;
|
||||
if (verbose) {
|
||||
log(`Start fetching ${ansiColors.magenta(url)}${retries !== 10 ? `(${10 - retries} retry}` : ''}`);
|
||||
log(`Start fetching ${ansiColors.magenta(url)}${retries !== 10 ? ` (${10 - retries} retry)` : ''}`);
|
||||
startTime = new Date().getTime();
|
||||
}
|
||||
const controller = new AbortController();
|
||||
|
||||
+1
-1
@@ -46,7 +46,7 @@ export async function fetchUrl(url: string, options: IFetchOptions, retries = 10
|
||||
try {
|
||||
let startTime = 0;
|
||||
if (verbose) {
|
||||
log(`Start fetching ${ansiColors.magenta(url)}${retries !== 10 ? `(${10 - retries} retry}` : ''}`);
|
||||
log(`Start fetching ${ansiColors.magenta(url)}${retries !== 10 ? ` (${10 - retries} retry)` : ''}`);
|
||||
startTime = new Date().getTime();
|
||||
}
|
||||
const controller = new AbortController();
|
||||
|
||||
+2
-2
@@ -528,12 +528,12 @@
|
||||
"git": {
|
||||
"name": "electron",
|
||||
"repositoryUrl": "https://github.com/electron/electron",
|
||||
"commitHash": "7916733f5ff0cf319972a0df44de01e40bbfa40e"
|
||||
"commitHash": "55738ddac34a75be9bfbdda3ac1638adfd0e5479"
|
||||
}
|
||||
},
|
||||
"isOnlyProductionDependency": true,
|
||||
"license": "MIT",
|
||||
"version": "25.9.6"
|
||||
"version": "25.9.7"
|
||||
},
|
||||
{
|
||||
"component": {
|
||||
|
||||
@@ -223,7 +223,7 @@ pub struct CommandShellArgs {
|
||||
#[clap(long, num_args = 0..=1, default_missing_value = "0")]
|
||||
pub on_port: Option<u16>,
|
||||
/// Require the given token string to be given in the handshake.
|
||||
#[clap(long)]
|
||||
#[clap(long, env = "VSCODE_CLI_REQUIRE_TOKEN")]
|
||||
pub require_token: Option<String>,
|
||||
/// Optional parent process id. If provided, the server will be stopped when the process of the given pid no longer exists
|
||||
#[clap(long, hide = true)]
|
||||
|
||||
@@ -24,7 +24,6 @@
|
||||
"tabInputTextMerge",
|
||||
"timeline",
|
||||
"contribMergeEditorMenus",
|
||||
"scmInputBoxActionButton",
|
||||
"contribSourceControlInputBoxMenu"
|
||||
],
|
||||
"categories": [
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
import { Model } from '../model';
|
||||
import { Repository as BaseRepository, Resource } from '../repository';
|
||||
import { InputBox, Git, API, Repository, Remote, RepositoryState, Branch, ForcePushMode, Ref, Submodule, Commit, Change, RepositoryUIState, Status, LogOptions, APIState, CommitOptions, RefType, CredentialsProvider, BranchQuery, PushErrorHandler, PublishEvent, FetchOptions, RemoteSourceProvider, RemoteSourcePublisher, PostCommitCommandsProvider, RefQuery, BranchProtectionProvider, InitOptions, CommitMessageProvider } from './git';
|
||||
import { InputBox, Git, API, Repository, Remote, RepositoryState, Branch, ForcePushMode, Ref, Submodule, Commit, Change, RepositoryUIState, Status, LogOptions, APIState, CommitOptions, RefType, CredentialsProvider, BranchQuery, PushErrorHandler, PublishEvent, FetchOptions, RemoteSourceProvider, RemoteSourcePublisher, PostCommitCommandsProvider, RefQuery, BranchProtectionProvider, InitOptions } from './git';
|
||||
import { Event, SourceControlInputBox, Uri, SourceControl, Disposable, commands, CancellationToken } from 'vscode';
|
||||
import { combinedDisposable, mapEvent } from '../util';
|
||||
import { toGitUri } from '../uri';
|
||||
@@ -345,13 +345,6 @@ export class ApiImpl implements API {
|
||||
return this._model.registerBranchProtectionProvider(root, provider);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated See https://github.com/microsoft/vscode/issues/195474
|
||||
*/
|
||||
registerCommitMessageProvider(provider: CommitMessageProvider): Disposable {
|
||||
return this._model.registerCommitMessageProvider(provider);
|
||||
}
|
||||
|
||||
constructor(private _model: Model) { }
|
||||
}
|
||||
|
||||
|
||||
Vendored
-7
@@ -312,12 +312,6 @@ export interface BranchProtectionProvider {
|
||||
provideBranchProtection(): BranchProtection[];
|
||||
}
|
||||
|
||||
export interface CommitMessageProvider {
|
||||
readonly title: string;
|
||||
readonly icon?: Uri | { light: Uri, dark: Uri } | ThemeIcon;
|
||||
provideCommitMessage(repository: Repository, changes: string[], cancellationToken?: CancellationToken): Promise<string | undefined>;
|
||||
}
|
||||
|
||||
export type APIState = 'uninitialized' | 'initialized';
|
||||
|
||||
export interface PublishEvent {
|
||||
@@ -345,7 +339,6 @@ export interface API {
|
||||
registerPostCommitCommandsProvider(provider: PostCommitCommandsProvider): Disposable;
|
||||
registerPushErrorHandler(handler: PushErrorHandler): Disposable;
|
||||
registerBranchProtectionProvider(root: Uri, provider: BranchProtectionProvider): Disposable;
|
||||
registerCommitMessageProvider(provider: CommitMessageProvider): Disposable;
|
||||
}
|
||||
|
||||
export interface GitExtension {
|
||||
|
||||
@@ -3631,26 +3631,6 @@ export class CommandCenter {
|
||||
}
|
||||
}
|
||||
|
||||
@command('git.generateCommitMessage', { repository: true })
|
||||
async generateCommitMessage(repository: Repository): Promise<void> {
|
||||
if (!repository || !this.model.commitMessageProvider) {
|
||||
return;
|
||||
}
|
||||
|
||||
await window.withProgress({ location: ProgressLocation.SourceControl }, async () => {
|
||||
await repository.generateCommitMessage();
|
||||
});
|
||||
}
|
||||
|
||||
@command('git.generateCommitMessageCancel', { repository: true })
|
||||
generateCommitMessageCancel(repository: Repository): void {
|
||||
if (!repository || !this.model.commitMessageProvider) {
|
||||
return;
|
||||
}
|
||||
|
||||
repository.generateCommitMessageCancel();
|
||||
}
|
||||
|
||||
@command('git.viewChanges', { repository: true })
|
||||
viewChanges(repository: Repository): void {
|
||||
this._viewChanges('Git: Changes', repository.workingTreeGroup.resourceStates);
|
||||
|
||||
@@ -1,188 +0,0 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { CancellationToken, Disposable, Event, EventEmitter, Uri, workspace, ThemeIcon, l10n, SourceControlInputBoxActionButton } from 'vscode';
|
||||
import { CommitMessageProvider, Status, Repository as ApiRepository } from './api/git';
|
||||
import { Repository } from './repository';
|
||||
import { dispose } from './util';
|
||||
|
||||
export interface ICommitMessageProviderRegistry {
|
||||
readonly onDidChangeCommitMessageProvider: Event<void>;
|
||||
|
||||
commitMessageProvider: CommitMessageProvider | undefined;
|
||||
registerCommitMessageProvider(provider: CommitMessageProvider): Disposable;
|
||||
}
|
||||
|
||||
export class TestCommitMessageProvider implements CommitMessageProvider {
|
||||
|
||||
readonly icon = new ThemeIcon('rocket');
|
||||
readonly title = 'Generate Commit Message (Test)';
|
||||
|
||||
private readonly _changesMap = new Map<string, [string[], number]>();
|
||||
|
||||
async provideCommitMessage(repository: ApiRepository, changes: string[], token: CancellationToken): Promise<string | undefined> {
|
||||
console.log('Repository: ', repository.rootUri.fsPath);
|
||||
|
||||
if (token.isCancellationRequested) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
return new Promise(resolve => {
|
||||
token.onCancellationRequested(() => resolve(undefined));
|
||||
|
||||
setTimeout(() => {
|
||||
const attemptCount = this.getAttemptCount(repository, changes);
|
||||
this._changesMap.set(repository.rootUri.fsPath, [changes, attemptCount]);
|
||||
|
||||
resolve(`Test commit message (Attempt No. ${attemptCount})`);
|
||||
}, 5000);
|
||||
});
|
||||
}
|
||||
|
||||
private getAttemptCount(repository: ApiRepository, changes: string[]): number {
|
||||
const [previousChanges, previousCount] = this._changesMap.get(repository.rootUri.fsPath) ?? [[], 1];
|
||||
if (previousChanges.length !== changes.length) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
for (let index = 0; index < changes.length; index++) {
|
||||
if (previousChanges[index] !== changes[index]) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return previousCount + 1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
interface ActionButtonState {
|
||||
readonly isGenerating: boolean;
|
||||
readonly enabled: boolean;
|
||||
}
|
||||
|
||||
export class GenerateCommitMessageActionButton {
|
||||
|
||||
private _onDidChange = new EventEmitter<void>();
|
||||
get onDidChange(): Event<void> { return this._onDidChange.event; }
|
||||
|
||||
private _state: ActionButtonState;
|
||||
get state() { return this._state; }
|
||||
set state(state: ActionButtonState) {
|
||||
if (this._state.enabled === state.enabled &&
|
||||
this._state.isGenerating === state.isGenerating) {
|
||||
return;
|
||||
}
|
||||
|
||||
this._state = state;
|
||||
this._onDidChange.fire();
|
||||
}
|
||||
|
||||
get button(): SourceControlInputBoxActionButton | undefined {
|
||||
if (this.commitMessageProviderRegistry.commitMessageProvider === undefined) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
return this.state.isGenerating ?
|
||||
{
|
||||
icon: new ThemeIcon('debug-stop'),
|
||||
command: {
|
||||
title: l10n.t('Cancel'),
|
||||
command: 'git.generateCommitMessageCancel',
|
||||
arguments: [this.repository.sourceControl]
|
||||
},
|
||||
enabled: this.state.enabled,
|
||||
} :
|
||||
{
|
||||
icon: this.commitMessageProviderRegistry.commitMessageProvider.icon ?? new ThemeIcon('sparkle'),
|
||||
command: {
|
||||
title: this.commitMessageProviderRegistry.commitMessageProvider.title,
|
||||
command: 'git.generateCommitMessage',
|
||||
arguments: [this.repository.sourceControl]
|
||||
},
|
||||
enabled: this.state.enabled
|
||||
};
|
||||
}
|
||||
|
||||
private disposables: Disposable[] = [];
|
||||
|
||||
constructor(
|
||||
private readonly repository: Repository,
|
||||
private readonly commitMessageProviderRegistry: ICommitMessageProviderRegistry
|
||||
) {
|
||||
this._state = {
|
||||
enabled: false,
|
||||
isGenerating: false
|
||||
};
|
||||
|
||||
const root = Uri.file(repository.root);
|
||||
this.disposables.push(workspace.onDidChangeConfiguration(e => {
|
||||
if (e.affectsConfiguration('git.enableSmartCommit', root) ||
|
||||
e.affectsConfiguration('git.smartCommitChanges', root) ||
|
||||
e.affectsConfiguration('git.suggestSmartCommit', root)) {
|
||||
this.onDidChangeSmartCommitSettings();
|
||||
}
|
||||
}));
|
||||
repository.onDidRunGitStatus(this.onDidRunGitStatus, this, this.disposables);
|
||||
repository.onDidStartCommitMessageGeneration(this.onDidStartCommitMessageGeneration, this, this.disposables);
|
||||
repository.onDidEndCommitMessageGeneration(this.onDidEndCommitMessageGeneration, this, this.disposables);
|
||||
commitMessageProviderRegistry.onDidChangeCommitMessageProvider(this.onDidChangeCommitMessageProvider, this, this.disposables);
|
||||
}
|
||||
|
||||
private onDidChangeCommitMessageProvider(): void {
|
||||
this._onDidChange.fire();
|
||||
}
|
||||
|
||||
private onDidStartCommitMessageGeneration(): void {
|
||||
this.state = { ...this.state, isGenerating: true };
|
||||
}
|
||||
|
||||
private onDidEndCommitMessageGeneration(): void {
|
||||
this.state = { ...this.state, isGenerating: false };
|
||||
}
|
||||
|
||||
private onDidChangeSmartCommitSettings(): void {
|
||||
this.state = {
|
||||
...this.state,
|
||||
enabled: this.repositoryHasChangesToCommit()
|
||||
};
|
||||
}
|
||||
|
||||
private onDidRunGitStatus(): void {
|
||||
this.state = {
|
||||
...this.state,
|
||||
enabled: this.repositoryHasChangesToCommit()
|
||||
};
|
||||
}
|
||||
|
||||
private repositoryHasChangesToCommit(): boolean {
|
||||
const config = workspace.getConfiguration('git', Uri.file(this.repository.root));
|
||||
const enableSmartCommit = config.get<boolean>('enableSmartCommit') === true;
|
||||
const suggestSmartCommit = config.get<boolean>('suggestSmartCommit') === true;
|
||||
const smartCommitChanges = config.get<'all' | 'tracked'>('smartCommitChanges', 'all');
|
||||
|
||||
const resources = [...this.repository.indexGroup.resourceStates];
|
||||
|
||||
if (
|
||||
// Smart commit enabled (all)
|
||||
(enableSmartCommit && smartCommitChanges === 'all') ||
|
||||
// Smart commit disabled, smart suggestion enabled
|
||||
(!enableSmartCommit && suggestSmartCommit)
|
||||
) {
|
||||
resources.push(...this.repository.workingTreeGroup.resourceStates);
|
||||
}
|
||||
|
||||
// Smart commit enabled (tracked only)
|
||||
if (enableSmartCommit && smartCommitChanges === 'tracked') {
|
||||
resources.push(...this.repository.workingTreeGroup.resourceStates.filter(r => r.type !== Status.UNTRACKED));
|
||||
}
|
||||
|
||||
return resources.length !== 0;
|
||||
}
|
||||
|
||||
dispose(): void {
|
||||
this.disposables = dispose(this.disposables);
|
||||
}
|
||||
}
|
||||
@@ -12,14 +12,13 @@ import { Git } from './git';
|
||||
import * as path from 'path';
|
||||
import * as fs from 'fs';
|
||||
import { fromGitUri } from './uri';
|
||||
import { APIState as State, CredentialsProvider, PushErrorHandler, PublishEvent, RemoteSourcePublisher, PostCommitCommandsProvider, BranchProtectionProvider, CommitMessageProvider } from './api/git';
|
||||
import { APIState as State, CredentialsProvider, PushErrorHandler, PublishEvent, RemoteSourcePublisher, PostCommitCommandsProvider, BranchProtectionProvider } from './api/git';
|
||||
import { Askpass } from './askpass';
|
||||
import { IPushErrorHandlerRegistry } from './pushError';
|
||||
import { ApiRepository } from './api/api1';
|
||||
import { IRemoteSourcePublisherRegistry } from './remotePublisher';
|
||||
import { IPostCommitCommandsProviderRegistry } from './postCommitCommands';
|
||||
import { IBranchProtectionProviderRegistry } from './branchProtection';
|
||||
import { ICommitMessageProviderRegistry } from './commitMessageProvider';
|
||||
|
||||
class RepositoryPick implements QuickPickItem {
|
||||
@memoize get label(): string {
|
||||
@@ -171,7 +170,7 @@ class UnsafeRepositoriesManager {
|
||||
}
|
||||
}
|
||||
|
||||
export class Model implements IRepositoryResolver, IBranchProtectionProviderRegistry, ICommitMessageProviderRegistry, IRemoteSourcePublisherRegistry, IPostCommitCommandsProviderRegistry, IPushErrorHandlerRegistry {
|
||||
export class Model implements IRepositoryResolver, IBranchProtectionProviderRegistry, IRemoteSourcePublisherRegistry, IPostCommitCommandsProviderRegistry, IPushErrorHandlerRegistry {
|
||||
|
||||
private _onDidOpenRepository = new EventEmitter<Repository>();
|
||||
readonly onDidOpenRepository: Event<Repository> = this._onDidOpenRepository.event;
|
||||
@@ -238,14 +237,6 @@ export class Model implements IRepositoryResolver, IBranchProtectionProviderRegi
|
||||
|
||||
private pushErrorHandlers = new Set<PushErrorHandler>();
|
||||
|
||||
private _commitMessageProvider: CommitMessageProvider | undefined;
|
||||
get commitMessageProvider(): CommitMessageProvider | undefined {
|
||||
return this._commitMessageProvider;
|
||||
}
|
||||
|
||||
private _onDidChangeCommitMessageProvider = new EventEmitter<void>();
|
||||
readonly onDidChangeCommitMessageProvider = this._onDidChangeCommitMessageProvider.event;
|
||||
|
||||
private _unsafeRepositoriesManager: UnsafeRepositoriesManager;
|
||||
get unsafeRepositories(): string[] {
|
||||
return this._unsafeRepositoriesManager.repositories;
|
||||
@@ -587,7 +578,7 @@ export class Model implements IRepositoryResolver, IBranchProtectionProviderRegi
|
||||
|
||||
// Open repository
|
||||
const [dotGit, repositoryRootRealPath] = await Promise.all([this.git.getRepositoryDotGit(repositoryRoot), this.getRepositoryRootRealPath(repositoryRoot)]);
|
||||
const repository = new Repository(this.git.open(repositoryRoot, repositoryRootRealPath, dotGit, this.logger), this, this, this, this, this, this, this.globalState, this.logger, this.telemetryReporter);
|
||||
const repository = new Repository(this.git.open(repositoryRoot, repositoryRootRealPath, dotGit, this.logger), this, this, this, this, this, this.globalState, this.logger, this.telemetryReporter);
|
||||
|
||||
this.open(repository);
|
||||
this._closedRepositoriesManager.deleteRepository(repository.root);
|
||||
@@ -948,16 +939,6 @@ export class Model implements IRepositoryResolver, IBranchProtectionProviderRegi
|
||||
return toDisposable(() => this.pushErrorHandlers.delete(handler));
|
||||
}
|
||||
|
||||
registerCommitMessageProvider(provider: CommitMessageProvider): Disposable {
|
||||
this._commitMessageProvider = provider;
|
||||
this._onDidChangeCommitMessageProvider.fire();
|
||||
|
||||
return toDisposable(() => {
|
||||
this._commitMessageProvider = undefined;
|
||||
this._onDidChangeCommitMessageProvider.fire();
|
||||
});
|
||||
}
|
||||
|
||||
getPushErrorHandlers(): PushErrorHandler[] {
|
||||
return [...this.pushErrorHandlers];
|
||||
}
|
||||
|
||||
@@ -24,7 +24,6 @@ import { IPostCommitCommandsProviderRegistry, CommitCommandsCenter } from './pos
|
||||
import { Operation, OperationKind, OperationManager, OperationResult } from './operation';
|
||||
import { GitBranchProtectionProvider, IBranchProtectionProviderRegistry } from './branchProtection';
|
||||
import { GitHistoryProvider } from './historyProvider';
|
||||
import { GenerateCommitMessageActionButton, ICommitMessageProviderRegistry } from './commitMessageProvider';
|
||||
|
||||
const timeout = (millis: number) => new Promise(c => setTimeout(c, millis));
|
||||
|
||||
@@ -34,47 +33,6 @@ function getIconUri(iconName: string, theme: string): Uri {
|
||||
return Uri.file(path.join(iconsRootPath, theme, `${iconName}.svg`));
|
||||
}
|
||||
|
||||
function wrapCommitMessage(message: string, subjectLineLength: number, bodyLineLength: number): string {
|
||||
const messageLinesWrapped: string[] = [];
|
||||
const messageLines = message.split(/\r?\n/g);
|
||||
|
||||
for (let index = 0; index < messageLines.length; index++) {
|
||||
const messageLine = messageLines[index];
|
||||
const threshold = index === 0 ? subjectLineLength : bodyLineLength;
|
||||
|
||||
if (messageLine.length <= threshold) {
|
||||
messageLinesWrapped.push(messageLine);
|
||||
continue;
|
||||
}
|
||||
|
||||
let position = 0;
|
||||
const lineSegments: string[] = [];
|
||||
while (messageLine.length - position > threshold) {
|
||||
const lastSpaceBeforeThreshold = messageLine.lastIndexOf(' ', position + threshold);
|
||||
if (lastSpaceBeforeThreshold !== -1 && lastSpaceBeforeThreshold > position) {
|
||||
lineSegments.push(...[messageLine.substring(position, lastSpaceBeforeThreshold), '\n']);
|
||||
position = lastSpaceBeforeThreshold + 1;
|
||||
} else {
|
||||
// Find first space after threshold
|
||||
const firstSpaceAfterThreshold = messageLine.indexOf(' ', position);
|
||||
if (firstSpaceAfterThreshold !== -1) {
|
||||
lineSegments.push(...[messageLine.substring(position, firstSpaceAfterThreshold), '\n']);
|
||||
position = firstSpaceAfterThreshold + 1;
|
||||
} else {
|
||||
lineSegments.push(messageLine.substring(position));
|
||||
position = messageLine.length;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (position < messageLine.length) {
|
||||
lineSegments.push(messageLine.substring(position));
|
||||
}
|
||||
messageLinesWrapped.push(lineSegments.join(''));
|
||||
}
|
||||
|
||||
return messageLinesWrapped.join('\n');
|
||||
}
|
||||
|
||||
export const enum RepositoryState {
|
||||
Idle,
|
||||
Disposed
|
||||
@@ -845,7 +803,6 @@ export class Repository implements Disposable {
|
||||
private commitCommandCenter: CommitCommandsCenter;
|
||||
private resourceCommandResolver = new ResourceCommandResolver(this);
|
||||
private updateModelStateCancellationTokenSource: CancellationTokenSource | undefined;
|
||||
private generateCommitMessageCancellationTokenSource: CancellationTokenSource | undefined;
|
||||
private disposables: Disposable[] = [];
|
||||
|
||||
constructor(
|
||||
@@ -855,7 +812,6 @@ export class Repository implements Disposable {
|
||||
remoteSourcePublisherRegistry: IRemoteSourcePublisherRegistry,
|
||||
postCommitCommandsProviderRegistry: IPostCommitCommandsProviderRegistry,
|
||||
private readonly branchProtectionProviderRegistry: IBranchProtectionProviderRegistry,
|
||||
private readonly commitMessageProviderRegistry: ICommitMessageProviderRegistry,
|
||||
globalState: Memento,
|
||||
private readonly logger: LogOutputChannel,
|
||||
private telemetryReporter: TelemetryReporter
|
||||
@@ -901,11 +857,6 @@ export class Repository implements Disposable {
|
||||
this._sourceControl.acceptInputCommand = { command: 'git.commit', title: l10n.t('Commit'), arguments: [this._sourceControl] };
|
||||
this._sourceControl.inputBox.validateInput = this.validateInput.bind(this);
|
||||
|
||||
const inputActionButton = new GenerateCommitMessageActionButton(this, commitMessageProviderRegistry);
|
||||
this.disposables.push(inputActionButton);
|
||||
inputActionButton.onDidChange(() => this._sourceControl.inputBox.actionButton = inputActionButton.button);
|
||||
this._sourceControl.inputBox.actionButton = inputActionButton.button;
|
||||
|
||||
this.disposables.push(this._sourceControl);
|
||||
|
||||
this.updateInputBoxPlaceholder();
|
||||
@@ -2086,58 +2037,6 @@ export class Repository implements Disposable {
|
||||
});
|
||||
}
|
||||
|
||||
async generateCommitMessage(): Promise<void> {
|
||||
if (!this.commitMessageProviderRegistry.commitMessageProvider) {
|
||||
return;
|
||||
}
|
||||
|
||||
this._onDidStartCommitMessageGeneration.fire();
|
||||
this.generateCommitMessageCancellationTokenSource?.cancel();
|
||||
this.generateCommitMessageCancellationTokenSource = new CancellationTokenSource();
|
||||
|
||||
try {
|
||||
const diff: string[] = [];
|
||||
if (this.indexGroup.resourceStates.length !== 0) {
|
||||
for (const file of this.indexGroup.resourceStates.map(r => r.resourceUri.fsPath)) {
|
||||
diff.push(await this.diffIndexWithHEAD(file));
|
||||
}
|
||||
} else {
|
||||
for (const file of this.workingTreeGroup.resourceStates.map(r => r.resourceUri.fsPath)) {
|
||||
diff.push(await this.diffWithHEAD(file));
|
||||
}
|
||||
}
|
||||
|
||||
if (diff.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
const token = this.generateCommitMessageCancellationTokenSource.token;
|
||||
const provider = this.commitMessageProviderRegistry.commitMessageProvider;
|
||||
const commitMessage = await provider.provideCommitMessage(new ApiRepository(this), diff, token);
|
||||
if (commitMessage) {
|
||||
const config = workspace.getConfiguration('git');
|
||||
const subjectLineLength = config.get<number | null>('inputValidationSubjectLength', null);
|
||||
const bodyLineLength = config.get<number>('inputValidationLength', 50);
|
||||
|
||||
this.inputBox.value = wrapCommitMessage(commitMessage, subjectLineLength ?? bodyLineLength, bodyLineLength);
|
||||
}
|
||||
}
|
||||
catch (err) {
|
||||
this.logger.error(err);
|
||||
}
|
||||
finally {
|
||||
this._onDidEndCommitMessageGeneration.fire();
|
||||
}
|
||||
}
|
||||
|
||||
generateCommitMessageCancel(): void {
|
||||
this.generateCommitMessageCancellationTokenSource?.cancel();
|
||||
this.generateCommitMessageCancellationTokenSource?.dispose();
|
||||
this.generateCommitMessageCancellationTokenSource = undefined;
|
||||
|
||||
this._onDidEndCommitMessageGeneration.fire();
|
||||
}
|
||||
|
||||
// Parses output of `git check-ignore -v -z` and returns only those paths
|
||||
// that are actually ignored by git.
|
||||
// Matches to a negative pattern (starting with '!') are filtered out.
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
"../../src/vscode-dts/vscode.proposed.diffCommand.d.ts",
|
||||
"../../src/vscode-dts/vscode.proposed.scmActionButton.d.ts",
|
||||
"../../src/vscode-dts/vscode.proposed.scmHistoryProvider.d.ts",
|
||||
"../../src/vscode-dts/vscode.proposed.scmInputBoxActionButton.d.ts",
|
||||
"../../src/vscode-dts/vscode.proposed.scmSelectedProvider.d.ts",
|
||||
"../../src/vscode-dts/vscode.proposed.scmValidation.d.ts",
|
||||
"../../src/vscode-dts/vscode.proposed.tabInputTextMerge.d.ts",
|
||||
|
||||
@@ -35,7 +35,8 @@
|
||||
".gitattributes",
|
||||
".gitconfig",
|
||||
".gitmodules",
|
||||
".editorconfig"
|
||||
".editorconfig",
|
||||
".repo"
|
||||
],
|
||||
"filenames": [
|
||||
"gitconfig",
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
'use strict';
|
||||
|
||||
var updateGrammar = require('vscode-grammar-updater');
|
||||
|
||||
function adaptLess(grammar) {
|
||||
grammar.name = 'Less';
|
||||
grammar.scopeName = 'source.css.less';
|
||||
}
|
||||
|
||||
async function updateGrammars() {
|
||||
await updateGrammar.update('radium-v/Better-Less', 'Syntaxes/Better%20Less.tmLanguage', './syntaxes/less.tmLanguage.json', adaptLess, 'master');
|
||||
}
|
||||
|
||||
updateGrammars();
|
||||
|
||||
@@ -5,12 +5,12 @@
|
||||
"type": "git",
|
||||
"git": {
|
||||
"name": "language-less",
|
||||
"repositoryUrl": "https://github.com/atom/language-less",
|
||||
"commitHash": "87d4d59e8de6796b506b81a16e1dc1fafc99d30f"
|
||||
"repositoryUrl": "https://github.com/radium-v/Better-Less",
|
||||
"commitHash": "05de79f600227201e35f07a49f07acce80e49dbf"
|
||||
}
|
||||
},
|
||||
"license": "MIT",
|
||||
"version": "0.34.2"
|
||||
"version": "0.6.1"
|
||||
}
|
||||
],
|
||||
"version": 1
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"vscode": "*"
|
||||
},
|
||||
"scripts": {
|
||||
"update-grammar": "node ../node_modules/vscode-grammar-updater/bin atom/language-less grammars/less.cson ./syntaxes/less.tmLanguage.json"
|
||||
"update-grammar": "node ./build/update-grammar.js"
|
||||
},
|
||||
"contributes": {
|
||||
"languages": [
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -94,7 +94,10 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "entity.name.tag.css",
|
||||
"scope": [
|
||||
"entity.name.tag.css",
|
||||
"entity.name.tag.less"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#d7ba7d"
|
||||
}
|
||||
@@ -108,10 +111,11 @@
|
||||
{
|
||||
"scope": [
|
||||
"entity.other.attribute-name.class.css",
|
||||
"entity.other.attribute-name.class.mixin.css",
|
||||
"source.css entity.other.attribute-name.class",
|
||||
"entity.other.attribute-name.id.css",
|
||||
"entity.other.attribute-name.parent-selector.css",
|
||||
"entity.other.attribute-name.pseudo-class.css",
|
||||
"entity.other.attribute-name.parent.less",
|
||||
"source.css entity.other.attribute-name.pseudo-class",
|
||||
"entity.other.attribute-name.pseudo-element.css",
|
||||
"source.css.less entity.other.attribute-name.id",
|
||||
"entity.other.attribute-name.scss"
|
||||
@@ -306,9 +310,7 @@
|
||||
"scope": [
|
||||
"support.type.vendored.property-name",
|
||||
"support.type.property-name",
|
||||
"variable.css",
|
||||
"variable.scss",
|
||||
"variable.other.less",
|
||||
"source.css variable",
|
||||
"source.coffee.embedded"
|
||||
],
|
||||
"settings": {
|
||||
|
||||
@@ -86,7 +86,10 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "entity.name.tag.css",
|
||||
"scope": [
|
||||
"entity.name.tag.css",
|
||||
"entity.name.tag.less"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#d7ba7d"
|
||||
}
|
||||
@@ -100,10 +103,11 @@
|
||||
{
|
||||
"scope": [
|
||||
"entity.other.attribute-name.class.css",
|
||||
"entity.other.attribute-name.class.mixin.css",
|
||||
"source.css entity.other.attribute-name.class",
|
||||
"entity.other.attribute-name.id.css",
|
||||
"entity.other.attribute-name.parent-selector.css",
|
||||
"entity.other.attribute-name.pseudo-class.css",
|
||||
"entity.other.attribute-name.parent.less",
|
||||
"source.css entity.other.attribute-name.pseudo-class",
|
||||
"entity.other.attribute-name.pseudo-element.css",
|
||||
"source.css.less entity.other.attribute-name.id",
|
||||
"entity.other.attribute-name.scss"
|
||||
@@ -266,9 +270,7 @@
|
||||
"scope": [
|
||||
"support.type.vendored.property-name",
|
||||
"support.type.property-name",
|
||||
"variable.css",
|
||||
"variable.scss",
|
||||
"variable.other.less",
|
||||
"source.css variable",
|
||||
"source.coffee.embedded"
|
||||
],
|
||||
"settings": {
|
||||
|
||||
@@ -80,10 +80,11 @@
|
||||
{
|
||||
"scope": [
|
||||
"entity.other.attribute-name.class.css",
|
||||
"entity.other.attribute-name.class.mixin.css",
|
||||
"source.css entity.other.attribute-name.class",
|
||||
"entity.other.attribute-name.id.css",
|
||||
"entity.other.attribute-name.parent-selector.css",
|
||||
"entity.other.attribute-name.pseudo-class.css",
|
||||
"entity.other.attribute-name.parent.less",
|
||||
"source.css entity.other.attribute-name.pseudo-class",
|
||||
"entity.other.attribute-name.pseudo-element.css",
|
||||
"source.css.less entity.other.attribute-name.id",
|
||||
"entity.other.attribute-name.scss"
|
||||
@@ -279,9 +280,7 @@
|
||||
"scope": [
|
||||
"support.type.vendored.property-name",
|
||||
"support.type.property-name",
|
||||
"variable.css",
|
||||
"variable.scss",
|
||||
"variable.other.less",
|
||||
"source.css variable",
|
||||
"source.coffee.embedded"
|
||||
],
|
||||
"settings": {
|
||||
|
||||
@@ -114,10 +114,11 @@
|
||||
{
|
||||
"scope": [
|
||||
"entity.other.attribute-name.class.css",
|
||||
"entity.other.attribute-name.class.mixin.css",
|
||||
"source.css entity.other.attribute-name.class",
|
||||
"entity.other.attribute-name.id.css",
|
||||
"entity.other.attribute-name.parent-selector.css",
|
||||
"entity.other.attribute-name.pseudo-class.css",
|
||||
"entity.other.attribute-name.parent.less",
|
||||
"source.css entity.other.attribute-name.pseudo-class",
|
||||
"entity.other.attribute-name.pseudo-element.css",
|
||||
"source.css.less entity.other.attribute-name.id",
|
||||
"entity.other.attribute-name.scss"
|
||||
@@ -327,9 +328,7 @@
|
||||
"scope": [
|
||||
"support.type.vendored.property-name",
|
||||
"support.type.property-name",
|
||||
"variable.css",
|
||||
"variable.scss",
|
||||
"variable.other.less",
|
||||
"source.css variable",
|
||||
"source.coffee.embedded"
|
||||
],
|
||||
"settings": {
|
||||
|
||||
@@ -252,7 +252,8 @@
|
||||
"meta.selector",
|
||||
"meta.selector entity",
|
||||
"meta.selector entity punctuation",
|
||||
"entity.name.tag.css"
|
||||
"entity.name.tag.css",
|
||||
"entity.name.tag.less"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#7A3E9D"
|
||||
|
||||
@@ -140,7 +140,10 @@
|
||||
},
|
||||
{
|
||||
"name": "Keyword, Storage",
|
||||
"scope": "keyword, storage, storage.type, entity.name.tag.css",
|
||||
"scope": [
|
||||
"keyword, storage, storage.type, entity.name.tag.css",
|
||||
"entity.name.tag.less"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "",
|
||||
"foreground": "#EBBBFF"
|
||||
|
||||
@@ -53,8 +53,7 @@
|
||||
"workspaceTrust",
|
||||
"telemetry",
|
||||
"testingActiveProfile",
|
||||
"windowActivity",
|
||||
"interactiveUserActions"
|
||||
"windowActivity"
|
||||
],
|
||||
"private": true,
|
||||
"activationEvents": [],
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
[
|
||||
{
|
||||
"c": "#",
|
||||
"t": "source.css.less meta.selector.css entity.other.attribute-name.id punctuation.definition.entity.css",
|
||||
"t": "source.css.less meta.selector.less entity.other.attribute-name.id.less punctuation.definition.entity.less",
|
||||
"r": {
|
||||
"dark_plus": "source.css.less entity.other.attribute-name.id: #D7BA7D",
|
||||
"light_plus": "source.css.less entity.other.attribute-name.id: #800000",
|
||||
@@ -15,7 +15,7 @@
|
||||
},
|
||||
{
|
||||
"c": "f",
|
||||
"t": "source.css.less meta.selector.css entity.other.attribute-name.id",
|
||||
"t": "source.css.less meta.selector.less entity.other.attribute-name.id.less",
|
||||
"r": {
|
||||
"dark_plus": "source.css.less entity.other.attribute-name.id: #D7BA7D",
|
||||
"light_plus": "source.css.less entity.other.attribute-name.id: #800000",
|
||||
@@ -29,7 +29,7 @@
|
||||
},
|
||||
{
|
||||
"c": "(",
|
||||
"t": "source.css.less meta.brace.round.css",
|
||||
"t": "source.css.less meta.selector.less meta.group.less punctuation.definition.group.begin.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -43,35 +43,35 @@
|
||||
},
|
||||
{
|
||||
"c": "@",
|
||||
"t": "source.css.less variable.other.less punctuation.definition.variable.less",
|
||||
"t": "source.css.less meta.selector.less meta.group.less meta.property-value.less variable.other.readwrite.less punctuation.definition.variable.less",
|
||||
"r": {
|
||||
"dark_plus": "variable.other.less: #9CDCFE",
|
||||
"light_plus": "variable.other.less: #E50000",
|
||||
"dark_vs": "variable.other.less: #9CDCFE",
|
||||
"light_vs": "variable.other.less: #E50000",
|
||||
"hc_black": "variable.other.less: #D4D4D4",
|
||||
"dark_modern": "variable.other.less: #9CDCFE",
|
||||
"hc_light": "variable.other.less: #264F78",
|
||||
"light_modern": "variable.other.less: #E50000"
|
||||
"dark_plus": "source.css variable: #9CDCFE",
|
||||
"light_plus": "source.css variable: #E50000",
|
||||
"dark_vs": "source.css variable: #9CDCFE",
|
||||
"light_vs": "source.css variable: #E50000",
|
||||
"hc_black": "source.css variable: #D4D4D4",
|
||||
"dark_modern": "source.css variable: #9CDCFE",
|
||||
"hc_light": "source.css variable: #264F78",
|
||||
"light_modern": "source.css variable: #E50000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "hm",
|
||||
"t": "source.css.less variable.other.less",
|
||||
"t": "source.css.less meta.selector.less meta.group.less meta.property-value.less variable.other.readwrite.less support.other.variable.less",
|
||||
"r": {
|
||||
"dark_plus": "variable.other.less: #9CDCFE",
|
||||
"light_plus": "variable.other.less: #E50000",
|
||||
"dark_vs": "variable.other.less: #9CDCFE",
|
||||
"light_vs": "variable.other.less: #E50000",
|
||||
"hc_black": "variable.other.less: #D4D4D4",
|
||||
"dark_modern": "variable.other.less: #9CDCFE",
|
||||
"hc_light": "variable.other.less: #264F78",
|
||||
"light_modern": "variable.other.less: #E50000"
|
||||
"dark_plus": "source.css variable: #9CDCFE",
|
||||
"light_plus": "source.css variable: #E50000",
|
||||
"dark_vs": "source.css variable: #9CDCFE",
|
||||
"light_vs": "source.css variable: #E50000",
|
||||
"hc_black": "source.css variable: #D4D4D4",
|
||||
"dark_modern": "source.css variable: #9CDCFE",
|
||||
"hc_light": "source.css variable: #264F78",
|
||||
"light_modern": "source.css variable: #E50000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": ":",
|
||||
"t": "source.css.less punctuation.separator.key-value.css",
|
||||
"t": "source.css.less meta.selector.less meta.group.less meta.property-value.less punctuation.separator.key-value.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -85,7 +85,7 @@
|
||||
},
|
||||
{
|
||||
"c": " ",
|
||||
"t": "source.css.less",
|
||||
"t": "source.css.less meta.selector.less meta.group.less meta.property-value.less meta.property-value.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -99,7 +99,7 @@
|
||||
},
|
||||
{
|
||||
"c": "\"",
|
||||
"t": "source.css.less string.quoted.double.css punctuation.definition.string.begin.css",
|
||||
"t": "source.css.less meta.selector.less meta.group.less meta.property-value.less string.quoted.double.less punctuation.definition.string.begin.less",
|
||||
"r": {
|
||||
"dark_plus": "string: #CE9178",
|
||||
"light_plus": "string: #A31515",
|
||||
@@ -113,7 +113,7 @@
|
||||
},
|
||||
{
|
||||
"c": "broken highlighting in VS Code",
|
||||
"t": "source.css.less string.quoted.double.css",
|
||||
"t": "source.css.less meta.selector.less meta.group.less meta.property-value.less string.quoted.double.less",
|
||||
"r": {
|
||||
"dark_plus": "string: #CE9178",
|
||||
"light_plus": "string: #A31515",
|
||||
@@ -127,7 +127,7 @@
|
||||
},
|
||||
{
|
||||
"c": "\"",
|
||||
"t": "source.css.less string.quoted.double.css punctuation.definition.string.end.css",
|
||||
"t": "source.css.less meta.selector.less meta.group.less meta.property-value.less string.quoted.double.less punctuation.definition.string.end.less",
|
||||
"r": {
|
||||
"dark_plus": "string: #CE9178",
|
||||
"light_plus": "string: #A31515",
|
||||
@@ -141,7 +141,7 @@
|
||||
},
|
||||
{
|
||||
"c": ")",
|
||||
"t": "source.css.less meta.brace.round.css",
|
||||
"t": "source.css.less meta.selector.less meta.group.less punctuation.definition.group.end.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -155,7 +155,7 @@
|
||||
},
|
||||
{
|
||||
"c": " ",
|
||||
"t": "source.css.less",
|
||||
"t": "source.css.less meta.selector.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -169,7 +169,7 @@
|
||||
},
|
||||
{
|
||||
"c": "{",
|
||||
"t": "source.css.less meta.property-list.css punctuation.section.property-list.begin.bracket.curly.css",
|
||||
"t": "source.css.less meta.property-list.less punctuation.definition.block.begin.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -183,7 +183,7 @@
|
||||
},
|
||||
{
|
||||
"c": " ",
|
||||
"t": "source.css.less meta.property-list.css",
|
||||
"t": "source.css.less meta.property-list.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -197,21 +197,21 @@
|
||||
},
|
||||
{
|
||||
"c": "content",
|
||||
"t": "source.css.less meta.property-list.css entity.name.tag.css",
|
||||
"t": "source.css.less meta.property-list.less support.type.property-name.less",
|
||||
"r": {
|
||||
"dark_plus": "entity.name.tag.css: #D7BA7D",
|
||||
"light_plus": "entity.name.tag: #800000",
|
||||
"dark_vs": "entity.name.tag.css: #D7BA7D",
|
||||
"light_vs": "entity.name.tag: #800000",
|
||||
"hc_black": "entity.name.tag.css: #D7BA7D",
|
||||
"dark_modern": "entity.name.tag.css: #D7BA7D",
|
||||
"hc_light": "entity.name.tag: #0F4A85",
|
||||
"light_modern": "entity.name.tag: #800000"
|
||||
"dark_plus": "support.type.property-name: #9CDCFE",
|
||||
"light_plus": "support.type.property-name: #E50000",
|
||||
"dark_vs": "support.type.property-name: #9CDCFE",
|
||||
"light_vs": "support.type.property-name: #E50000",
|
||||
"hc_black": "support.type.property-name: #D4D4D4",
|
||||
"dark_modern": "support.type.property-name: #9CDCFE",
|
||||
"hc_light": "support.type.property-name: #264F78",
|
||||
"light_modern": "support.type.property-name: #E50000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": ":",
|
||||
"t": "source.css.less meta.property-list.css punctuation.separator.key-value.css",
|
||||
"t": "source.css.less meta.property-list.less punctuation.separator.key-value.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -225,7 +225,7 @@
|
||||
},
|
||||
{
|
||||
"c": " ",
|
||||
"t": "source.css.less meta.property-list.css",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -239,7 +239,7 @@
|
||||
},
|
||||
{
|
||||
"c": "\"",
|
||||
"t": "source.css.less meta.property-list.css meta.property-value.css string.quoted.double.css punctuation.definition.string.begin.css",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less string.quoted.double.less punctuation.definition.string.begin.less",
|
||||
"r": {
|
||||
"dark_plus": "string: #CE9178",
|
||||
"light_plus": "string: #A31515",
|
||||
@@ -253,7 +253,7 @@
|
||||
},
|
||||
{
|
||||
"c": "\"",
|
||||
"t": "source.css.less meta.property-list.css meta.property-value.css string.quoted.double.css punctuation.definition.string.end.css",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less string.quoted.double.less punctuation.definition.string.end.less",
|
||||
"r": {
|
||||
"dark_plus": "string: #CE9178",
|
||||
"light_plus": "string: #A31515",
|
||||
@@ -267,7 +267,7 @@
|
||||
},
|
||||
{
|
||||
"c": ";",
|
||||
"t": "source.css.less meta.property-list.css punctuation.terminator.rule.css",
|
||||
"t": "source.css.less meta.property-list.less punctuation.terminator.rule.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -281,7 +281,7 @@
|
||||
},
|
||||
{
|
||||
"c": "}",
|
||||
"t": "source.css.less meta.property-list.css punctuation.section.property-list.end.bracket.curly.css",
|
||||
"t": "source.css.less punctuation.definition.block.end.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
|
||||
+190
-176
@@ -1,35 +1,35 @@
|
||||
[
|
||||
{
|
||||
"c": ":",
|
||||
"t": "source.css.less entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css",
|
||||
"t": "source.css.less meta.selector.less meta.function-call.less punctuation.definition.entity.less",
|
||||
"r": {
|
||||
"dark_plus": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_plus": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"dark_vs": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_vs": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"hc_black": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"dark_modern": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"hc_light": "entity.other.attribute-name.pseudo-class.css: #0F4A85",
|
||||
"light_modern": "entity.other.attribute-name.pseudo-class.css: #800000"
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "default: #FFFFFF",
|
||||
"dark_modern": "default: #CCCCCC",
|
||||
"hc_light": "default: #292929",
|
||||
"light_modern": "default: #3B3B3B"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "root",
|
||||
"t": "source.css.less entity.other.attribute-name.pseudo-class.css",
|
||||
"t": "source.css.less meta.selector.less meta.function-call.less entity.other.attribute-name.pseudo-class.less",
|
||||
"r": {
|
||||
"dark_plus": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_plus": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"dark_vs": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_vs": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"hc_black": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"dark_modern": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"hc_light": "entity.other.attribute-name.pseudo-class.css: #0F4A85",
|
||||
"light_modern": "entity.other.attribute-name.pseudo-class.css: #800000"
|
||||
"dark_plus": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_plus": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"dark_vs": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_vs": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"hc_black": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"dark_modern": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"hc_light": "source.css entity.other.attribute-name.pseudo-class: #0F4A85",
|
||||
"light_modern": "source.css entity.other.attribute-name.pseudo-class: #800000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": " ",
|
||||
"t": "source.css.less",
|
||||
"t": "source.css.less meta.selector.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -43,7 +43,7 @@
|
||||
},
|
||||
{
|
||||
"c": "{",
|
||||
"t": "source.css.less meta.property-list.css punctuation.section.property-list.begin.bracket.curly.css",
|
||||
"t": "source.css.less meta.property-list.less punctuation.definition.block.begin.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -57,7 +57,7 @@
|
||||
},
|
||||
{
|
||||
"c": " ",
|
||||
"t": "source.css.less meta.property-list.css",
|
||||
"t": "source.css.less meta.property-list.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -71,35 +71,35 @@
|
||||
},
|
||||
{
|
||||
"c": "--",
|
||||
"t": "source.css.less meta.property-list.css variable.other.less punctuation.definition.variable.less",
|
||||
"t": "source.css.less meta.property-list.less support.type.custom-property.less punctuation.definition.custom-property.less",
|
||||
"r": {
|
||||
"dark_plus": "variable.other.less: #9CDCFE",
|
||||
"light_plus": "variable.other.less: #E50000",
|
||||
"dark_vs": "variable.other.less: #9CDCFE",
|
||||
"light_vs": "variable.other.less: #E50000",
|
||||
"hc_black": "variable.other.less: #D4D4D4",
|
||||
"dark_modern": "variable.other.less: #9CDCFE",
|
||||
"hc_light": "variable.other.less: #264F78",
|
||||
"light_modern": "variable.other.less: #E50000"
|
||||
"dark_plus": "support.type: #4EC9B0",
|
||||
"light_plus": "support.type: #267F99",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "support.type: #4EC9B0",
|
||||
"dark_modern": "support.type: #4EC9B0",
|
||||
"hc_light": "support.type: #185E73",
|
||||
"light_modern": "support.type: #267F99"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "spacing-unit",
|
||||
"t": "source.css.less meta.property-list.css variable.other.less",
|
||||
"t": "source.css.less meta.property-list.less support.type.custom-property.less support.type.custom-property.name.less",
|
||||
"r": {
|
||||
"dark_plus": "variable.other.less: #9CDCFE",
|
||||
"light_plus": "variable.other.less: #E50000",
|
||||
"dark_vs": "variable.other.less: #9CDCFE",
|
||||
"light_vs": "variable.other.less: #E50000",
|
||||
"hc_black": "variable.other.less: #D4D4D4",
|
||||
"dark_modern": "variable.other.less: #9CDCFE",
|
||||
"hc_light": "variable.other.less: #264F78",
|
||||
"light_modern": "variable.other.less: #E50000"
|
||||
"dark_plus": "support.type: #4EC9B0",
|
||||
"light_plus": "support.type: #267F99",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "support.type: #4EC9B0",
|
||||
"dark_modern": "support.type: #4EC9B0",
|
||||
"hc_light": "support.type: #185E73",
|
||||
"light_modern": "support.type: #267F99"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": ":",
|
||||
"t": "source.css.less meta.property-list.css punctuation.separator.key-value.css",
|
||||
"t": "source.css.less meta.property-list.less punctuation.separator.key-value.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -113,7 +113,7 @@
|
||||
},
|
||||
{
|
||||
"c": " ",
|
||||
"t": "source.css.less meta.property-list.css",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -127,7 +127,7 @@
|
||||
},
|
||||
{
|
||||
"c": "6",
|
||||
"t": "source.css.less meta.property-list.css meta.property-value.css constant.numeric.css",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less constant.numeric.less",
|
||||
"r": {
|
||||
"dark_plus": "constant.numeric: #B5CEA8",
|
||||
"light_plus": "constant.numeric: #098658",
|
||||
@@ -141,7 +141,7 @@
|
||||
},
|
||||
{
|
||||
"c": "px",
|
||||
"t": "source.css.less meta.property-list.css meta.property-value.css constant.numeric.css keyword.other.unit.px.css",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less constant.numeric.less keyword.other.unit.less",
|
||||
"r": {
|
||||
"dark_plus": "keyword.other.unit: #B5CEA8",
|
||||
"light_plus": "keyword.other.unit: #098658",
|
||||
@@ -155,7 +155,7 @@
|
||||
},
|
||||
{
|
||||
"c": ";",
|
||||
"t": "source.css.less meta.property-list.css punctuation.terminator.rule.css",
|
||||
"t": "source.css.less meta.property-list.less punctuation.terminator.rule.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -169,7 +169,7 @@
|
||||
},
|
||||
{
|
||||
"c": " ",
|
||||
"t": "source.css.less meta.property-list.css",
|
||||
"t": "source.css.less meta.property-list.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -183,35 +183,35 @@
|
||||
},
|
||||
{
|
||||
"c": "--",
|
||||
"t": "source.css.less meta.property-list.css variable.other.less punctuation.definition.variable.less",
|
||||
"t": "source.css.less meta.property-list.less support.type.custom-property.less punctuation.definition.custom-property.less",
|
||||
"r": {
|
||||
"dark_plus": "variable.other.less: #9CDCFE",
|
||||
"light_plus": "variable.other.less: #E50000",
|
||||
"dark_vs": "variable.other.less: #9CDCFE",
|
||||
"light_vs": "variable.other.less: #E50000",
|
||||
"hc_black": "variable.other.less: #D4D4D4",
|
||||
"dark_modern": "variable.other.less: #9CDCFE",
|
||||
"hc_light": "variable.other.less: #264F78",
|
||||
"light_modern": "variable.other.less: #E50000"
|
||||
"dark_plus": "support.type: #4EC9B0",
|
||||
"light_plus": "support.type: #267F99",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "support.type: #4EC9B0",
|
||||
"dark_modern": "support.type: #4EC9B0",
|
||||
"hc_light": "support.type: #185E73",
|
||||
"light_modern": "support.type: #267F99"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "cell-padding",
|
||||
"t": "source.css.less meta.property-list.css variable.other.less",
|
||||
"t": "source.css.less meta.property-list.less support.type.custom-property.less support.type.custom-property.name.less",
|
||||
"r": {
|
||||
"dark_plus": "variable.other.less: #9CDCFE",
|
||||
"light_plus": "variable.other.less: #E50000",
|
||||
"dark_vs": "variable.other.less: #9CDCFE",
|
||||
"light_vs": "variable.other.less: #E50000",
|
||||
"hc_black": "variable.other.less: #D4D4D4",
|
||||
"dark_modern": "variable.other.less: #9CDCFE",
|
||||
"hc_light": "variable.other.less: #264F78",
|
||||
"light_modern": "variable.other.less: #E50000"
|
||||
"dark_plus": "support.type: #4EC9B0",
|
||||
"light_plus": "support.type: #267F99",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "support.type: #4EC9B0",
|
||||
"dark_modern": "support.type: #4EC9B0",
|
||||
"hc_light": "support.type: #185E73",
|
||||
"light_modern": "support.type: #267F99"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": ":",
|
||||
"t": "source.css.less meta.property-list.css punctuation.separator.key-value.css",
|
||||
"t": "source.css.less meta.property-list.less punctuation.separator.key-value.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -225,7 +225,7 @@
|
||||
},
|
||||
{
|
||||
"c": " ",
|
||||
"t": "source.css.less meta.property-list.css",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -239,7 +239,7 @@
|
||||
},
|
||||
{
|
||||
"c": "(",
|
||||
"t": "source.css.less meta.property-list.css meta.property-value.css meta.brace.round.css",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less meta.group.less punctuation.definition.group.begin.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -253,7 +253,7 @@
|
||||
},
|
||||
{
|
||||
"c": "4",
|
||||
"t": "source.css.less meta.property-list.css meta.property-value.css constant.numeric.css",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less meta.group.less constant.numeric.less",
|
||||
"r": {
|
||||
"dark_plus": "constant.numeric: #B5CEA8",
|
||||
"light_plus": "constant.numeric: #098658",
|
||||
@@ -267,7 +267,7 @@
|
||||
},
|
||||
{
|
||||
"c": " ",
|
||||
"t": "source.css.less meta.property-list.css meta.property-value.css",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less meta.group.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -281,7 +281,7 @@
|
||||
},
|
||||
{
|
||||
"c": "*",
|
||||
"t": "source.css.less meta.property-list.css meta.property-value.css keyword.operator.less",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less meta.group.less keyword.operator.arithmetic.less",
|
||||
"r": {
|
||||
"dark_plus": "keyword.operator: #D4D4D4",
|
||||
"light_plus": "keyword.operator: #000000",
|
||||
@@ -294,8 +294,8 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": " ",
|
||||
"t": "source.css.less meta.property-list.css meta.property-value.css",
|
||||
"c": " var",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less meta.group.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -307,23 +307,9 @@
|
||||
"light_modern": "default: #3B3B3B"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "var",
|
||||
"t": "source.css.less meta.property-list.css meta.property-value.css meta.function.variable.css support.function.misc.css",
|
||||
"r": {
|
||||
"dark_plus": "support.function: #DCDCAA",
|
||||
"light_plus": "support.function: #795E26",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "support.function: #DCDCAA",
|
||||
"dark_modern": "support.function: #DCDCAA",
|
||||
"hc_light": "support.function: #5E2CBC",
|
||||
"light_modern": "support.function: #795E26"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "(",
|
||||
"t": "source.css.less meta.property-list.css meta.property-value.css meta.function.variable.css punctuation.section.function.begin.bracket.round.css",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less meta.group.less meta.group.less punctuation.definition.group.begin.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -336,22 +322,50 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "--spacing-unit",
|
||||
"t": "source.css.less meta.property-list.css meta.property-value.css meta.function.variable.css variable.argument.css",
|
||||
"c": "--",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less meta.group.less meta.group.less keyword.operator.arithmetic.less",
|
||||
"r": {
|
||||
"dark_plus": "variable: #9CDCFE",
|
||||
"light_plus": "variable: #001080",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "variable: #9CDCFE",
|
||||
"dark_modern": "variable: #9CDCFE",
|
||||
"hc_light": "variable: #001080",
|
||||
"light_modern": "variable: #001080"
|
||||
"dark_plus": "keyword.operator: #D4D4D4",
|
||||
"light_plus": "keyword.operator: #000000",
|
||||
"dark_vs": "keyword.operator: #D4D4D4",
|
||||
"light_vs": "keyword.operator: #000000",
|
||||
"hc_black": "keyword.operator: #D4D4D4",
|
||||
"dark_modern": "keyword.operator: #D4D4D4",
|
||||
"hc_light": "keyword.operator: #000000",
|
||||
"light_modern": "keyword.operator: #000000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": ")",
|
||||
"t": "source.css.less meta.property-list.css meta.property-value.css meta.function.variable.css punctuation.section.function.end.bracket.round.css",
|
||||
"c": "spacing",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less meta.group.less meta.group.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "default: #FFFFFF",
|
||||
"dark_modern": "default: #CCCCCC",
|
||||
"hc_light": "default: #292929",
|
||||
"light_modern": "default: #3B3B3B"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "-",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less meta.group.less meta.group.less keyword.operator.arithmetic.less",
|
||||
"r": {
|
||||
"dark_plus": "keyword.operator: #D4D4D4",
|
||||
"light_plus": "keyword.operator: #000000",
|
||||
"dark_vs": "keyword.operator: #D4D4D4",
|
||||
"light_vs": "keyword.operator: #000000",
|
||||
"hc_black": "keyword.operator: #D4D4D4",
|
||||
"dark_modern": "keyword.operator: #D4D4D4",
|
||||
"hc_light": "keyword.operator: #000000",
|
||||
"light_modern": "keyword.operator: #000000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "unit",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less meta.group.less meta.group.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -365,7 +379,21 @@
|
||||
},
|
||||
{
|
||||
"c": ")",
|
||||
"t": "source.css.less meta.property-list.css meta.property-value.css meta.brace.round.css",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less meta.group.less meta.group.less punctuation.definition.group.end.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "default: #FFFFFF",
|
||||
"dark_modern": "default: #CCCCCC",
|
||||
"hc_light": "default: #292929",
|
||||
"light_modern": "default: #3B3B3B"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": ")",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less meta.group.less punctuation.definition.group.end.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -379,7 +407,7 @@
|
||||
},
|
||||
{
|
||||
"c": ";",
|
||||
"t": "source.css.less meta.property-list.css punctuation.terminator.rule.css",
|
||||
"t": "source.css.less meta.property-list.less punctuation.terminator.rule.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -393,7 +421,7 @@
|
||||
},
|
||||
{
|
||||
"c": "}",
|
||||
"t": "source.css.less meta.property-list.css punctuation.section.property-list.end.bracket.curly.css",
|
||||
"t": "source.css.less punctuation.definition.block.end.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -407,21 +435,21 @@
|
||||
},
|
||||
{
|
||||
"c": "body",
|
||||
"t": "source.css.less entity.name.tag.css",
|
||||
"t": "source.css.less meta.selector.less entity.name.tag.less",
|
||||
"r": {
|
||||
"dark_plus": "entity.name.tag.css: #D7BA7D",
|
||||
"dark_plus": "entity.name.tag.less: #D7BA7D",
|
||||
"light_plus": "entity.name.tag: #800000",
|
||||
"dark_vs": "entity.name.tag.css: #D7BA7D",
|
||||
"dark_vs": "entity.name.tag.less: #D7BA7D",
|
||||
"light_vs": "entity.name.tag: #800000",
|
||||
"hc_black": "entity.name.tag.css: #D7BA7D",
|
||||
"dark_modern": "entity.name.tag.css: #D7BA7D",
|
||||
"hc_black": "entity.name.tag.less: #D7BA7D",
|
||||
"dark_modern": "entity.name.tag.less: #D7BA7D",
|
||||
"hc_light": "entity.name.tag: #0F4A85",
|
||||
"light_modern": "entity.name.tag: #800000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": " ",
|
||||
"t": "source.css.less",
|
||||
"t": "source.css.less meta.selector.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -435,7 +463,7 @@
|
||||
},
|
||||
{
|
||||
"c": "{",
|
||||
"t": "source.css.less meta.property-list.css punctuation.section.property-list.begin.bracket.curly.css",
|
||||
"t": "source.css.less meta.property-list.less punctuation.definition.block.begin.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -449,7 +477,7 @@
|
||||
},
|
||||
{
|
||||
"c": " ",
|
||||
"t": "source.css.less meta.property-list.css",
|
||||
"t": "source.css.less meta.property-list.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -463,7 +491,7 @@
|
||||
},
|
||||
{
|
||||
"c": "padding-left",
|
||||
"t": "source.css.less meta.property-list.css support.type.property-name.css",
|
||||
"t": "source.css.less meta.property-list.less support.type.property-name.less",
|
||||
"r": {
|
||||
"dark_plus": "support.type.property-name: #9CDCFE",
|
||||
"light_plus": "support.type.property-name: #E50000",
|
||||
@@ -477,7 +505,7 @@
|
||||
},
|
||||
{
|
||||
"c": ":",
|
||||
"t": "source.css.less meta.property-list.css punctuation.separator.key-value.css",
|
||||
"t": "source.css.less meta.property-list.less punctuation.separator.key-value.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -491,7 +519,7 @@
|
||||
},
|
||||
{
|
||||
"c": " ",
|
||||
"t": "source.css.less meta.property-list.css",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -505,7 +533,7 @@
|
||||
},
|
||||
{
|
||||
"c": "calc",
|
||||
"t": "source.css.less meta.property-list.css meta.property-value.css support.function.any-method.builtin.less",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less meta.function-call.less support.function.calc.less",
|
||||
"r": {
|
||||
"dark_plus": "support.function: #DCDCAA",
|
||||
"light_plus": "support.function: #795E26",
|
||||
@@ -519,7 +547,7 @@
|
||||
},
|
||||
{
|
||||
"c": "(",
|
||||
"t": "source.css.less meta.property-list.css meta.property-value.css meta.brace.round.css",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less meta.function-call.less punctuation.definition.group.begin.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -533,7 +561,7 @@
|
||||
},
|
||||
{
|
||||
"c": "4",
|
||||
"t": "source.css.less meta.property-list.css meta.property-value.css constant.numeric.css",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less meta.function-call.less constant.numeric.less",
|
||||
"r": {
|
||||
"dark_plus": "constant.numeric: #B5CEA8",
|
||||
"light_plus": "constant.numeric: #098658",
|
||||
@@ -547,7 +575,7 @@
|
||||
},
|
||||
{
|
||||
"c": " ",
|
||||
"t": "source.css.less meta.property-list.css meta.property-value.css",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less meta.function-call.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -561,7 +589,7 @@
|
||||
},
|
||||
{
|
||||
"c": "*",
|
||||
"t": "source.css.less meta.property-list.css meta.property-value.css keyword.operator.less",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less meta.function-call.less keyword.operator.arithmetic.less",
|
||||
"r": {
|
||||
"dark_plus": "keyword.operator: #D4D4D4",
|
||||
"light_plus": "keyword.operator: #000000",
|
||||
@@ -575,7 +603,7 @@
|
||||
},
|
||||
{
|
||||
"c": " ",
|
||||
"t": "source.css.less meta.property-list.css meta.property-value.css",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less meta.function-call.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -589,7 +617,7 @@
|
||||
},
|
||||
{
|
||||
"c": "var",
|
||||
"t": "source.css.less meta.property-list.css meta.property-value.css meta.function.variable.css support.function.misc.css",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less meta.function-call.less meta.function-call.less support.function.var.less",
|
||||
"r": {
|
||||
"dark_plus": "support.function: #DCDCAA",
|
||||
"light_plus": "support.function: #795E26",
|
||||
@@ -603,7 +631,7 @@
|
||||
},
|
||||
{
|
||||
"c": "(",
|
||||
"t": "source.css.less meta.property-list.css meta.property-value.css meta.function.variable.css punctuation.section.function.begin.bracket.round.css",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less meta.function-call.less meta.function-call.less punctuation.definition.group.begin.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -616,22 +644,36 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "--spacing-unit",
|
||||
"t": "source.css.less meta.property-list.css meta.property-value.css meta.function.variable.css variable.argument.css",
|
||||
"c": "--",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less meta.function-call.less meta.function-call.less support.type.custom-property.less punctuation.definition.custom-property.less",
|
||||
"r": {
|
||||
"dark_plus": "variable: #9CDCFE",
|
||||
"light_plus": "variable: #001080",
|
||||
"dark_plus": "support.type: #4EC9B0",
|
||||
"light_plus": "support.type: #267F99",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "variable: #9CDCFE",
|
||||
"dark_modern": "variable: #9CDCFE",
|
||||
"hc_light": "variable: #001080",
|
||||
"light_modern": "variable: #001080"
|
||||
"hc_black": "support.type: #4EC9B0",
|
||||
"dark_modern": "support.type: #4EC9B0",
|
||||
"hc_light": "support.type: #185E73",
|
||||
"light_modern": "support.type: #267F99"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "spacing-unit",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less meta.function-call.less meta.function-call.less support.type.custom-property.less support.type.custom-property.name.less",
|
||||
"r": {
|
||||
"dark_plus": "support.type: #4EC9B0",
|
||||
"light_plus": "support.type: #267F99",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "support.type: #4EC9B0",
|
||||
"dark_modern": "support.type: #4EC9B0",
|
||||
"hc_light": "support.type: #185E73",
|
||||
"light_modern": "support.type: #267F99"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": ",",
|
||||
"t": "source.css.less meta.property-list.css meta.property-value.css meta.function.variable.css punctuation.separator.list.comma.css",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less meta.function-call.less meta.function-call.less punctuation.separator.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -644,50 +686,8 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": " ",
|
||||
"t": "source.css.less meta.property-list.css meta.property-value.css meta.function.variable.css",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "default: #FFFFFF",
|
||||
"dark_modern": "default: #CCCCCC",
|
||||
"hc_light": "default: #292929",
|
||||
"light_modern": "default: #3B3B3B"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "5",
|
||||
"t": "source.css.less meta.property-list.css meta.property-value.css meta.function.variable.css constant.numeric.css",
|
||||
"r": {
|
||||
"dark_plus": "constant.numeric: #B5CEA8",
|
||||
"light_plus": "constant.numeric: #098658",
|
||||
"dark_vs": "constant.numeric: #B5CEA8",
|
||||
"light_vs": "constant.numeric: #098658",
|
||||
"hc_black": "constant.numeric: #B5CEA8",
|
||||
"dark_modern": "constant.numeric: #B5CEA8",
|
||||
"hc_light": "constant.numeric: #096D48",
|
||||
"light_modern": "constant.numeric: #098658"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "px",
|
||||
"t": "source.css.less meta.property-list.css meta.property-value.css meta.function.variable.css constant.numeric.css keyword.other.unit.px.css",
|
||||
"r": {
|
||||
"dark_plus": "keyword.other.unit: #B5CEA8",
|
||||
"light_plus": "keyword.other.unit: #098658",
|
||||
"dark_vs": "keyword.other.unit: #B5CEA8",
|
||||
"light_vs": "keyword.other.unit: #098658",
|
||||
"hc_black": "keyword.other.unit: #B5CEA8",
|
||||
"dark_modern": "keyword.other.unit: #B5CEA8",
|
||||
"hc_light": "keyword.other.unit: #096D48",
|
||||
"light_modern": "keyword.other.unit: #098658"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": ")",
|
||||
"t": "source.css.less meta.property-list.css meta.property-value.css meta.function.variable.css punctuation.section.function.end.bracket.round.css",
|
||||
"c": " 5px",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less meta.function-call.less meta.function-call.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -701,7 +701,21 @@
|
||||
},
|
||||
{
|
||||
"c": ")",
|
||||
"t": "source.css.less meta.property-list.css meta.property-value.css meta.brace.round.css",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less meta.function-call.less meta.function-call.less punctuation.definition.group.end.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "default: #FFFFFF",
|
||||
"dark_modern": "default: #CCCCCC",
|
||||
"hc_light": "default: #292929",
|
||||
"light_modern": "default: #3B3B3B"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": ")",
|
||||
"t": "source.css.less meta.property-list.less meta.property-value.less meta.function-call.less punctuation.definition.group.end.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -715,7 +729,7 @@
|
||||
},
|
||||
{
|
||||
"c": ";",
|
||||
"t": "source.css.less meta.property-list.css punctuation.terminator.rule.css",
|
||||
"t": "source.css.less meta.property-list.less punctuation.terminator.rule.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
@@ -729,7 +743,7 @@
|
||||
},
|
||||
{
|
||||
"c": "}",
|
||||
"t": "source.css.less meta.property-list.css punctuation.section.property-list.end.bracket.curly.css",
|
||||
"t": "source.css.less punctuation.definition.block.end.less",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
|
||||
+48
-48
@@ -3,28 +3,28 @@
|
||||
"c": ":",
|
||||
"t": "source.css.scss entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css",
|
||||
"r": {
|
||||
"dark_plus": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_plus": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"dark_vs": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_vs": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"hc_black": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"dark_modern": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"hc_light": "entity.other.attribute-name.pseudo-class.css: #0F4A85",
|
||||
"light_modern": "entity.other.attribute-name.pseudo-class.css: #800000"
|
||||
"dark_plus": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_plus": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"dark_vs": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_vs": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"hc_black": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"dark_modern": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"hc_light": "source.css entity.other.attribute-name.pseudo-class: #0F4A85",
|
||||
"light_modern": "source.css entity.other.attribute-name.pseudo-class: #800000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "root",
|
||||
"t": "source.css.scss entity.other.attribute-name.pseudo-class.css",
|
||||
"r": {
|
||||
"dark_plus": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_plus": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"dark_vs": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_vs": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"hc_black": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"dark_modern": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"hc_light": "entity.other.attribute-name.pseudo-class.css: #0F4A85",
|
||||
"light_modern": "entity.other.attribute-name.pseudo-class.css: #800000"
|
||||
"dark_plus": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_plus": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"dark_vs": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_vs": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"hc_black": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"dark_modern": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"hc_light": "source.css entity.other.attribute-name.pseudo-class: #0F4A85",
|
||||
"light_modern": "source.css entity.other.attribute-name.pseudo-class: #800000"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -73,14 +73,14 @@
|
||||
"c": "--spacing-unit",
|
||||
"t": "source.css.scss meta.property-list.scss variable.scss",
|
||||
"r": {
|
||||
"dark_plus": "variable.scss: #9CDCFE",
|
||||
"light_plus": "variable.scss: #E50000",
|
||||
"dark_vs": "variable.scss: #9CDCFE",
|
||||
"light_vs": "variable.scss: #E50000",
|
||||
"hc_black": "variable.scss: #D4D4D4",
|
||||
"dark_modern": "variable.scss: #9CDCFE",
|
||||
"hc_light": "variable.scss: #264F78",
|
||||
"light_modern": "variable.scss: #E50000"
|
||||
"dark_plus": "source.css variable: #9CDCFE",
|
||||
"light_plus": "source.css variable: #E50000",
|
||||
"dark_vs": "source.css variable: #9CDCFE",
|
||||
"light_vs": "source.css variable: #E50000",
|
||||
"hc_black": "source.css variable: #D4D4D4",
|
||||
"dark_modern": "source.css variable: #9CDCFE",
|
||||
"hc_light": "source.css variable: #264F78",
|
||||
"light_modern": "source.css variable: #E50000"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -171,14 +171,14 @@
|
||||
"c": "--cell-padding",
|
||||
"t": "source.css.scss meta.property-list.scss variable.scss",
|
||||
"r": {
|
||||
"dark_plus": "variable.scss: #9CDCFE",
|
||||
"light_plus": "variable.scss: #E50000",
|
||||
"dark_vs": "variable.scss: #9CDCFE",
|
||||
"light_vs": "variable.scss: #E50000",
|
||||
"hc_black": "variable.scss: #D4D4D4",
|
||||
"dark_modern": "variable.scss: #9CDCFE",
|
||||
"hc_light": "variable.scss: #264F78",
|
||||
"light_modern": "variable.scss: #E50000"
|
||||
"dark_plus": "source.css variable: #9CDCFE",
|
||||
"light_plus": "source.css variable: #E50000",
|
||||
"dark_vs": "source.css variable: #9CDCFE",
|
||||
"light_vs": "source.css variable: #E50000",
|
||||
"hc_black": "source.css variable: #D4D4D4",
|
||||
"dark_modern": "source.css variable: #9CDCFE",
|
||||
"hc_light": "source.css variable: #264F78",
|
||||
"light_modern": "source.css variable: #E50000"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -311,14 +311,14 @@
|
||||
"c": "--spacing-unit",
|
||||
"t": "source.css.scss meta.property-list.scss meta.property-value.scss variable.scss",
|
||||
"r": {
|
||||
"dark_plus": "variable.scss: #9CDCFE",
|
||||
"light_plus": "variable.scss: #E50000",
|
||||
"dark_vs": "variable.scss: #9CDCFE",
|
||||
"light_vs": "variable.scss: #E50000",
|
||||
"hc_black": "variable.scss: #D4D4D4",
|
||||
"dark_modern": "variable.scss: #9CDCFE",
|
||||
"hc_light": "variable.scss: #264F78",
|
||||
"light_modern": "variable.scss: #E50000"
|
||||
"dark_plus": "source.css variable: #9CDCFE",
|
||||
"light_plus": "source.css variable: #E50000",
|
||||
"dark_vs": "source.css variable: #9CDCFE",
|
||||
"light_vs": "source.css variable: #E50000",
|
||||
"hc_black": "source.css variable: #D4D4D4",
|
||||
"dark_modern": "source.css variable: #9CDCFE",
|
||||
"hc_light": "source.css variable: #264F78",
|
||||
"light_modern": "source.css variable: #E50000"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -591,14 +591,14 @@
|
||||
"c": "--spacing-unit",
|
||||
"t": "source.css.scss meta.property-list.scss meta.property-value.scss variable.scss",
|
||||
"r": {
|
||||
"dark_plus": "variable.scss: #9CDCFE",
|
||||
"light_plus": "variable.scss: #E50000",
|
||||
"dark_vs": "variable.scss: #9CDCFE",
|
||||
"light_vs": "variable.scss: #E50000",
|
||||
"hc_black": "variable.scss: #D4D4D4",
|
||||
"dark_modern": "variable.scss: #9CDCFE",
|
||||
"hc_light": "variable.scss: #264F78",
|
||||
"light_modern": "variable.scss: #E50000"
|
||||
"dark_plus": "source.css variable: #9CDCFE",
|
||||
"light_plus": "source.css variable: #E50000",
|
||||
"dark_vs": "source.css variable: #9CDCFE",
|
||||
"light_vs": "source.css variable: #E50000",
|
||||
"hc_black": "source.css variable: #D4D4D4",
|
||||
"dark_modern": "source.css variable: #9CDCFE",
|
||||
"hc_light": "source.css variable: #264F78",
|
||||
"light_modern": "source.css variable: #E50000"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -3,28 +3,28 @@
|
||||
"c": ":",
|
||||
"t": "source.css meta.selector.css entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css",
|
||||
"r": {
|
||||
"dark_plus": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_plus": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"dark_vs": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_vs": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"hc_black": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"dark_modern": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"hc_light": "entity.other.attribute-name.pseudo-class.css: #0F4A85",
|
||||
"light_modern": "entity.other.attribute-name.pseudo-class.css: #800000"
|
||||
"dark_plus": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_plus": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"dark_vs": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_vs": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"hc_black": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"dark_modern": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"hc_light": "source.css entity.other.attribute-name.pseudo-class: #0F4A85",
|
||||
"light_modern": "source.css entity.other.attribute-name.pseudo-class: #800000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "root",
|
||||
"t": "source.css meta.selector.css entity.other.attribute-name.pseudo-class.css",
|
||||
"r": {
|
||||
"dark_plus": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_plus": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"dark_vs": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_vs": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"hc_black": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"dark_modern": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"hc_light": "entity.other.attribute-name.pseudo-class.css: #0F4A85",
|
||||
"light_modern": "entity.other.attribute-name.pseudo-class.css: #800000"
|
||||
"dark_plus": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_plus": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"dark_vs": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_vs": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"hc_black": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"dark_modern": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"hc_light": "source.css entity.other.attribute-name.pseudo-class: #0F4A85",
|
||||
"light_modern": "source.css entity.other.attribute-name.pseudo-class: #800000"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -73,14 +73,14 @@
|
||||
"c": "--spacing-unit",
|
||||
"t": "source.css meta.property-list.css variable.css",
|
||||
"r": {
|
||||
"dark_plus": "variable.css: #9CDCFE",
|
||||
"light_plus": "variable.css: #E50000",
|
||||
"dark_vs": "variable.css: #9CDCFE",
|
||||
"light_vs": "variable.css: #E50000",
|
||||
"hc_black": "variable.css: #D4D4D4",
|
||||
"dark_modern": "variable.css: #9CDCFE",
|
||||
"hc_light": "variable.css: #264F78",
|
||||
"light_modern": "variable.css: #E50000"
|
||||
"dark_plus": "source.css variable: #9CDCFE",
|
||||
"light_plus": "source.css variable: #E50000",
|
||||
"dark_vs": "source.css variable: #9CDCFE",
|
||||
"light_vs": "source.css variable: #E50000",
|
||||
"hc_black": "source.css variable: #D4D4D4",
|
||||
"dark_modern": "source.css variable: #9CDCFE",
|
||||
"hc_light": "source.css variable: #264F78",
|
||||
"light_modern": "source.css variable: #E50000"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -171,14 +171,14 @@
|
||||
"c": "--cell-padding",
|
||||
"t": "source.css meta.property-list.css variable.css",
|
||||
"r": {
|
||||
"dark_plus": "variable.css: #9CDCFE",
|
||||
"light_plus": "variable.css: #E50000",
|
||||
"dark_vs": "variable.css: #9CDCFE",
|
||||
"light_vs": "variable.css: #E50000",
|
||||
"hc_black": "variable.css: #D4D4D4",
|
||||
"dark_modern": "variable.css: #9CDCFE",
|
||||
"hc_light": "variable.css: #264F78",
|
||||
"light_modern": "variable.css: #E50000"
|
||||
"dark_plus": "source.css variable: #9CDCFE",
|
||||
"light_plus": "source.css variable: #E50000",
|
||||
"dark_vs": "source.css variable: #9CDCFE",
|
||||
"light_vs": "source.css variable: #E50000",
|
||||
"hc_black": "source.css variable: #D4D4D4",
|
||||
"dark_modern": "source.css variable: #9CDCFE",
|
||||
"hc_light": "source.css variable: #264F78",
|
||||
"light_modern": "source.css variable: #E50000"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -283,14 +283,14 @@
|
||||
"c": "--spacing-unit",
|
||||
"t": "source.css meta.property-list.css meta.property-value.css meta.function.variable.css variable.argument.css",
|
||||
"r": {
|
||||
"dark_plus": "variable: #9CDCFE",
|
||||
"light_plus": "variable: #001080",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "variable: #9CDCFE",
|
||||
"dark_modern": "variable: #9CDCFE",
|
||||
"hc_light": "variable: #001080",
|
||||
"light_modern": "variable: #001080"
|
||||
"dark_plus": "source.css variable: #9CDCFE",
|
||||
"light_plus": "source.css variable: #E50000",
|
||||
"dark_vs": "source.css variable: #9CDCFE",
|
||||
"light_vs": "source.css variable: #E50000",
|
||||
"hc_black": "source.css variable: #D4D4D4",
|
||||
"dark_modern": "source.css variable: #9CDCFE",
|
||||
"hc_light": "source.css variable: #264F78",
|
||||
"light_modern": "source.css variable: #E50000"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -563,14 +563,14 @@
|
||||
"c": "--spacing-unit",
|
||||
"t": "source.css meta.property-list.css meta.property-value.css meta.function.calc.css meta.function.variable.css variable.argument.css",
|
||||
"r": {
|
||||
"dark_plus": "variable: #9CDCFE",
|
||||
"light_plus": "variable: #001080",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "variable: #9CDCFE",
|
||||
"dark_modern": "variable: #9CDCFE",
|
||||
"hc_light": "variable: #001080",
|
||||
"light_modern": "variable: #001080"
|
||||
"dark_plus": "source.css variable: #9CDCFE",
|
||||
"light_plus": "source.css variable: #E50000",
|
||||
"dark_vs": "source.css variable: #9CDCFE",
|
||||
"light_vs": "source.css variable: #E50000",
|
||||
"hc_black": "source.css variable: #D4D4D4",
|
||||
"dark_modern": "source.css variable: #9CDCFE",
|
||||
"hc_light": "source.css variable: #264F78",
|
||||
"light_modern": "source.css variable: #E50000"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -1501,14 +1501,14 @@
|
||||
"c": "blossoms.jpg",
|
||||
"t": "source.css meta.property-list.css meta.property-value.css meta.function.url.css variable.parameter.url.css",
|
||||
"r": {
|
||||
"dark_plus": "variable: #9CDCFE",
|
||||
"light_plus": "variable: #001080",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "variable: #9CDCFE",
|
||||
"dark_modern": "variable: #9CDCFE",
|
||||
"hc_light": "variable: #001080",
|
||||
"light_modern": "variable: #001080"
|
||||
"dark_plus": "source.css variable: #9CDCFE",
|
||||
"light_plus": "source.css variable: #E50000",
|
||||
"dark_vs": "source.css variable: #9CDCFE",
|
||||
"light_vs": "source.css variable: #E50000",
|
||||
"hc_black": "source.css variable: #D4D4D4",
|
||||
"dark_modern": "source.css variable: #9CDCFE",
|
||||
"hc_light": "source.css variable: #264F78",
|
||||
"light_modern": "source.css variable: #E50000"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -3601,28 +3601,28 @@
|
||||
"c": ":",
|
||||
"t": "source.css meta.selector.css entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css",
|
||||
"r": {
|
||||
"dark_plus": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_plus": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"dark_vs": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_vs": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"hc_black": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"dark_modern": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"hc_light": "entity.other.attribute-name.pseudo-class.css: #0F4A85",
|
||||
"light_modern": "entity.other.attribute-name.pseudo-class.css: #800000"
|
||||
"dark_plus": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_plus": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"dark_vs": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_vs": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"hc_black": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"dark_modern": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"hc_light": "source.css entity.other.attribute-name.pseudo-class: #0F4A85",
|
||||
"light_modern": "source.css entity.other.attribute-name.pseudo-class: #800000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "link",
|
||||
"t": "source.css meta.selector.css entity.other.attribute-name.pseudo-class.css",
|
||||
"r": {
|
||||
"dark_plus": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_plus": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"dark_vs": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_vs": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"hc_black": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"dark_modern": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"hc_light": "entity.other.attribute-name.pseudo-class.css: #0F4A85",
|
||||
"light_modern": "entity.other.attribute-name.pseudo-class.css: #800000"
|
||||
"dark_plus": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_plus": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"dark_vs": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_vs": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"hc_black": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"dark_modern": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"hc_light": "source.css entity.other.attribute-name.pseudo-class: #0F4A85",
|
||||
"light_modern": "source.css entity.other.attribute-name.pseudo-class: #800000"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -3951,28 +3951,28 @@
|
||||
"c": ":",
|
||||
"t": "source.css meta.selector.css entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css",
|
||||
"r": {
|
||||
"dark_plus": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_plus": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"dark_vs": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_vs": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"hc_black": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"dark_modern": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"hc_light": "entity.other.attribute-name.pseudo-class.css: #0F4A85",
|
||||
"light_modern": "entity.other.attribute-name.pseudo-class.css: #800000"
|
||||
"dark_plus": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_plus": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"dark_vs": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_vs": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"hc_black": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"dark_modern": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"hc_light": "source.css entity.other.attribute-name.pseudo-class: #0F4A85",
|
||||
"light_modern": "source.css entity.other.attribute-name.pseudo-class: #800000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "visited",
|
||||
"t": "source.css meta.selector.css entity.other.attribute-name.pseudo-class.css",
|
||||
"r": {
|
||||
"dark_plus": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_plus": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"dark_vs": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_vs": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"hc_black": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"dark_modern": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"hc_light": "entity.other.attribute-name.pseudo-class.css: #0F4A85",
|
||||
"light_modern": "entity.other.attribute-name.pseudo-class.css: #800000"
|
||||
"dark_plus": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_plus": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"dark_vs": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_vs": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"hc_black": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"dark_modern": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"hc_light": "source.css entity.other.attribute-name.pseudo-class: #0F4A85",
|
||||
"light_modern": "source.css entity.other.attribute-name.pseudo-class: #800000"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -4385,28 +4385,28 @@
|
||||
"c": ":",
|
||||
"t": "source.css meta.selector.css entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css",
|
||||
"r": {
|
||||
"dark_plus": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_plus": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"dark_vs": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_vs": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"hc_black": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"dark_modern": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"hc_light": "entity.other.attribute-name.pseudo-class.css: #0F4A85",
|
||||
"light_modern": "entity.other.attribute-name.pseudo-class.css: #800000"
|
||||
"dark_plus": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_plus": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"dark_vs": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_vs": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"hc_black": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"dark_modern": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"hc_light": "source.css entity.other.attribute-name.pseudo-class: #0F4A85",
|
||||
"light_modern": "source.css entity.other.attribute-name.pseudo-class: #800000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "hover",
|
||||
"t": "source.css meta.selector.css entity.other.attribute-name.pseudo-class.css",
|
||||
"r": {
|
||||
"dark_plus": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_plus": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"dark_vs": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_vs": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"hc_black": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"dark_modern": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"hc_light": "entity.other.attribute-name.pseudo-class.css: #0F4A85",
|
||||
"light_modern": "entity.other.attribute-name.pseudo-class.css: #800000"
|
||||
"dark_plus": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_plus": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"dark_vs": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_vs": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"hc_black": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"dark_modern": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"hc_light": "source.css entity.other.attribute-name.pseudo-class: #0F4A85",
|
||||
"light_modern": "source.css entity.other.attribute-name.pseudo-class: #800000"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -4441,28 +4441,28 @@
|
||||
"c": ":",
|
||||
"t": "source.css meta.selector.css entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css",
|
||||
"r": {
|
||||
"dark_plus": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_plus": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"dark_vs": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_vs": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"hc_black": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"dark_modern": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"hc_light": "entity.other.attribute-name.pseudo-class.css: #0F4A85",
|
||||
"light_modern": "entity.other.attribute-name.pseudo-class.css: #800000"
|
||||
"dark_plus": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_plus": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"dark_vs": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_vs": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"hc_black": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"dark_modern": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"hc_light": "source.css entity.other.attribute-name.pseudo-class: #0F4A85",
|
||||
"light_modern": "source.css entity.other.attribute-name.pseudo-class: #800000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "focus",
|
||||
"t": "source.css meta.selector.css entity.other.attribute-name.pseudo-class.css",
|
||||
"r": {
|
||||
"dark_plus": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_plus": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"dark_vs": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_vs": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"hc_black": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"dark_modern": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"hc_light": "entity.other.attribute-name.pseudo-class.css: #0F4A85",
|
||||
"light_modern": "entity.other.attribute-name.pseudo-class.css: #800000"
|
||||
"dark_plus": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_plus": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"dark_vs": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_vs": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"hc_black": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"dark_modern": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"hc_light": "source.css entity.other.attribute-name.pseudo-class: #0F4A85",
|
||||
"light_modern": "source.css entity.other.attribute-name.pseudo-class: #800000"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -4497,28 +4497,28 @@
|
||||
"c": ":",
|
||||
"t": "source.css meta.selector.css entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css",
|
||||
"r": {
|
||||
"dark_plus": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_plus": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"dark_vs": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_vs": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"hc_black": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"dark_modern": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"hc_light": "entity.other.attribute-name.pseudo-class.css: #0F4A85",
|
||||
"light_modern": "entity.other.attribute-name.pseudo-class.css: #800000"
|
||||
"dark_plus": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_plus": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"dark_vs": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_vs": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"hc_black": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"dark_modern": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"hc_light": "source.css entity.other.attribute-name.pseudo-class: #0F4A85",
|
||||
"light_modern": "source.css entity.other.attribute-name.pseudo-class: #800000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "active",
|
||||
"t": "source.css meta.selector.css entity.other.attribute-name.pseudo-class.css",
|
||||
"r": {
|
||||
"dark_plus": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_plus": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"dark_vs": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_vs": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"hc_black": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"dark_modern": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"hc_light": "entity.other.attribute-name.pseudo-class.css: #0F4A85",
|
||||
"light_modern": "entity.other.attribute-name.pseudo-class.css: #800000"
|
||||
"dark_plus": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_plus": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"dark_vs": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_vs": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"hc_black": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"dark_modern": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"hc_light": "source.css entity.other.attribute-name.pseudo-class: #0F4A85",
|
||||
"light_modern": "source.css entity.other.attribute-name.pseudo-class: #800000"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -5071,14 +5071,14 @@
|
||||
"c": "zen-bg.jpg",
|
||||
"t": "source.css meta.property-list.css meta.property-value.css meta.function.url.css variable.parameter.url.css",
|
||||
"r": {
|
||||
"dark_plus": "variable: #9CDCFE",
|
||||
"light_plus": "variable: #001080",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "variable: #9CDCFE",
|
||||
"dark_modern": "variable: #9CDCFE",
|
||||
"hc_light": "variable: #001080",
|
||||
"light_modern": "variable: #001080"
|
||||
"dark_plus": "source.css variable: #9CDCFE",
|
||||
"light_plus": "source.css variable: #E50000",
|
||||
"dark_vs": "source.css variable: #9CDCFE",
|
||||
"light_vs": "source.css variable: #E50000",
|
||||
"hc_black": "source.css variable: #D4D4D4",
|
||||
"dark_modern": "source.css variable: #9CDCFE",
|
||||
"hc_light": "source.css variable: #264F78",
|
||||
"light_modern": "source.css variable: #E50000"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -6023,14 +6023,14 @@
|
||||
"c": "h1.gif",
|
||||
"t": "source.css meta.property-list.css meta.property-value.css meta.function.url.css variable.parameter.url.css",
|
||||
"r": {
|
||||
"dark_plus": "variable: #9CDCFE",
|
||||
"light_plus": "variable: #001080",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "variable: #9CDCFE",
|
||||
"dark_modern": "variable: #9CDCFE",
|
||||
"hc_light": "variable: #001080",
|
||||
"light_modern": "variable: #001080"
|
||||
"dark_plus": "source.css variable: #9CDCFE",
|
||||
"light_plus": "source.css variable: #E50000",
|
||||
"dark_vs": "source.css variable: #9CDCFE",
|
||||
"light_vs": "source.css variable: #E50000",
|
||||
"hc_black": "source.css variable: #D4D4D4",
|
||||
"dark_modern": "source.css variable: #9CDCFE",
|
||||
"hc_light": "source.css variable: #264F78",
|
||||
"light_modern": "source.css variable: #E50000"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -8879,28 +8879,28 @@
|
||||
"c": ":",
|
||||
"t": "source.css meta.selector.css entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css",
|
||||
"r": {
|
||||
"dark_plus": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_plus": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"dark_vs": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_vs": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"hc_black": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"dark_modern": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"hc_light": "entity.other.attribute-name.pseudo-class.css: #0F4A85",
|
||||
"light_modern": "entity.other.attribute-name.pseudo-class.css: #800000"
|
||||
"dark_plus": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_plus": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"dark_vs": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_vs": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"hc_black": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"dark_modern": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"hc_light": "source.css entity.other.attribute-name.pseudo-class: #0F4A85",
|
||||
"light_modern": "source.css entity.other.attribute-name.pseudo-class: #800000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "link",
|
||||
"t": "source.css meta.selector.css entity.other.attribute-name.pseudo-class.css",
|
||||
"r": {
|
||||
"dark_plus": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_plus": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"dark_vs": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_vs": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"hc_black": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"dark_modern": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"hc_light": "entity.other.attribute-name.pseudo-class.css: #0F4A85",
|
||||
"light_modern": "entity.other.attribute-name.pseudo-class.css: #800000"
|
||||
"dark_plus": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_plus": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"dark_vs": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_vs": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"hc_black": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"dark_modern": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"hc_light": "source.css entity.other.attribute-name.pseudo-class: #0F4A85",
|
||||
"light_modern": "source.css entity.other.attribute-name.pseudo-class: #800000"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -8963,28 +8963,28 @@
|
||||
"c": ":",
|
||||
"t": "source.css meta.selector.css entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css",
|
||||
"r": {
|
||||
"dark_plus": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_plus": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"dark_vs": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_vs": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"hc_black": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"dark_modern": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"hc_light": "entity.other.attribute-name.pseudo-class.css: #0F4A85",
|
||||
"light_modern": "entity.other.attribute-name.pseudo-class.css: #800000"
|
||||
"dark_plus": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_plus": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"dark_vs": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_vs": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"hc_black": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"dark_modern": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"hc_light": "source.css entity.other.attribute-name.pseudo-class: #0F4A85",
|
||||
"light_modern": "source.css entity.other.attribute-name.pseudo-class: #800000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "visited",
|
||||
"t": "source.css meta.selector.css entity.other.attribute-name.pseudo-class.css",
|
||||
"r": {
|
||||
"dark_plus": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_plus": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"dark_vs": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_vs": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"hc_black": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"dark_modern": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"hc_light": "entity.other.attribute-name.pseudo-class.css: #0F4A85",
|
||||
"light_modern": "entity.other.attribute-name.pseudo-class.css: #800000"
|
||||
"dark_plus": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_plus": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"dark_vs": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_vs": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"hc_black": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"dark_modern": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"hc_light": "source.css entity.other.attribute-name.pseudo-class: #0F4A85",
|
||||
"light_modern": "source.css entity.other.attribute-name.pseudo-class: #800000"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -9929,14 +9929,14 @@
|
||||
"c": "paper-bg.jpg",
|
||||
"t": "source.css meta.property-list.css meta.property-value.css meta.function.url.css variable.parameter.url.css",
|
||||
"r": {
|
||||
"dark_plus": "variable: #9CDCFE",
|
||||
"light_plus": "variable: #001080",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "variable: #9CDCFE",
|
||||
"dark_modern": "variable: #9CDCFE",
|
||||
"hc_light": "variable: #001080",
|
||||
"light_modern": "variable: #001080"
|
||||
"dark_plus": "source.css variable: #9CDCFE",
|
||||
"light_plus": "source.css variable: #E50000",
|
||||
"dark_vs": "source.css variable: #9CDCFE",
|
||||
"light_vs": "source.css variable: #E50000",
|
||||
"hc_black": "source.css variable: #D4D4D4",
|
||||
"dark_modern": "source.css variable: #9CDCFE",
|
||||
"hc_light": "source.css variable: #264F78",
|
||||
"light_modern": "source.css variable: #E50000"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -10447,28 +10447,28 @@
|
||||
"c": ":",
|
||||
"t": "source.css meta.selector.css entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css",
|
||||
"r": {
|
||||
"dark_plus": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_plus": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"dark_vs": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_vs": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"hc_black": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"dark_modern": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"hc_light": "entity.other.attribute-name.pseudo-class.css: #0F4A85",
|
||||
"light_modern": "entity.other.attribute-name.pseudo-class.css: #800000"
|
||||
"dark_plus": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_plus": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"dark_vs": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_vs": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"hc_black": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"dark_modern": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"hc_light": "source.css entity.other.attribute-name.pseudo-class: #0F4A85",
|
||||
"light_modern": "source.css entity.other.attribute-name.pseudo-class: #800000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "link",
|
||||
"t": "source.css meta.selector.css entity.other.attribute-name.pseudo-class.css",
|
||||
"r": {
|
||||
"dark_plus": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_plus": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"dark_vs": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_vs": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"hc_black": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"dark_modern": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"hc_light": "entity.other.attribute-name.pseudo-class.css: #0F4A85",
|
||||
"light_modern": "entity.other.attribute-name.pseudo-class.css: #800000"
|
||||
"dark_plus": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_plus": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"dark_vs": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_vs": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"hc_black": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"dark_modern": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"hc_light": "source.css entity.other.attribute-name.pseudo-class: #0F4A85",
|
||||
"light_modern": "source.css entity.other.attribute-name.pseudo-class: #800000"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -10699,28 +10699,28 @@
|
||||
"c": ":",
|
||||
"t": "source.css meta.selector.css entity.other.attribute-name.pseudo-class.css punctuation.definition.entity.css",
|
||||
"r": {
|
||||
"dark_plus": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_plus": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"dark_vs": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_vs": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"hc_black": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"dark_modern": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"hc_light": "entity.other.attribute-name.pseudo-class.css: #0F4A85",
|
||||
"light_modern": "entity.other.attribute-name.pseudo-class.css: #800000"
|
||||
"dark_plus": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_plus": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"dark_vs": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_vs": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"hc_black": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"dark_modern": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"hc_light": "source.css entity.other.attribute-name.pseudo-class: #0F4A85",
|
||||
"light_modern": "source.css entity.other.attribute-name.pseudo-class: #800000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "visited",
|
||||
"t": "source.css meta.selector.css entity.other.attribute-name.pseudo-class.css",
|
||||
"r": {
|
||||
"dark_plus": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_plus": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"dark_vs": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"light_vs": "entity.other.attribute-name.pseudo-class.css: #800000",
|
||||
"hc_black": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"dark_modern": "entity.other.attribute-name.pseudo-class.css: #D7BA7D",
|
||||
"hc_light": "entity.other.attribute-name.pseudo-class.css: #0F4A85",
|
||||
"light_modern": "entity.other.attribute-name.pseudo-class.css: #800000"
|
||||
"dark_plus": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_plus": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"dark_vs": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"light_vs": "source.css entity.other.attribute-name.pseudo-class: #800000",
|
||||
"hc_black": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"dark_modern": "source.css entity.other.attribute-name.pseudo-class: #D7BA7D",
|
||||
"hc_light": "source.css entity.other.attribute-name.pseudo-class: #0F4A85",
|
||||
"light_modern": "source.css entity.other.attribute-name.pseudo-class: #800000"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -11049,14 +11049,14 @@
|
||||
"c": "cr2.gif",
|
||||
"t": "source.css meta.property-list.css meta.property-value.css meta.function.url.css variable.parameter.url.css",
|
||||
"r": {
|
||||
"dark_plus": "variable: #9CDCFE",
|
||||
"light_plus": "variable: #001080",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "variable: #9CDCFE",
|
||||
"dark_modern": "variable: #9CDCFE",
|
||||
"hc_light": "variable: #001080",
|
||||
"light_modern": "variable: #001080"
|
||||
"dark_plus": "source.css variable: #9CDCFE",
|
||||
"light_plus": "source.css variable: #E50000",
|
||||
"dark_vs": "source.css variable: #9CDCFE",
|
||||
"light_vs": "source.css variable: #E50000",
|
||||
"hc_black": "source.css variable: #D4D4D4",
|
||||
"dark_modern": "source.css variable: #9CDCFE",
|
||||
"hc_light": "source.css variable: #264F78",
|
||||
"light_modern": "source.css variable: #E50000"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+2
-2
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "code-oss-dev",
|
||||
"version": "1.85.0",
|
||||
"distro": "69e0a36f6df8a1e9fca2a92920a6a4c1ba9e57e4",
|
||||
"distro": "166cef1a46189f0a5c1952c9e11bf0c387bae990",
|
||||
"author": {
|
||||
"name": "Microsoft Corporation"
|
||||
},
|
||||
@@ -150,7 +150,7 @@
|
||||
"cssnano": "^4.1.11",
|
||||
"debounce": "^1.0.0",
|
||||
"deemon": "^1.8.0",
|
||||
"electron": "25.9.6",
|
||||
"electron": "25.9.7",
|
||||
"eslint": "8.36.0",
|
||||
"eslint-plugin-header": "3.1.1",
|
||||
"eslint-plugin-jsdoc": "^46.5.0",
|
||||
|
||||
Vendored
+6
-1
@@ -56,6 +56,9 @@ function pipeLoggingToParent() {
|
||||
* @param {ArrayLike<unknown>} args
|
||||
*/
|
||||
function safeToArray(args) {
|
||||
/**
|
||||
* @type {string[]}
|
||||
*/
|
||||
const seen = [];
|
||||
const argsArray = [];
|
||||
|
||||
@@ -178,7 +181,7 @@ function pipeLoggingToParent() {
|
||||
|
||||
Object.defineProperty(stream, 'write', {
|
||||
set: () => { },
|
||||
get: () => (chunk, encoding, callback) => {
|
||||
get: () => (/** @type {string | Buffer | Uint8Array} */ chunk, /** @type {BufferEncoding | undefined} */ encoding, /** @type {((err?: Error | undefined) => void) | undefined} */ callback) => {
|
||||
buf += chunk.toString(encoding);
|
||||
const eol = buf.length > MAX_STREAM_BUFFER_LENGTH ? buf.length : buf.lastIndexOf('\n');
|
||||
if (eol !== -1) {
|
||||
@@ -239,7 +242,9 @@ function configureCrashReporter() {
|
||||
const crashReporterProcessType = process.env['VSCODE_CRASH_REPORTER_PROCESS_TYPE'];
|
||||
if (crashReporterProcessType) {
|
||||
try {
|
||||
// @ts-ignore
|
||||
if (process['crashReporter'] && typeof process['crashReporter'].addExtraParameter === 'function' /* Electron only */) {
|
||||
// @ts-ignore
|
||||
process['crashReporter'].addExtraParameter('processType', crashReporterProcessType);
|
||||
}
|
||||
} catch (error) {
|
||||
|
||||
Vendored
+9
@@ -20,6 +20,7 @@
|
||||
|
||||
// Browser
|
||||
else {
|
||||
// @ts-ignore
|
||||
globalThis.MonacoBootstrapWindow = factory();
|
||||
}
|
||||
}(this, function () {
|
||||
@@ -71,12 +72,16 @@
|
||||
};
|
||||
const isDev = !!safeProcess.env['VSCODE_DEV'];
|
||||
const enableDeveloperKeybindings = isDev || forceEnableDeveloperKeybindings;
|
||||
/**
|
||||
* @type {() => void | undefined}
|
||||
*/
|
||||
let developerDeveloperKeybindingsDisposable;
|
||||
if (enableDeveloperKeybindings) {
|
||||
developerDeveloperKeybindingsDisposable = registerDeveloperKeybindings(disallowReloadKeybinding);
|
||||
}
|
||||
|
||||
// Get the nls configuration into the process.env as early as possible
|
||||
// @ts-ignore
|
||||
const nlsConfig = globalThis.MonacoBootstrap.setupNLS();
|
||||
|
||||
let locale = nlsConfig.availableLanguages['*'] || 'en';
|
||||
@@ -90,6 +95,10 @@
|
||||
|
||||
window['MonacoEnvironment'] = {};
|
||||
|
||||
/**
|
||||
* @typedef {any} LoaderConfig
|
||||
*/
|
||||
/** @type {LoaderConfig} */
|
||||
const loaderConfig = {
|
||||
baseUrl: `${bootstrapLib.fileUriFromPath(configuration.appRoot, { isWindows: safeProcess.platform === 'win32', scheme: 'vscode-file', fallbackAuthority: 'vscode-app' })}/out`,
|
||||
'vs/nls': nlsConfig,
|
||||
|
||||
@@ -19,6 +19,7 @@ const bootstrapNode = require('./bootstrap-node');
|
||||
const product = require('../product.json');
|
||||
|
||||
// Enable portable support
|
||||
// @ts-ignore
|
||||
bootstrapNode.configurePortable(product);
|
||||
|
||||
// Enable ASAR support
|
||||
|
||||
@@ -24,6 +24,7 @@ const { getUserDataPath } = require('./vs/platform/environment/node/userDataPath
|
||||
const { stripComments } = require('./vs/base/common/stripComments');
|
||||
const { getUNCHost, addUNCHostToAllowlist } = require('./vs/base/node/unc');
|
||||
/** @type {Partial<IProductConfiguration>} */
|
||||
// @ts-ignore
|
||||
const product = require('../product.json');
|
||||
const { app, protocol, crashReporter, Menu } = require('electron');
|
||||
|
||||
@@ -513,6 +514,7 @@ function registerListeners() {
|
||||
* @type {string[]}
|
||||
*/
|
||||
const macOpenFiles = [];
|
||||
// @ts-ignore
|
||||
global['macOpenFiles'] = macOpenFiles;
|
||||
app.on('open-file', function (event, path) {
|
||||
macOpenFiles.push(path);
|
||||
@@ -539,6 +541,7 @@ function registerListeners() {
|
||||
app.on('open-url', onOpenUrl);
|
||||
});
|
||||
|
||||
// @ts-ignore
|
||||
global['getOpenUrls'] = function () {
|
||||
app.removeListener('open-url', onOpenUrl);
|
||||
|
||||
|
||||
@@ -25,7 +25,13 @@
|
||||
"include": [
|
||||
"./bootstrap.js",
|
||||
"./bootstrap-amd.js",
|
||||
"./bootstrap-fork.js",
|
||||
"./bootstrap-node.js",
|
||||
"./bootstrap-window.js",
|
||||
"./cli.js",
|
||||
"./main.js",
|
||||
"./server-main.js",
|
||||
"./server-cli.js",
|
||||
"./typings",
|
||||
"./vs/**/*.ts",
|
||||
"vscode-dts/vscode.proposed.*.d.ts",
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
"vs/workbench/services/keybinding/test/node/keyboardMapperTestUtils.ts"
|
||||
],
|
||||
"ban-trustedtypes-createpolicy": [
|
||||
"bootstrap-window.js",
|
||||
"vs/amdX.ts",
|
||||
"vs/base/browser/trustedTypes.ts",
|
||||
"vs/base/worker/workerMain.ts",
|
||||
|
||||
@@ -43,5 +43,5 @@ export const BrowserFeatures = {
|
||||
// 'ontouchstart' in window always evaluates to true with typescript's modern typings. This causes `window` to be
|
||||
// `never` later in `window.navigator`. That's why we need the explicit `window as Window` cast
|
||||
touch: 'ontouchstart' in mainWindow || navigator.maxTouchPoints > 0,
|
||||
pointerEvents: mainWindow.PointerEvent && ('ontouchstart' in mainWindow || navigator.maxTouchPoints > 0 || navigator.maxTouchPoints > 0)
|
||||
pointerEvents: mainWindow.PointerEvent && ('ontouchstart' in mainWindow || navigator.maxTouchPoints > 0)
|
||||
};
|
||||
|
||||
@@ -7,6 +7,7 @@ import { createTrustedTypesPolicy } from 'vs/base/browser/trustedTypes';
|
||||
import { onUnexpectedError } from 'vs/base/common/errors';
|
||||
import { COI } from 'vs/base/common/network';
|
||||
import { IWorker, IWorkerCallback, IWorkerFactory, logOnceWebWorkerWarning } from 'vs/base/common/worker/simpleWorker';
|
||||
import { Disposable, toDisposable } from 'vs/base/common/lifecycle';
|
||||
|
||||
const ttPolicy = createTrustedTypesPolicy('defaultWorkerFactory', { createScriptURL: value => value });
|
||||
|
||||
@@ -84,13 +85,14 @@ function isPromiseLike<T>(obj: any): obj is PromiseLike<T> {
|
||||
* A worker that uses HTML5 web workers so that is has
|
||||
* its own global scope and its own thread.
|
||||
*/
|
||||
class WebWorker implements IWorker {
|
||||
class WebWorker extends Disposable implements IWorker {
|
||||
|
||||
private readonly id: number;
|
||||
private readonly label: string;
|
||||
private worker: Promise<Worker> | null;
|
||||
|
||||
constructor(moduleId: string, id: number, label: string, onMessageCallback: IWorkerCallback, onErrorCallback: (err: any) => void) {
|
||||
super();
|
||||
this.id = id;
|
||||
this.label = label;
|
||||
const workerOrPromise = getWorker(label);
|
||||
@@ -109,6 +111,15 @@ class WebWorker implements IWorker {
|
||||
w.addEventListener('error', onErrorCallback);
|
||||
}
|
||||
});
|
||||
this._register(toDisposable(() => {
|
||||
this.worker?.then(w => {
|
||||
w.onmessage = null;
|
||||
w.onmessageerror = null;
|
||||
w.removeEventListener('error', onErrorCallback);
|
||||
w.terminate();
|
||||
});
|
||||
this.worker = null;
|
||||
}));
|
||||
}
|
||||
|
||||
public getId(): number {
|
||||
@@ -126,10 +137,7 @@ class WebWorker implements IWorker {
|
||||
});
|
||||
}
|
||||
|
||||
public dispose(): void {
|
||||
this.worker?.then(w => w.terminate());
|
||||
this.worker = null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export class DefaultWorkerFactory implements IWorkerFactory {
|
||||
|
||||
+40
-20
@@ -444,9 +444,9 @@ export function getComputedStyle(el: HTMLElement): CSSStyleDeclaration {
|
||||
return getWindow(el).getComputedStyle(el, null);
|
||||
}
|
||||
|
||||
export function getClientArea(element: HTMLElement): Dimension {
|
||||
const elDocument = element.ownerDocument;
|
||||
const elWindow = elDocument.defaultView?.window;
|
||||
export function getClientArea(element: HTMLElement, fallback?: HTMLElement): Dimension {
|
||||
const elWindow = getWindow(element);
|
||||
const elDocument = elWindow.document;
|
||||
|
||||
// Try with DOM clientWidth / clientHeight
|
||||
if (element !== elDocument.body) {
|
||||
@@ -473,6 +473,10 @@ export function getClientArea(element: HTMLElement): Dimension {
|
||||
return new Dimension(elDocument.documentElement.clientWidth, elDocument.documentElement.clientHeight);
|
||||
}
|
||||
|
||||
if (fallback) {
|
||||
return getClientArea(fallback);
|
||||
}
|
||||
|
||||
throw new Error('Unable to figure out browser width and height');
|
||||
}
|
||||
|
||||
@@ -836,8 +840,9 @@ export function getShadowRoot(domNode: Node): ShadowRoot | null {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the active element across all child windows.
|
||||
* Use this instead of `document.activeElement` to handle multiple windows.
|
||||
* Returns the active element across all child windows
|
||||
* based on document focus. Falls back to the main
|
||||
* window if no window has focus.
|
||||
*/
|
||||
export function getActiveElement(): Element | null {
|
||||
let result = getActiveDocument().activeElement;
|
||||
@@ -850,42 +855,49 @@ export function getActiveElement(): Element | null {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether the active element of the `document` that owns
|
||||
* the `element` is `element`.
|
||||
* Returns true if the focused window active element matches
|
||||
* the provided element. Falls back to the main window if no
|
||||
* window has focus.
|
||||
*/
|
||||
export function isActiveElement(element: Element): boolean {
|
||||
return element.ownerDocument.activeElement === element;
|
||||
return getActiveElement() === element;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether the active element of the `document` that owns
|
||||
* the `ancestor` is contained in `ancestor`.
|
||||
* Returns true if the focused window active element is contained in
|
||||
* `ancestor`. Falls back to the main window if no window has focus.
|
||||
*/
|
||||
export function isAncestorOfActiveElement(ancestor: Element): boolean {
|
||||
return isAncestor(ancestor.ownerDocument.activeElement, ancestor);
|
||||
return isAncestor(getActiveElement(), ancestor);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether the element is in the active `document`.
|
||||
* Returns whether the element is in the active `document`. The active
|
||||
* document has focus or will be the main windows document.
|
||||
*/
|
||||
export function isActiveDocument(element: Element): boolean {
|
||||
return element.ownerDocument === getActiveDocument();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the active document across all child windows.
|
||||
* Use this instead of `document` when reacting to dom
|
||||
* events to handle multiple windows.
|
||||
* Returns the active document across main and child windows.
|
||||
* Prefers the window with focus, otherwise falls back to
|
||||
* the main windows document.
|
||||
*/
|
||||
export function getActiveDocument(): Document {
|
||||
if (getWindowsCount() <= 1) {
|
||||
return document;
|
||||
return mainWindow.document;
|
||||
}
|
||||
|
||||
const documents = Array.from(getWindows()).map(({ window }) => window.document);
|
||||
return documents.find(doc => doc.hasFocus()) ?? document;
|
||||
return documents.find(doc => doc.hasFocus()) ?? mainWindow.document;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the active window across main and child windows.
|
||||
* Prefers the window with focus, otherwise falls back to
|
||||
* the main window.
|
||||
*/
|
||||
export function getActiveWindow(): CodeWindow {
|
||||
const document = getActiveDocument();
|
||||
return (document.defaultView?.window ?? mainWindow) as CodeWindow;
|
||||
@@ -1019,9 +1031,17 @@ export const sharedMutationObserver = new class {
|
||||
};
|
||||
|
||||
export function createMetaElement(container: HTMLElement = mainWindow.document.head): HTMLMetaElement {
|
||||
const meta = document.createElement('meta');
|
||||
container.appendChild(meta);
|
||||
return meta;
|
||||
return createHeadElement('meta', container) as HTMLMetaElement;
|
||||
}
|
||||
|
||||
export function createLinkElement(container: HTMLElement = mainWindow.document.head): HTMLLinkElement {
|
||||
return createHeadElement('link', container) as HTMLLinkElement;
|
||||
}
|
||||
|
||||
function createHeadElement(tagName: string, container: HTMLElement = mainWindow.document.head): HTMLElement {
|
||||
const element = document.createElement(tagName);
|
||||
container.appendChild(element);
|
||||
return element;
|
||||
}
|
||||
|
||||
let _sharedStyleSheet: HTMLStyleElement | null = null;
|
||||
|
||||
@@ -201,7 +201,7 @@ export class ActionBar extends Disposable implements IActionRunner {
|
||||
}
|
||||
|
||||
// Recompute focused item
|
||||
else if (event.equals(KeyCode.Tab) || event.equals(KeyMod.Shift | KeyCode.Tab)) {
|
||||
else if (event.equals(KeyCode.Tab) || event.equals(KeyMod.Shift | KeyCode.Tab) || event.equals(KeyCode.UpArrow) || event.equals(KeyCode.DownArrow) || event.equals(KeyCode.LeftArrow) || event.equals(KeyCode.RightArrow)) {
|
||||
this.updateFocusedItem();
|
||||
}
|
||||
}));
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-suffix-container>.label-suffix {
|
||||
.monaco-icon-label > .monaco-icon-label-container > .monaco-icon-suffix-container > .label-suffix {
|
||||
opacity: .7;
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ import { ComposedTreeDelegate, TreeFindMode as TreeFindMode, IAbstractTreeOption
|
||||
import { ICompressedTreeElement, ICompressedTreeNode } from 'vs/base/browser/ui/tree/compressedObjectTreeModel';
|
||||
import { getVisibleState, isFilterResult } from 'vs/base/browser/ui/tree/indexTreeModel';
|
||||
import { CompressibleObjectTree, ICompressibleKeyboardNavigationLabelProvider, ICompressibleObjectTreeOptions, ICompressibleTreeRenderer, IObjectTreeOptions, IObjectTreeSetChildrenOptions, ObjectTree } from 'vs/base/browser/ui/tree/objectTree';
|
||||
import { IAsyncDataSource, ICollapseStateChangeEvent, IObjectTreeElement, ITreeContextMenuEvent, ITreeDragAndDrop, ITreeEvent, ITreeFilter, ITreeMouseEvent, ITreeNode, ITreeRenderer, ITreeSorter, TreeError, TreeFilterResult, TreeVisibility, WeakMapper } from 'vs/base/browser/ui/tree/tree';
|
||||
import { IAsyncDataSource, ICollapseStateChangeEvent, IObjectTreeElement, ITreeContextMenuEvent, ITreeDragAndDrop, ITreeEvent, ITreeFilter, ITreeMouseEvent, ITreeNode, ITreeRenderer, ITreeSorter, ObjectTreeElementCollapseState, TreeError, TreeFilterResult, TreeVisibility, WeakMapper } from 'vs/base/browser/ui/tree/tree';
|
||||
import { CancelablePromise, createCancelablePromise, Promises, timeout } from 'vs/base/common/async';
|
||||
import { Codicon } from 'vs/base/common/codicons';
|
||||
import { ThemeIcon } from 'vs/base/common/themables';
|
||||
@@ -31,13 +31,15 @@ interface IAsyncDataTreeNode<TInput, T> {
|
||||
hasChildren: boolean;
|
||||
stale: boolean;
|
||||
slow: boolean;
|
||||
collapsedByDefault: boolean | undefined;
|
||||
readonly defaultCollapseState: undefined | ObjectTreeElementCollapseState.PreserveOrCollapsed | ObjectTreeElementCollapseState.PreserveOrExpanded;
|
||||
forceExpanded: boolean;
|
||||
}
|
||||
|
||||
interface IAsyncDataTreeNodeRequiredProps<TInput, T> extends Partial<IAsyncDataTreeNode<TInput, T>> {
|
||||
readonly element: TInput | T;
|
||||
readonly parent: IAsyncDataTreeNode<TInput, T> | null;
|
||||
readonly hasChildren: boolean;
|
||||
readonly defaultCollapseState: undefined | ObjectTreeElementCollapseState.PreserveOrCollapsed | ObjectTreeElementCollapseState.PreserveOrExpanded;
|
||||
}
|
||||
|
||||
function createAsyncDataTreeNode<TInput, T>(props: IAsyncDataTreeNodeRequiredProps<TInput, T>): IAsyncDataTreeNode<TInput, T> {
|
||||
@@ -47,7 +49,7 @@ function createAsyncDataTreeNode<TInput, T>(props: IAsyncDataTreeNodeRequiredPro
|
||||
refreshPromise: undefined,
|
||||
stale: true,
|
||||
slow: false,
|
||||
collapsedByDefault: undefined
|
||||
forceExpanded: false
|
||||
};
|
||||
}
|
||||
|
||||
@@ -321,7 +323,7 @@ export class AsyncDataTree<TInput, T, TFilterData = void> implements IDisposable
|
||||
protected readonly root: IAsyncDataTreeNode<TInput, T>;
|
||||
private readonly nodes = new Map<null | T, IAsyncDataTreeNode<TInput, T>>();
|
||||
private readonly sorter?: ITreeSorter<T>;
|
||||
private readonly collapseByDefault?: { (e: T): boolean };
|
||||
private readonly getDefaultCollapseState: { (e: T): undefined | ObjectTreeElementCollapseState.PreserveOrCollapsed | ObjectTreeElementCollapseState.PreserveOrExpanded };
|
||||
|
||||
private readonly subTreeRefreshPromises = new Map<IAsyncDataTreeNode<TInput, T>, Promise<void>>();
|
||||
private readonly refreshPromises = new Map<IAsyncDataTreeNode<TInput, T>, CancelablePromise<Iterable<T>>>();
|
||||
@@ -387,7 +389,7 @@ export class AsyncDataTree<TInput, T, TFilterData = void> implements IDisposable
|
||||
this.identityProvider = options.identityProvider;
|
||||
this.autoExpandSingleChildren = typeof options.autoExpandSingleChildren === 'undefined' ? false : options.autoExpandSingleChildren;
|
||||
this.sorter = options.sorter;
|
||||
this.collapseByDefault = options.collapseByDefault;
|
||||
this.getDefaultCollapseState = e => options.collapseByDefault ? (options.collapseByDefault(e) ? ObjectTreeElementCollapseState.PreserveOrCollapsed : ObjectTreeElementCollapseState.PreserveOrExpanded) : undefined;
|
||||
|
||||
this.tree = this.createTree(user, container, delegate, renderers, options);
|
||||
this.onDidChangeFindMode = this.tree.onDidChangeFindMode;
|
||||
@@ -395,7 +397,8 @@ export class AsyncDataTree<TInput, T, TFilterData = void> implements IDisposable
|
||||
this.root = createAsyncDataTreeNode({
|
||||
element: undefined!,
|
||||
parent: null,
|
||||
hasChildren: true
|
||||
hasChildren: true,
|
||||
defaultCollapseState: undefined
|
||||
});
|
||||
|
||||
if (this.identityProvider) {
|
||||
@@ -935,10 +938,9 @@ export class AsyncDataTree<TInput, T, TFilterData = void> implements IDisposable
|
||||
const hasChildren = !!this.dataSource.hasChildren(element);
|
||||
|
||||
if (!this.identityProvider) {
|
||||
const asyncDataTreeNode = createAsyncDataTreeNode({ element, parent: node, hasChildren });
|
||||
const asyncDataTreeNode = createAsyncDataTreeNode({ element, parent: node, hasChildren, defaultCollapseState: this.getDefaultCollapseState(element) });
|
||||
|
||||
if (hasChildren && this.collapseByDefault && !this.collapseByDefault(element)) {
|
||||
asyncDataTreeNode.collapsedByDefault = false;
|
||||
if (hasChildren && asyncDataTreeNode.defaultCollapseState === ObjectTreeElementCollapseState.PreserveOrExpanded) {
|
||||
childrenToRefresh.push(asyncDataTreeNode);
|
||||
}
|
||||
|
||||
@@ -966,15 +968,14 @@ export class AsyncDataTree<TInput, T, TFilterData = void> implements IDisposable
|
||||
} else {
|
||||
childrenToRefresh.push(asyncDataTreeNode);
|
||||
}
|
||||
} else if (hasChildren && this.collapseByDefault && !this.collapseByDefault(element)) {
|
||||
asyncDataTreeNode.collapsedByDefault = false;
|
||||
} else if (hasChildren && !result.collapsed) {
|
||||
childrenToRefresh.push(asyncDataTreeNode);
|
||||
}
|
||||
|
||||
return asyncDataTreeNode;
|
||||
}
|
||||
|
||||
const childAsyncDataTreeNode = createAsyncDataTreeNode({ element, parent: node, id, hasChildren });
|
||||
const childAsyncDataTreeNode = createAsyncDataTreeNode({ element, parent: node, id, hasChildren, defaultCollapseState: this.getDefaultCollapseState(element) });
|
||||
|
||||
if (viewStateContext && viewStateContext.viewState.focus && viewStateContext.viewState.focus.indexOf(id) > -1) {
|
||||
viewStateContext.focus.push(childAsyncDataTreeNode);
|
||||
@@ -986,8 +987,7 @@ export class AsyncDataTree<TInput, T, TFilterData = void> implements IDisposable
|
||||
|
||||
if (viewStateContext && viewStateContext.viewState.expanded && viewStateContext.viewState.expanded.indexOf(id) > -1) {
|
||||
childrenToRefresh.push(childAsyncDataTreeNode);
|
||||
} else if (hasChildren && this.collapseByDefault && !this.collapseByDefault(element)) {
|
||||
childAsyncDataTreeNode.collapsedByDefault = false;
|
||||
} else if (hasChildren && childAsyncDataTreeNode.defaultCollapseState === ObjectTreeElementCollapseState.PreserveOrExpanded) {
|
||||
childrenToRefresh.push(childAsyncDataTreeNode);
|
||||
}
|
||||
|
||||
@@ -1006,7 +1006,7 @@ export class AsyncDataTree<TInput, T, TFilterData = void> implements IDisposable
|
||||
|
||||
// TODO@joao this doesn't take filter into account
|
||||
if (node !== this.root && this.autoExpandSingleChildren && children.length === 1 && childrenToRefresh.length === 0) {
|
||||
children[0].collapsedByDefault = false;
|
||||
children[0].forceExpanded = true;
|
||||
childrenToRefresh.push(children[0]);
|
||||
}
|
||||
|
||||
@@ -1042,16 +1042,17 @@ export class AsyncDataTree<TInput, T, TFilterData = void> implements IDisposable
|
||||
};
|
||||
}
|
||||
|
||||
let collapsed: boolean | undefined;
|
||||
let collapsed: boolean | ObjectTreeElementCollapseState.PreserveOrCollapsed | ObjectTreeElementCollapseState.PreserveOrExpanded | undefined;
|
||||
|
||||
if (viewStateContext && viewStateContext.viewState.expanded && node.id && viewStateContext.viewState.expanded.indexOf(node.id) > -1) {
|
||||
collapsed = false;
|
||||
} else if (node.forceExpanded) {
|
||||
collapsed = false;
|
||||
node.forceExpanded = false;
|
||||
} else {
|
||||
collapsed = node.collapsedByDefault;
|
||||
collapsed = node.defaultCollapseState;
|
||||
}
|
||||
|
||||
node.collapsedByDefault = undefined;
|
||||
|
||||
return {
|
||||
element: node,
|
||||
children: node.hasChildren ? Iterable.map(node.children, child => this.asTreeElement(child, viewStateContext)) : [],
|
||||
|
||||
@@ -426,7 +426,6 @@ export class ThrottledDelayer<T> {
|
||||
* A barrier that is initially closed and then becomes opened permanently.
|
||||
*/
|
||||
export class Barrier {
|
||||
|
||||
private _isOpen: boolean;
|
||||
private _promise: Promise<boolean>;
|
||||
private _completePromise!: (v: boolean) => void;
|
||||
|
||||
@@ -71,11 +71,7 @@ export class MarkdownString implements IMarkdownString {
|
||||
}
|
||||
|
||||
appendCodeblock(langId: string, code: string): MarkdownString {
|
||||
this.value += '\n```';
|
||||
this.value += langId;
|
||||
this.value += '\n';
|
||||
this.value += code;
|
||||
this.value += '\n```\n';
|
||||
this.value += `\n${appendEscapedMarkdownCodeBlockFence(code, langId)}\n`;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -143,6 +139,24 @@ export function escapeMarkdownSyntaxTokens(text: string): string {
|
||||
return text.replace(/[\\`*_{}[\]()#+\-!~]/g, '\\$&'); // CodeQL [SM02383] Backslash is escaped in the character class
|
||||
}
|
||||
|
||||
/**
|
||||
* @see https://github.com/microsoft/vscode/issues/193746
|
||||
*/
|
||||
export function appendEscapedMarkdownCodeBlockFence(code: string, langId: string) {
|
||||
const longestFenceLength =
|
||||
code.match(/^`+/gm)?.reduce((a, b) => (a.length > b.length ? a : b)).length ??
|
||||
0;
|
||||
const desiredFenceLength =
|
||||
longestFenceLength >= 3 ? longestFenceLength + 1 : 3;
|
||||
|
||||
// the markdown result
|
||||
return [
|
||||
`${'`'.repeat(desiredFenceLength)}${langId}`,
|
||||
code,
|
||||
`${'`'.repeat(desiredFenceLength)}`,
|
||||
].join('\n');
|
||||
}
|
||||
|
||||
export function escapeDoubleQuotes(input: string) {
|
||||
return input.replace(/"/g, '"');
|
||||
}
|
||||
|
||||
@@ -226,8 +226,11 @@ export type IFileContentCondition = (IFileLanguageCondition | IFilePathCondition
|
||||
|
||||
export interface IAppCenterConfiguration {
|
||||
readonly 'win32-x64': string;
|
||||
readonly 'win32-arm64': string;
|
||||
readonly 'linux-x64': string;
|
||||
readonly 'darwin': string;
|
||||
readonly 'darwin-universal': string;
|
||||
readonly 'darwin-arm64': string;
|
||||
}
|
||||
|
||||
export interface IConfigBasedExtensionTip {
|
||||
|
||||
@@ -571,6 +571,8 @@ flakySuite('IPC, create handle', () => {
|
||||
|
||||
suite('WebSocketNodeSocket', () => {
|
||||
|
||||
const ds = ensureNoDisposablesAreLeakedInTestSuite();
|
||||
|
||||
function toUint8Array(data: number[]): Uint8Array {
|
||||
const result = new Uint8Array(data.length);
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
@@ -724,15 +726,15 @@ suite('WebSocketNodeSocket', () => {
|
||||
server.close();
|
||||
|
||||
const webSocketNodeSocket = new WebSocketNodeSocket(new NodeSocket(socket), true, null, false);
|
||||
webSocketNodeSocket.onData((data) => {
|
||||
ds.add(webSocketNodeSocket.onData((data) => {
|
||||
receivingSideOnDataCallCount++;
|
||||
receivingSideTotalBytes += data.byteLength;
|
||||
});
|
||||
}));
|
||||
|
||||
webSocketNodeSocket.onClose(() => {
|
||||
ds.add(webSocketNodeSocket.onClose(() => {
|
||||
webSocketNodeSocket.dispose();
|
||||
receivingSideSocketClosedBarrier.open();
|
||||
});
|
||||
}));
|
||||
});
|
||||
|
||||
const socket = connect({
|
||||
|
||||
@@ -361,6 +361,8 @@ suite('RangeMap', () => {
|
||||
|
||||
suite('RangeMap with top padding', () => {
|
||||
|
||||
ensureNoDisposablesAreLeakedInTestSuite();
|
||||
|
||||
test('empty', () => {
|
||||
const rangeMap = new RangeMap(10);
|
||||
assert.strictEqual(rangeMap.size, 10);
|
||||
|
||||
@@ -5,8 +5,10 @@
|
||||
|
||||
import * as assert from 'assert';
|
||||
import { IIdentityProvider, IListVirtualDelegate } from 'vs/base/browser/ui/list/list';
|
||||
import { AsyncDataTree } from 'vs/base/browser/ui/tree/asyncDataTree';
|
||||
import { IAsyncDataSource, ITreeNode, ITreeRenderer } from 'vs/base/browser/ui/tree/tree';
|
||||
import { AsyncDataTree, CompressibleAsyncDataTree, ITreeCompressionDelegate } from 'vs/base/browser/ui/tree/asyncDataTree';
|
||||
import { ICompressedTreeNode } from 'vs/base/browser/ui/tree/compressedObjectTreeModel';
|
||||
import { ICompressibleTreeRenderer } from 'vs/base/browser/ui/tree/objectTree';
|
||||
import { IAsyncDataSource, ITreeNode } from 'vs/base/browser/ui/tree/tree';
|
||||
import { timeout } from 'vs/base/common/async';
|
||||
import { Iterable } from 'vs/base/common/iterator';
|
||||
import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils';
|
||||
@@ -37,7 +39,7 @@ function find(element: Element, id: string): Element | undefined {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
class Renderer implements ITreeRenderer<Element, void, HTMLElement> {
|
||||
class Renderer implements ICompressibleTreeRenderer<Element, void, HTMLElement> {
|
||||
readonly templateId = 'default';
|
||||
renderTemplate(container: HTMLElement): HTMLElement {
|
||||
return container;
|
||||
@@ -48,6 +50,15 @@ class Renderer implements ITreeRenderer<Element, void, HTMLElement> {
|
||||
disposeTemplate(templateData: HTMLElement): void {
|
||||
// noop
|
||||
}
|
||||
renderCompressedElements(node: ITreeNode<ICompressedTreeNode<Element>, void>, index: number, templateData: HTMLElement, height: number | undefined): void {
|
||||
const result: string[] = [];
|
||||
|
||||
for (const element of node.element.elements) {
|
||||
result.push(element.id + (element.suffix || ''));
|
||||
}
|
||||
|
||||
templateData.textContent = result.join('/');
|
||||
}
|
||||
}
|
||||
|
||||
class IdentityProvider implements IIdentityProvider<Element> {
|
||||
@@ -520,4 +531,49 @@ suite('AsyncDataTree', function () {
|
||||
assert(tree.isCollapsible(a), 'a is still collapsible');
|
||||
assert(!tree.isCollapsed(a), 'a is expanded');
|
||||
});
|
||||
|
||||
test('issue #199441', async () => {
|
||||
const container = document.createElement('div');
|
||||
|
||||
const dataSource = new class implements IAsyncDataSource<Element, Element> {
|
||||
hasChildren(element: Element): boolean {
|
||||
return !!element.children && element.children.length > 0;
|
||||
}
|
||||
async getChildren(element: Element) {
|
||||
return element.children ?? Iterable.empty();
|
||||
}
|
||||
};
|
||||
|
||||
const compressionDelegate = new class implements ITreeCompressionDelegate<Element> {
|
||||
isIncompressible(element: Element): boolean {
|
||||
return !dataSource.hasChildren(element);
|
||||
}
|
||||
};
|
||||
|
||||
const model = new Model({
|
||||
id: 'root',
|
||||
children: [{
|
||||
id: 'a', children: [{
|
||||
id: 'b',
|
||||
children: [{ id: 'b.txt' }]
|
||||
}]
|
||||
}]
|
||||
});
|
||||
|
||||
const collapseByDefault = (element: Element) => false;
|
||||
|
||||
const tree = store.add(new CompressibleAsyncDataTree<Element, Element>('test', container, new VirtualDelegate(), compressionDelegate, [new Renderer()], dataSource, { identityProvider: new IdentityProvider(), collapseByDefault }));
|
||||
tree.layout(200);
|
||||
|
||||
await tree.setInput(model.root);
|
||||
assert.deepStrictEqual(Array.from(container.querySelectorAll('.monaco-list-row')).map(e => e.textContent), ['a/b', 'b.txt']);
|
||||
|
||||
model.get('a').children!.push({
|
||||
id: 'c',
|
||||
children: [{ id: 'c.txt' }]
|
||||
});
|
||||
|
||||
await tree.updateChildren(model.root, true);
|
||||
assert.deepStrictEqual(Array.from(container.querySelectorAll('.monaco-list-row')).map(e => e.textContent), ['a', 'b', 'b.txt', 'c', 'c.txt']);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -250,12 +250,14 @@ suite('CompressibleObjectTree', function () {
|
||||
disposeTemplate(): void { }
|
||||
}
|
||||
|
||||
const ds = ensureNoDisposablesAreLeakedInTestSuite();
|
||||
|
||||
test('empty', function () {
|
||||
const container = document.createElement('div');
|
||||
container.style.width = '200px';
|
||||
container.style.height = '200px';
|
||||
|
||||
const tree = new CompressibleObjectTree<number>('test', container, new Delegate(), [new Renderer()]);
|
||||
const tree = ds.add(new CompressibleObjectTree<number>('test', container, new Delegate(), [new Renderer()]));
|
||||
tree.layout(200);
|
||||
|
||||
assert.strictEqual(getRowsTextContent(container).length, 0);
|
||||
@@ -266,7 +268,7 @@ suite('CompressibleObjectTree', function () {
|
||||
container.style.width = '200px';
|
||||
container.style.height = '200px';
|
||||
|
||||
const tree = new CompressibleObjectTree<number>('test', container, new Delegate(), [new Renderer()]);
|
||||
const tree = ds.add(new CompressibleObjectTree<number>('test', container, new Delegate(), [new Renderer()]));
|
||||
tree.layout(200);
|
||||
|
||||
tree.setChildren(null, [
|
||||
@@ -289,7 +291,7 @@ suite('CompressibleObjectTree', function () {
|
||||
container.style.width = '200px';
|
||||
container.style.height = '200px';
|
||||
|
||||
const tree = new CompressibleObjectTree<number>('test', container, new Delegate(), [new Renderer()]);
|
||||
const tree = ds.add(new CompressibleObjectTree<number>('test', container, new Delegate(), [new Renderer()]));
|
||||
tree.layout(200);
|
||||
|
||||
tree.setChildren(null, [
|
||||
@@ -341,7 +343,7 @@ suite('CompressibleObjectTree', function () {
|
||||
container.style.width = '200px';
|
||||
container.style.height = '200px';
|
||||
|
||||
const tree = new CompressibleObjectTree<number>('test', container, new Delegate(), [new Renderer()]);
|
||||
const tree = ds.add(new CompressibleObjectTree<number>('test', container, new Delegate(), [new Renderer()]));
|
||||
tree.layout(200);
|
||||
|
||||
tree.setChildren(null, [
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -498,6 +498,11 @@ suite('Filters', () => {
|
||||
assertTopScore(fuzzyScore, '_lineS', 0, '_lineS', '_lines');
|
||||
});
|
||||
|
||||
test.skip('Bad completion ranking changes valid variable name to class name when pressing "." #187055', function () {
|
||||
assertTopScore(fuzzyScore, 'a', 1, 'A', 'a');
|
||||
assertTopScore(fuzzyScore, 'theme', 1, 'Theme', 'theme');
|
||||
});
|
||||
|
||||
test('HTML closing tag proposal filtered out #38880', function () {
|
||||
assertMatches('\t\t<', '\t\t</body>', '^\t^\t^</body>', fuzzyScore, { patternPos: 0 });
|
||||
assertMatches('\t\t<', '\t\t</body>', '\t\t^</body>', fuzzyScore, { patternPos: 2 });
|
||||
|
||||
@@ -184,6 +184,8 @@ suite('History Navigator', () => {
|
||||
|
||||
suite('History Navigator 2', () => {
|
||||
|
||||
ensureNoDisposablesAreLeakedInTestSuite();
|
||||
|
||||
test('constructor', () => {
|
||||
const testObject = new HistoryNavigator2(['1', '2', '3', '4']);
|
||||
|
||||
|
||||
@@ -13,8 +13,9 @@ class Disposable implements IDisposable {
|
||||
dispose() { this.isDisposed = true; }
|
||||
}
|
||||
|
||||
// Leaks are allowed here since we test lifecycle stuff:
|
||||
// eslint-disable-next-line local/code-ensure-no-disposables-leak-in-test
|
||||
suite('Lifecycle', () => {
|
||||
|
||||
test('dispose single disposable', () => {
|
||||
const disposable = new Disposable();
|
||||
|
||||
@@ -129,6 +130,8 @@ suite('Lifecycle', () => {
|
||||
});
|
||||
|
||||
suite('DisposableStore', () => {
|
||||
ensureNoDisposablesAreLeakedInTestSuite();
|
||||
|
||||
test('dispose should call all child disposes even if a child throws on dispose', () => {
|
||||
const disposedValues = new Set<number>();
|
||||
|
||||
@@ -221,6 +224,8 @@ suite('DisposableStore', () => {
|
||||
});
|
||||
|
||||
suite('Reference Collection', () => {
|
||||
ensureNoDisposablesAreLeakedInTestSuite();
|
||||
|
||||
class Collection extends ReferenceCollection<number> {
|
||||
private _count = 0;
|
||||
get count() { return this._count; }
|
||||
|
||||
@@ -62,6 +62,51 @@ suite('MarkdownString', () => {
|
||||
);
|
||||
});
|
||||
|
||||
suite('appendCodeBlock', () => {
|
||||
function assertCodeBlock(lang: string, code: string, result: string) {
|
||||
const mds = new MarkdownString();
|
||||
mds.appendCodeblock(lang, code);
|
||||
assert.strictEqual(mds.value, result);
|
||||
}
|
||||
|
||||
test('common cases', () => {
|
||||
// no backticks
|
||||
assertCodeBlock('ts', 'const a = 1;', `\n${[
|
||||
'```ts',
|
||||
'const a = 1;',
|
||||
'```'
|
||||
].join('\n')}\n`);
|
||||
// backticks
|
||||
assertCodeBlock('ts', 'const a = `1`;', `\n${[
|
||||
'```ts',
|
||||
'const a = `1`;',
|
||||
'```'
|
||||
].join('\n')}\n`);
|
||||
});
|
||||
|
||||
// @see https://github.com/microsoft/vscode/issues/193746
|
||||
test('escape fence', () => {
|
||||
// fence in the first line
|
||||
assertCodeBlock('md', '```\n```', `\n${[
|
||||
'````md',
|
||||
'```\n```',
|
||||
'````'
|
||||
].join('\n')}\n`);
|
||||
// fence in the middle of code
|
||||
assertCodeBlock('md', '\n\n```\n```', `\n${[
|
||||
'````md',
|
||||
'\n\n```\n```',
|
||||
'````'
|
||||
].join('\n')}\n`);
|
||||
// longer fence at the end of code
|
||||
assertCodeBlock('md', '```\n```\n````\n````', `\n${[
|
||||
'`````md',
|
||||
'```\n```\n````\n````',
|
||||
'`````'
|
||||
].join('\n')}\n`);
|
||||
});
|
||||
});
|
||||
|
||||
suite('ThemeIcons', () => {
|
||||
|
||||
suite('Support On', () => {
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import * as dom from 'vs/base/browser/dom';
|
||||
import * as platform from 'vs/base/common/platform';
|
||||
import { EventType, Gesture, GestureEvent } from 'vs/base/browser/touch';
|
||||
import { Disposable } from 'vs/base/common/lifecycle';
|
||||
import { IPointerHandlerHelper, MouseHandler } from 'vs/editor/browser/controller/mouseHandler';
|
||||
@@ -60,22 +59,32 @@ export class PointerEventHandler extends MouseHandler {
|
||||
|
||||
event.preventDefault();
|
||||
this.viewHelper.focusTextArea();
|
||||
const target = this._createMouseTarget(new EditorMouseEvent(event, false, this.viewHelper.viewDomNode), false);
|
||||
this._dispatchGesture(event, /*inSelectionMode*/false);
|
||||
}
|
||||
|
||||
private onChange(event: GestureEvent): void {
|
||||
if (this._lastPointerType === 'touch') {
|
||||
this._context.viewModel.viewLayout.deltaScrollNow(-event.translationX, -event.translationY);
|
||||
}
|
||||
if (this._lastPointerType === 'pen') {
|
||||
this._dispatchGesture(event, /*inSelectionMode*/true);
|
||||
}
|
||||
}
|
||||
|
||||
private _dispatchGesture(event: GestureEvent, inSelectionMode: boolean): void {
|
||||
const target = this._createMouseTarget(new EditorMouseEvent(event, false, this.viewHelper.viewDomNode), false);
|
||||
if (target.position) {
|
||||
// this.viewController.moveTo(target.position);
|
||||
this.viewController.dispatchMouse({
|
||||
position: target.position,
|
||||
mouseColumn: target.position.column,
|
||||
startedOnLineNumbers: false,
|
||||
revealType: NavigationCommandRevealType.Minimal,
|
||||
mouseDownCount: event.tapCount,
|
||||
inSelectionMode: false,
|
||||
inSelectionMode,
|
||||
altKey: false,
|
||||
ctrlKey: false,
|
||||
metaKey: false,
|
||||
shiftKey: false,
|
||||
|
||||
leftButton: false,
|
||||
middleButton: false,
|
||||
onInjectedText: target.type === MouseTargetType.CONTENT_TEXT && target.detail.injectedText !== null
|
||||
@@ -83,12 +92,6 @@ export class PointerEventHandler extends MouseHandler {
|
||||
}
|
||||
}
|
||||
|
||||
private onChange(e: GestureEvent): void {
|
||||
if (this._lastPointerType === 'touch') {
|
||||
this._context.viewModel.viewLayout.deltaScrollNow(-e.translationX, -e.translationY);
|
||||
}
|
||||
}
|
||||
|
||||
protected override _onMouseDown(e: EditorMouseEvent, pointerId: number): void {
|
||||
if ((e.browserEvent as any).pointerType === 'touch') {
|
||||
return;
|
||||
@@ -137,7 +140,7 @@ export class PointerHandler extends Disposable {
|
||||
|
||||
constructor(context: ViewContext, viewController: ViewController, viewHelper: IPointerHandlerHelper) {
|
||||
super();
|
||||
if ((platform.isIOS && BrowserFeatures.pointerEvents)) {
|
||||
if (BrowserFeatures.pointerEvents) {
|
||||
this.handler = this._register(new PointerEventHandler(context, viewController, viewHelper));
|
||||
} else if (mainWindow.TouchEvent) {
|
||||
this.handler = this._register(new TouchHandler(context, viewController, viewHelper));
|
||||
|
||||
@@ -746,7 +746,7 @@ export class TextAreaWrapper extends Disposable implements ICompleteTextAreaWrap
|
||||
if (shadowRoot) {
|
||||
return shadowRoot.activeElement === this._actual;
|
||||
} else if (this._actual.isConnected) {
|
||||
return this._actual.ownerDocument.activeElement === this._actual;
|
||||
return dom.getActiveElement() === this._actual;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
@@ -796,7 +796,7 @@ export class TextAreaWrapper extends Disposable implements ICompleteTextAreaWrap
|
||||
if (shadowRoot) {
|
||||
activeElement = shadowRoot.activeElement;
|
||||
} else {
|
||||
activeElement = textArea.ownerDocument.activeElement;
|
||||
activeElement = dom.getActiveElement();
|
||||
}
|
||||
const activeWindow = dom.getWindow(activeElement);
|
||||
|
||||
|
||||
@@ -713,7 +713,7 @@ class EditorRenderingCoordinator {
|
||||
public static INSTANCE = new EditorRenderingCoordinator();
|
||||
|
||||
private _coordinatedRenderings: ICoordinatedRendering[] = [];
|
||||
private _animationFrameRunner: IDisposable | null = null;
|
||||
private _animationFrameRunners = new Map<CodeWindow, IDisposable>();
|
||||
|
||||
private constructor() { }
|
||||
|
||||
@@ -729,23 +729,23 @@ class EditorRenderingCoordinator {
|
||||
this._coordinatedRenderings.splice(renderingIndex, 1);
|
||||
|
||||
if (this._coordinatedRenderings.length === 0) {
|
||||
// There are no more renderings to coordinate => cancel animation frame
|
||||
if (this._animationFrameRunner !== null) {
|
||||
this._animationFrameRunner.dispose();
|
||||
this._animationFrameRunner = null;
|
||||
// There are no more renderings to coordinate => cancel animation frames
|
||||
for (const [_, disposable] of this._animationFrameRunners) {
|
||||
disposable.dispose();
|
||||
}
|
||||
this._animationFrameRunners.clear();
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private _scheduleRender(window: CodeWindow): void {
|
||||
if (this._animationFrameRunner === null) {
|
||||
if (!this._animationFrameRunners.has(window)) {
|
||||
const runner = () => {
|
||||
this._animationFrameRunner = null;
|
||||
this._animationFrameRunners.delete(window);
|
||||
this._onRenderScheduled();
|
||||
};
|
||||
this._animationFrameRunner = dom.runAtThisOrScheduleAtNextAnimationFrame(window, runner, 100);
|
||||
this._animationFrameRunners.set(window, dom.runAtThisOrScheduleAtNextAnimationFrame(window, runner, 100));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -280,17 +280,6 @@ export class AccessibleDiffViewerPrev extends Action2 {
|
||||
export function findFocusedDiffEditor(accessor: ServicesAccessor): IDiffEditor | null {
|
||||
const codeEditorService = accessor.get(ICodeEditorService);
|
||||
const diffEditors = codeEditorService.listDiffEditors();
|
||||
const activeCodeEditor = codeEditorService.getFocusedCodeEditor() ?? codeEditorService.getActiveCodeEditor();
|
||||
if (!activeCodeEditor) {
|
||||
return null;
|
||||
}
|
||||
|
||||
for (let i = 0, len = diffEditors.length; i < len; i++) {
|
||||
const diffEditor = <IDiffEditor>diffEditors[i];
|
||||
if (diffEditor.getModifiedEditor().getId() === activeCodeEditor.getId() || diffEditor.getOriginalEditor().getId() === activeCodeEditor.getId()) {
|
||||
return diffEditor;
|
||||
}
|
||||
}
|
||||
|
||||
const activeElement = getActiveElement();
|
||||
if (activeElement) {
|
||||
|
||||
@@ -483,13 +483,13 @@ export class DiffEditorWidget extends DelegatingEditor implements IDiffEditor {
|
||||
return;
|
||||
}
|
||||
|
||||
const model = this._diffModel.get()?.model;
|
||||
if (!model) { return; }
|
||||
const model = this._diffModel.get();
|
||||
if (!model || !model.isDiffUpToDate.get()) { return; }
|
||||
|
||||
this._editors.modified.executeEdits('diffEditor', [
|
||||
{
|
||||
range: diff.modified.toExclusiveRange(),
|
||||
text: model.original.getValueInRange(diff.original.toExclusiveRange())
|
||||
text: model.model.original.getValueInRange(diff.original.toExclusiveRange())
|
||||
}
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -92,6 +92,10 @@ export class LinesSliceCharSequence implements ISequence {
|
||||
// don't break between \r and \n
|
||||
return 0;
|
||||
}
|
||||
if (prevCategory === CharBoundaryCategory.LineBreakLF) {
|
||||
// prefer the linebreak before the change
|
||||
return 150;
|
||||
}
|
||||
|
||||
let score = 0;
|
||||
if (prevCategory !== nextCategory) {
|
||||
@@ -187,7 +191,7 @@ const score: Record<CharBoundaryCategory, number> = {
|
||||
[CharBoundaryCategory.WordNumber]: 0,
|
||||
[CharBoundaryCategory.End]: 10,
|
||||
[CharBoundaryCategory.Other]: 2,
|
||||
[CharBoundaryCategory.Separator]: 3,
|
||||
[CharBoundaryCategory.Separator]: 30,
|
||||
[CharBoundaryCategory.Space]: 3,
|
||||
[CharBoundaryCategory.LineBreakCR]: 10,
|
||||
[CharBoundaryCategory.LineBreakLF]: 10,
|
||||
|
||||
@@ -105,21 +105,21 @@ export class SemanticTokensProviderStyling {
|
||||
public warnOverlappingSemanticTokens(lineNumber: number, startColumn: number): void {
|
||||
if (!this._hasWarnedOverlappingTokens) {
|
||||
this._hasWarnedOverlappingTokens = true;
|
||||
console.warn(`Overlapping semantic tokens detected at lineNumber ${lineNumber}, column ${startColumn}`);
|
||||
this._logService.warn(`Overlapping semantic tokens detected at lineNumber ${lineNumber}, column ${startColumn}`);
|
||||
}
|
||||
}
|
||||
|
||||
public warnInvalidLengthSemanticTokens(lineNumber: number, startColumn: number): void {
|
||||
if (!this._hasWarnedInvalidLengthTokens) {
|
||||
this._hasWarnedInvalidLengthTokens = true;
|
||||
console.warn(`Semantic token with invalid length detected at lineNumber ${lineNumber}, column ${startColumn}`);
|
||||
this._logService.warn(`Semantic token with invalid length detected at lineNumber ${lineNumber}, column ${startColumn}`);
|
||||
}
|
||||
}
|
||||
|
||||
public warnInvalidEditStart(previousResultId: string | undefined, resultId: string | undefined, editIndex: number, editStart: number, maxExpectedStart: number): void {
|
||||
if (!this._hasWarnedInvalidEditStart) {
|
||||
this._hasWarnedInvalidEditStart = true;
|
||||
console.warn(`Invalid semantic tokens edit detected (previousResultId: ${previousResultId}, resultId: ${resultId}) at edit #${editIndex}: The provided start offset ${editStart} is outside the previous data (length ${maxExpectedStart}).`);
|
||||
this._logService.warn(`Invalid semantic tokens edit detected (previousResultId: ${previousResultId}, resultId: ${resultId}) at edit #${editIndex}: The provided start offset ${editStart} is outside the previous data (length ${maxExpectedStart}).`);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -806,7 +806,8 @@ export class ViewModel extends Disposable implements IViewModel {
|
||||
|
||||
public modifyPosition(position: Position, offset: number): Position {
|
||||
const modelPosition = this.coordinatesConverter.convertViewPositionToModelPosition(position);
|
||||
return this.model.modifyPosition(modelPosition, offset);
|
||||
const resultModelPosition = this.model.modifyPosition(modelPosition, offset);
|
||||
return this.coordinatesConverter.convertModelPositionToViewPosition(resultModelPosition);
|
||||
}
|
||||
|
||||
public deduceModelPositionRelativeToViewPosition(viewAnchorPosition: Position, deltaOffset: number, lineFeedCnt: number): Position {
|
||||
|
||||
@@ -175,6 +175,12 @@ export class LightBulbWidget extends Disposable implements IContentWidget {
|
||||
return this.hide();
|
||||
}
|
||||
|
||||
const onlyAIActions = actions.allAIFixes;
|
||||
const showAiIcon = this._editor.getOption(EditorOption.lightbulb).experimental.showAiIcon;
|
||||
if (onlyAIActions && showAiIcon === ShowAiIconMode.Off) {
|
||||
return this.hide();
|
||||
}
|
||||
|
||||
const model = this._editor.getModel();
|
||||
if (!model) {
|
||||
return this.hide();
|
||||
|
||||
@@ -16,24 +16,24 @@
|
||||
font-family: var(--vscode-editorCodeLens-fontFamily), var(--vscode-editorCodeLens-fontFamilyDefault);
|
||||
}
|
||||
|
||||
.monaco-editor .codelens-decoration>span,
|
||||
.monaco-editor .codelens-decoration>a {
|
||||
.monaco-editor .codelens-decoration > span,
|
||||
.monaco-editor .codelens-decoration > a {
|
||||
user-select: none;
|
||||
-webkit-user-select: none;
|
||||
white-space: nowrap;
|
||||
vertical-align: sub;
|
||||
}
|
||||
|
||||
.monaco-editor .codelens-decoration>a {
|
||||
.monaco-editor .codelens-decoration > a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.monaco-editor .codelens-decoration>a:hover {
|
||||
.monaco-editor .codelens-decoration > a:hover {
|
||||
cursor: pointer;
|
||||
color: var(--vscode-editorLink-activeForeground) !important;
|
||||
}
|
||||
|
||||
.monaco-editor .codelens-decoration>a:hover .codicon {
|
||||
.monaco-editor .codelens-decoration > a:hover .codicon {
|
||||
color: var(--vscode-editorLink-activeForeground) !important;
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
font-size: var(--vscode-editorCodeLens-fontSize);
|
||||
}
|
||||
|
||||
.monaco-editor .codelens-decoration>a:hover .codicon::before {
|
||||
.monaco-editor .codelens-decoration > a:hover .codicon::before {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
|
||||
@@ -117,9 +117,9 @@ class CloseButton extends Disposable {
|
||||
|
||||
const closeButton = dom.append(innerDiv, $('.button' + ThemeIcon.asCSSSelector(registerIcon('color-picker-close', Codicon.close, localize('closeIcon', 'Icon to close the color picker')))));
|
||||
closeButton.classList.add('close-icon');
|
||||
this._button.onclick = () => {
|
||||
this._register(dom.addDisposableListener(this._button, dom.EventType.CLICK, () => {
|
||||
this._onClicked.fire();
|
||||
};
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -455,9 +455,9 @@ export class InsertButton extends Disposable {
|
||||
this._button = dom.append(container, document.createElement('button'));
|
||||
this._button.classList.add('insert-button');
|
||||
this._button.textContent = 'Insert';
|
||||
this._button.onclick = e => {
|
||||
this._register(dom.addDisposableListener(this._button, dom.EventType.CLICK, () => {
|
||||
this._onClicked.fire();
|
||||
};
|
||||
}));
|
||||
}
|
||||
|
||||
public get button(): HTMLElement {
|
||||
|
||||
@@ -69,13 +69,18 @@ export function getRealAndSyntheticDocumentFormattersOrdered(
|
||||
return result;
|
||||
}
|
||||
|
||||
export const enum FormattingKind {
|
||||
File = 1,
|
||||
Selection = 2
|
||||
}
|
||||
|
||||
export const enum FormattingMode {
|
||||
Explicit = 1,
|
||||
Silent = 2
|
||||
}
|
||||
|
||||
export interface IFormattingEditProviderSelector {
|
||||
<T extends (DocumentFormattingEditProvider | DocumentRangeFormattingEditProvider)>(formatter: T[], document: ITextModel, mode: FormattingMode): Promise<T | undefined>;
|
||||
<T extends (DocumentFormattingEditProvider | DocumentRangeFormattingEditProvider)>(formatter: T[], document: ITextModel, mode: FormattingMode, kind: FormattingKind): Promise<T | undefined>;
|
||||
}
|
||||
|
||||
export abstract class FormattingConflicts {
|
||||
@@ -87,13 +92,13 @@ export abstract class FormattingConflicts {
|
||||
return { dispose: remove };
|
||||
}
|
||||
|
||||
static async select<T extends (DocumentFormattingEditProvider | DocumentRangeFormattingEditProvider)>(formatter: T[], document: ITextModel, mode: FormattingMode): Promise<T | undefined> {
|
||||
static async select<T extends (DocumentFormattingEditProvider | DocumentRangeFormattingEditProvider)>(formatter: T[], document: ITextModel, mode: FormattingMode, kind: FormattingKind): Promise<T | undefined> {
|
||||
if (formatter.length === 0) {
|
||||
return undefined;
|
||||
}
|
||||
const selector = Iterable.first(FormattingConflicts._selectors);
|
||||
if (selector) {
|
||||
return await selector(formatter, document, mode);
|
||||
return await selector(formatter, document, mode, kind);
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
@@ -113,7 +118,7 @@ export async function formatDocumentRangesWithSelectedProvider(
|
||||
const { documentRangeFormattingEditProvider: documentRangeFormattingEditProviderRegistry } = accessor.get(ILanguageFeaturesService);
|
||||
const model = isCodeEditor(editorOrModel) ? editorOrModel.getModel() : editorOrModel;
|
||||
const provider = documentRangeFormattingEditProviderRegistry.ordered(model);
|
||||
const selected = await FormattingConflicts.select(provider, model, mode);
|
||||
const selected = await FormattingConflicts.select(provider, model, mode, FormattingKind.Selection);
|
||||
if (selected) {
|
||||
progress.report(selected);
|
||||
await instaService.invokeFunction(formatDocumentRangesWithProvider, selected, editorOrModel, rangeOrRanges, token, userGesture);
|
||||
@@ -291,7 +296,7 @@ export async function formatDocumentWithSelectedProvider(
|
||||
const languageFeaturesService = accessor.get(ILanguageFeaturesService);
|
||||
const model = isCodeEditor(editorOrModel) ? editorOrModel.getModel() : editorOrModel;
|
||||
const provider = getRealAndSyntheticDocumentFormattersOrdered(languageFeaturesService.documentFormattingEditProvider, languageFeaturesService.documentRangeFormattingEditProvider, model);
|
||||
const selected = await FormattingConflicts.select(provider, model, mode);
|
||||
const selected = await FormattingConflicts.select(provider, model, mode, FormattingKind.File);
|
||||
if (selected) {
|
||||
progress.report(selected);
|
||||
await instaService.invokeFunction(formatDocumentWithProvider, selected, editorOrModel, mode, token, userGesture);
|
||||
|
||||
@@ -66,13 +66,10 @@
|
||||
/** Hack to force underline to show **/
|
||||
border-bottom: 1px solid transparent;
|
||||
text-underline-position: under;
|
||||
color: var(--vscode-textLink-foreground);
|
||||
}
|
||||
|
||||
.monaco-editor .marker-widget .descriptioncontainer .message a.code-link > span {
|
||||
color: var(--vscode-textLink-activeForeground);
|
||||
}
|
||||
|
||||
.monaco-editor .marker-widget .descriptioncontainer .filename {
|
||||
cursor: pointer;
|
||||
color: var(--vscode-textLink-activeForeground);
|
||||
}
|
||||
|
||||
@@ -782,9 +782,9 @@ export class ContentHoverWidget extends ResizableContentWidget {
|
||||
this._hover.containerDomNode.focus();
|
||||
}
|
||||
hoverData.colorPicker?.layout();
|
||||
|
||||
// The aria label overrides the label, so if we add to it, add the contents of the hover
|
||||
const accessibleViewHint = getHoverAccessibleViewHint(this._configurationService.getValue('accessibility.verbosity.hover') === true && this._accessibilityService.isScreenReaderOptimized(), this._keybindingService.lookupKeybinding('editor.action.accessibleView')?.getAriaLabel() ?? '');
|
||||
const hoverFocused = this._hover.containerDomNode.ownerDocument.activeElement === this._hover.containerDomNode;
|
||||
const accessibleViewHint = hoverFocused && getHoverAccessibleViewHint(this._configurationService.getValue('accessibility.verbosity.hover') === true && this._accessibilityService.isScreenReaderOptimized(), this._keybindingService.lookupKeybinding('editor.action.accessibleView')?.getAriaLabel() ?? '');
|
||||
if (accessibleViewHint) {
|
||||
this._hover.contentsDomNode.ariaLabel = this._hover.contentsDomNode.textContent + ', ' + accessibleViewHint;
|
||||
}
|
||||
|
||||
@@ -192,7 +192,7 @@ export class MarkerHoverParticipant implements IEditorHoverParticipant<MarkerHov
|
||||
this.recentMarkerCodeActionsInfo = undefined;
|
||||
}
|
||||
}
|
||||
const updatePlaceholderDisposable = this.recentMarkerCodeActionsInfo && !this.recentMarkerCodeActionsInfo.hasCodeActions ? Disposable.None : disposables.add(disposableTimeout(() => quickfixPlaceholderElement.textContent = nls.localize('checkingForQuickFixes', "Checking for quick fixes..."), 200));
|
||||
const updatePlaceholderDisposable = this.recentMarkerCodeActionsInfo && !this.recentMarkerCodeActionsInfo.hasCodeActions ? Disposable.None : disposableTimeout(() => quickfixPlaceholderElement.textContent = nls.localize('checkingForQuickFixes', "Checking for quick fixes..."), 200, disposables);
|
||||
if (!quickfixPlaceholderElement.textContent) {
|
||||
// Have some content in here to avoid flickering
|
||||
quickfixPlaceholderElement.textContent = String.fromCharCode(0xA0); //
|
||||
|
||||
@@ -156,6 +156,37 @@ export class InlayHintsController implements IEditorContribution {
|
||||
return;
|
||||
}
|
||||
|
||||
if (options.enabled === 'on') {
|
||||
// different "on" modes: always
|
||||
this._activeRenderMode = RenderMode.Normal;
|
||||
} else {
|
||||
// different "on" modes: offUnlessPressed, or onUnlessPressed
|
||||
let defaultMode: RenderMode;
|
||||
let altMode: RenderMode;
|
||||
if (options.enabled === 'onUnlessPressed') {
|
||||
defaultMode = RenderMode.Normal;
|
||||
altMode = RenderMode.Invisible;
|
||||
} else {
|
||||
defaultMode = RenderMode.Invisible;
|
||||
altMode = RenderMode.Normal;
|
||||
}
|
||||
this._activeRenderMode = defaultMode;
|
||||
|
||||
this._sessionDisposables.add(ModifierKeyEmitter.getInstance().event(e => {
|
||||
if (!this._editor.hasModel()) {
|
||||
return;
|
||||
}
|
||||
const newRenderMode = e.altKey && e.ctrlKey && !(e.shiftKey || e.metaKey) ? altMode : defaultMode;
|
||||
if (newRenderMode !== this._activeRenderMode) {
|
||||
this._activeRenderMode = newRenderMode;
|
||||
const model = this._editor.getModel();
|
||||
const copies = this._copyInlayHintsWithCurrentAnchor(model);
|
||||
this._updateHintsDecorators([model.getFullModelRange()], copies);
|
||||
scheduler.schedule(0);
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
// iff possible, quickly update from cache
|
||||
const cached = this._inlayHintsCache.get(model);
|
||||
if (cached) {
|
||||
@@ -226,42 +257,13 @@ export class InlayHintsController implements IEditorContribution {
|
||||
}
|
||||
}));
|
||||
this._sessionDisposables.add(this._editor.onDidChangeModelContent((e) => {
|
||||
cts?.cancel();
|
||||
|
||||
// update less aggressive when typing
|
||||
const delay = Math.max(scheduler.delay, 1250);
|
||||
scheduler.schedule(delay);
|
||||
}));
|
||||
|
||||
if (options.enabled === 'on') {
|
||||
// different "on" modes: always
|
||||
this._activeRenderMode = RenderMode.Normal;
|
||||
} else {
|
||||
// different "on" modes: offUnlessPressed, or onUnlessPressed
|
||||
let defaultMode: RenderMode;
|
||||
let altMode: RenderMode;
|
||||
if (options.enabled === 'onUnlessPressed') {
|
||||
defaultMode = RenderMode.Normal;
|
||||
altMode = RenderMode.Invisible;
|
||||
} else {
|
||||
defaultMode = RenderMode.Invisible;
|
||||
altMode = RenderMode.Normal;
|
||||
}
|
||||
this._activeRenderMode = defaultMode;
|
||||
|
||||
this._sessionDisposables.add(ModifierKeyEmitter.getInstance().event(e => {
|
||||
if (!this._editor.hasModel()) {
|
||||
return;
|
||||
}
|
||||
const newRenderMode = e.altKey && e.ctrlKey && !(e.shiftKey || e.metaKey) ? altMode : defaultMode;
|
||||
if (newRenderMode !== this._activeRenderMode) {
|
||||
this._activeRenderMode = newRenderMode;
|
||||
const model = this._editor.getModel();
|
||||
const copies = this._copyInlayHintsWithCurrentAnchor(model);
|
||||
this._updateHintsDecorators([model.getFullModelRange()], copies);
|
||||
scheduler.schedule(0);
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
// mouse gestures
|
||||
this._sessionDisposables.add(this._installDblClickGesture(() => scheduler.schedule(0)));
|
||||
this._sessionDisposables.add(this._installLinkGesture());
|
||||
|
||||
@@ -83,6 +83,8 @@ function fromRange(rng: Range): number[] {
|
||||
}
|
||||
|
||||
suite('Multicursor selection', () => {
|
||||
ensureNoDisposablesAreLeakedInTestSuite();
|
||||
|
||||
const serviceCollection = new ServiceCollection();
|
||||
serviceCollection.set(IStorageService, new InMemoryStorageService());
|
||||
|
||||
|
||||
@@ -59,6 +59,11 @@ export class DocumentSemanticTokensFeature extends Disposable {
|
||||
}
|
||||
}
|
||||
};
|
||||
modelService.getModels().forEach(model => {
|
||||
if (isSemanticColoringEnabled(model, themeService, configurationService)) {
|
||||
register(model);
|
||||
}
|
||||
});
|
||||
this._register(modelService.onModelAdded((model) => {
|
||||
if (isSemanticColoringEnabled(model, themeService, configurationService)) {
|
||||
register(model);
|
||||
|
||||
@@ -71,24 +71,24 @@
|
||||
margin-right: 0.3em;
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row>.contents>.main>.right>.readMore,
|
||||
.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore {
|
||||
.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row > .contents > .main > .right > .readMore,
|
||||
.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row.focused.string-label > .contents > .main > .right > .readMore {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-widget.with-status-bar:not(.docs-side) .monaco-list .monaco-list-row:hover>.contents>.main>.right.can-expand-details>.details-label {
|
||||
.monaco-editor .suggest-widget.with-status-bar:not(.docs-side) .monaco-list .monaco-list-row:hover > .contents > .main > .right.can-expand-details > .details-label {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* Styles for Message element for when widget is loading or is empty */
|
||||
|
||||
.monaco-editor .suggest-widget>.message {
|
||||
.monaco-editor .suggest-widget > .message {
|
||||
padding-left: 22px;
|
||||
}
|
||||
|
||||
/** Styles for the list element **/
|
||||
|
||||
.monaco-editor .suggest-widget>.tree {
|
||||
.monaco-editor .suggest-widget > .tree {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
@@ -120,14 +120,14 @@
|
||||
color: var(--vscode-editorSuggestWidget-selectedIconForeground);
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents {
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents {
|
||||
flex: 1;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
padding-left: 2px;
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main {
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main {
|
||||
display: flex;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
@@ -135,12 +135,12 @@
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left,
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right {
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .left,
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.focused)>.contents>.main .monaco-icon-label {
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.focused) > .contents > .main .monaco-icon-label {
|
||||
color: var(--vscode-editorSuggestWidget-foreground);
|
||||
}
|
||||
|
||||
@@ -148,48 +148,48 @@
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main .monaco-highlighted-label .highlight {
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main .monaco-highlighted-label .highlight {
|
||||
color: var(--vscode-editorSuggestWidget-highlightForeground);
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused>.contents>.main .monaco-highlighted-label .highlight {
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused > .contents > .main .monaco-highlighted-label .highlight {
|
||||
color: var(--vscode-editorSuggestWidget-focusHighlightForeground);
|
||||
}
|
||||
|
||||
/** ReadMore Icon styles **/
|
||||
|
||||
.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close,
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore::before {
|
||||
.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .header > .codicon-close,
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right > .readMore::before {
|
||||
color: inherit;
|
||||
opacity: 1;
|
||||
font-size: 14px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close {
|
||||
.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .header > .codicon-close {
|
||||
position: absolute;
|
||||
top: 6px;
|
||||
right: 2px;
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close:hover,
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:hover {
|
||||
.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .header > .codicon-close:hover,
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right > .readMore:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
/** signature, qualifier, type/details opacity **/
|
||||
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label {
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right > .details-label {
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.signature-label {
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .left > .signature-label {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.qualifier-label {
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .left > .qualifier-label {
|
||||
margin-left: 12px;
|
||||
opacity: 0.4;
|
||||
font-size: 85%;
|
||||
@@ -201,7 +201,7 @@
|
||||
|
||||
/** Type Info and icon next to the label in the focused completion item **/
|
||||
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label {
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right > .details-label {
|
||||
font-size: 85%;
|
||||
margin-left: 1.1em;
|
||||
overflow: hidden;
|
||||
@@ -209,58 +209,58 @@
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label>.monaco-tokenized-source {
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right > .details-label > .monaco-tokenized-source {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
/** Details: if using CompletionItem#details, show on focus **/
|
||||
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label {
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right > .details-label {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-widget:not(.shows-details) .monaco-list .monaco-list-row.focused>.contents>.main>.right>.details-label {
|
||||
.monaco-editor .suggest-widget:not(.shows-details) .monaco-list .monaco-list-row.focused > .contents > .main > .right > .details-label {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
/** Details: if using CompletionItemLabel#details, always show **/
|
||||
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.right>.details-label,
|
||||
.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row.focused:not(.string-label)>.contents>.main>.right>.details-label {
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label) > .contents > .main > .right > .details-label,
|
||||
.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row.focused:not(.string-label) > .contents > .main > .right > .details-label {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
/** Ellipsis on hover **/
|
||||
|
||||
.monaco-editor .suggest-widget:not(.docs-side) .monaco-list .monaco-list-row.focused:hover>.contents>.main>.right.can-expand-details>.details-label {
|
||||
.monaco-editor .suggest-widget:not(.docs-side) .monaco-list .monaco-list-row.focused:hover > .contents > .main > .right.can-expand-details > .details-label {
|
||||
width: calc(100% - 26px);
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left {
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .left {
|
||||
flex-shrink: 1;
|
||||
flex-grow: 1;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.monaco-icon-label {
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .left > .monaco-icon-label {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.left>.monaco-icon-label {
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label) > .contents > .main > .left > .monaco-icon-label {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.left>.monaco-icon-label {
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label > .contents > .main > .left > .monaco-icon-label {
|
||||
flex-shrink: 1;
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right {
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right {
|
||||
overflow: hidden;
|
||||
flex-shrink: 4;
|
||||
max-width: 70%;
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore {
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right > .readMore {
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
@@ -271,23 +271,23 @@
|
||||
|
||||
/** Do NOT display ReadMore when docs is side/below **/
|
||||
|
||||
.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row>.contents>.main>.right>.readMore {
|
||||
.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row > .contents > .main > .right > .readMore {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/** Do NOT display ReadMore when using plain CompletionItemLabel (details/documentation might not be resolved) **/
|
||||
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.right>.readMore {
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label > .contents > .main > .right > .readMore {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/** Focused item can show ReadMore, but can't when docs is side/below **/
|
||||
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore {
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused.string-label > .contents > .main > .right > .readMore {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused:hover>.contents>.main>.right>.readMore {
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused:hover > .contents > .main > .right > .readMore {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
@@ -298,7 +298,7 @@
|
||||
text-decoration: unset;
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated>.monaco-icon-label-container>.monaco-icon-name-container {
|
||||
.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated > .monaco-icon-label-container > .monaco-icon-name-container {
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
@@ -372,17 +372,17 @@
|
||||
display: none;
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-details>.monaco-scrollable-element {
|
||||
.monaco-editor .suggest-details > .monaco-scrollable-element {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-details>.monaco-scrollable-element>.body {
|
||||
.monaco-editor .suggest-details > .monaco-scrollable-element > .body {
|
||||
box-sizing: border-box;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type {
|
||||
.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .header > .type {
|
||||
flex: 2;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
@@ -392,55 +392,55 @@
|
||||
padding: 4px 0 12px 5px;
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type.auto-wrap {
|
||||
.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .header > .type.auto-wrap {
|
||||
white-space: normal;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs {
|
||||
.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs {
|
||||
margin: 0;
|
||||
padding: 4px 5px;
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-details.no-type>.monaco-scrollable-element>.body>.docs {
|
||||
.monaco-editor .suggest-details.no-type > .monaco-scrollable-element > .body > .docs {
|
||||
margin-right: 24px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs {
|
||||
.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs.markdown-docs {
|
||||
padding: 0;
|
||||
white-space: initial;
|
||||
min-height: calc(1rem + 8px);
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div,
|
||||
.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>span:not(:empty) {
|
||||
.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs.markdown-docs > div,
|
||||
.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs.markdown-docs > span:not(:empty) {
|
||||
padding: 4px 5px;
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:first-child {
|
||||
.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs.markdown-docs > div > p:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:last-child {
|
||||
.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs.markdown-docs > div > p:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .monaco-tokenized-source {
|
||||
.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs.markdown-docs .monaco-tokenized-source {
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs .code {
|
||||
.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs .code {
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .codicon {
|
||||
.monaco-editor .suggest-details > .monaco-scrollable-element > .body > .docs.markdown-docs .codicon {
|
||||
vertical-align: sub;
|
||||
}
|
||||
|
||||
.monaco-editor .suggest-details>.monaco-scrollable-element>.body>p:empty {
|
||||
.monaco-editor .suggest-details > .monaco-scrollable-element > .body > p:empty {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
@@ -353,7 +353,17 @@ export class SuggestController implements IEditorContribution {
|
||||
const scrollState = StableEditorScrollState.capture(this.editor);
|
||||
this.editor.executeEdits(
|
||||
'suggestController.additionalTextEdits.sync',
|
||||
item.completion.additionalTextEdits.map(edit => EditOperation.replaceMove(Range.lift(edit.range), edit.text))
|
||||
item.completion.additionalTextEdits.map(edit => {
|
||||
let range = Range.lift(edit.range);
|
||||
if (range.startLineNumber === item.position.lineNumber && range.startColumn > item.position.column) {
|
||||
// shift additional edit when it is "after" the completion insertion position
|
||||
const columnDelta = this.editor.getPosition()!.column - item.position.column;
|
||||
const startColumnDelta = columnDelta;
|
||||
const endColumnDelta = Range.spansMultipleLines(range) ? 0 : columnDelta;
|
||||
range = new Range(range.startLineNumber, range.startColumn + startColumnDelta, range.endLineNumber, range.endColumn + endColumnDelta);
|
||||
}
|
||||
return EditOperation.replaceMove(range, edit.text);
|
||||
})
|
||||
);
|
||||
scrollState.restoreRelativeVerticalPositionOfCursor(this.editor);
|
||||
|
||||
|
||||
@@ -45,9 +45,14 @@ const _completionItemColor = new class ColorExtractor {
|
||||
out[0] = item.completion.detail;
|
||||
return true;
|
||||
}
|
||||
if (typeof item.completion.documentation === 'string') {
|
||||
const match = ColorExtractor._regexRelaxed.exec(item.completion.documentation);
|
||||
if (match && (match.index === 0 || match.index + match[0].length === item.completion.documentation.length)) {
|
||||
|
||||
if (item.completion.documentation) {
|
||||
const value = typeof item.completion.documentation === 'string'
|
||||
? item.completion.documentation
|
||||
: item.completion.documentation.value;
|
||||
|
||||
const match = ColorExtractor._regexRelaxed.exec(value);
|
||||
if (match && (match.index === 0 || match.index + match[0].length === value.length)) {
|
||||
out[0] = match[0];
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -616,4 +616,56 @@ suite('SuggestController', function () {
|
||||
|
||||
await p2;
|
||||
});
|
||||
|
||||
test('Ranges where additionalTextEdits are applied are not appropriate when characters are typed #177591', async function () {
|
||||
disposables.add(languageFeaturesService.completionProvider.register({ scheme: 'test-ctrl' }, {
|
||||
_debugDisplayName: 'test',
|
||||
provideCompletionItems(doc, pos) {
|
||||
return {
|
||||
suggestions: [{
|
||||
kind: CompletionItemKind.Snippet,
|
||||
label: 'aaa',
|
||||
insertText: 'aaa',
|
||||
range: Range.fromPositions(pos),
|
||||
additionalTextEdits: [{
|
||||
range: Range.fromPositions(pos.delta(0, 10)),
|
||||
text: 'aaa'
|
||||
}]
|
||||
}]
|
||||
};
|
||||
}
|
||||
}));
|
||||
|
||||
{ // PART1 - no typing
|
||||
editor.setValue(`123456789123456789`);
|
||||
editor.setSelection(new Selection(1, 1, 1, 1));
|
||||
const p1 = Event.toPromise(controller.model.onDidSuggest);
|
||||
controller.triggerSuggest();
|
||||
|
||||
const e = await p1;
|
||||
assert.strictEqual(e.completionModel.items.length, 1);
|
||||
assert.strictEqual(e.completionModel.items[0].textLabel, 'aaa');
|
||||
|
||||
controller.acceptSelectedSuggestion(false, false);
|
||||
|
||||
assert.strictEqual(editor.getValue(), 'aaa1234567891aaa23456789');
|
||||
}
|
||||
|
||||
{ // PART2 - typing
|
||||
editor.setValue(`123456789123456789`);
|
||||
editor.setSelection(new Selection(1, 1, 1, 1));
|
||||
const p1 = Event.toPromise(controller.model.onDidSuggest);
|
||||
controller.triggerSuggest();
|
||||
|
||||
const e = await p1;
|
||||
assert.strictEqual(e.completionModel.items.length, 1);
|
||||
assert.strictEqual(e.completionModel.items[0].textLabel, 'aaa');
|
||||
|
||||
editor.trigger('keyboard', 'type', { text: 'aa' });
|
||||
|
||||
controller.acceptSelectedSuggestion(false, false);
|
||||
|
||||
assert.strictEqual(editor.getValue(), 'aaa1234567891aaa23456789');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -253,9 +253,10 @@ function computeOccurencesMultiModel(registry: LanguageFeatureRegistry<MultiDocu
|
||||
return new TextualOccurenceRequest(model, selection, word, wordSeparators, otherModels);
|
||||
}
|
||||
|
||||
registerModelAndPositionCommand('_executeDocumentHighlights', (accessor, model, position) => {
|
||||
registerModelAndPositionCommand('_executeDocumentHighlights', async (accessor, model, position) => {
|
||||
const languageFeaturesService = accessor.get(ILanguageFeaturesService);
|
||||
return getOccurrencesAtPosition(languageFeaturesService.documentHighlightProvider, model, position, CancellationToken.None);
|
||||
const map = await getOccurrencesAtPosition(languageFeaturesService.documentHighlightProvider, model, position, CancellationToken.None);
|
||||
return map?.get(model.uri);
|
||||
});
|
||||
|
||||
class WordHighlighter {
|
||||
|
||||
@@ -50,6 +50,7 @@ class EditorScopedQuickInputService extends QuickInputService {
|
||||
get onDidLayoutContainer() { return Event.map(editor.onDidLayoutChange, dimension => ({ container: widget.getDomNode(), dimension })); },
|
||||
get onDidChangeActiveContainer() { return Event.None; },
|
||||
get onDidAddContainer() { return Event.None; },
|
||||
get whenActiveContainerStylesLoaded() { return Promise.resolve(); },
|
||||
get mainContainerOffset() { return { top: 0, quickPickTop: 0 }; },
|
||||
get activeContainerOffset() { return { top: 0, quickPickTop: 0 }; },
|
||||
focus: () => editor.focus()
|
||||
|
||||
@@ -37,14 +37,19 @@
|
||||
clip-path: inset(50%);
|
||||
}
|
||||
|
||||
/*.monaco-editor.vs [tabindex="0"]:focus {
|
||||
outline: 1px solid rgba(0, 122, 204, 0.4);
|
||||
.monaco-editor, .monaco-diff-editor .synthetic-focus,
|
||||
.monaco-editor, .monaco-diff-editor [tabindex="0"]:focus,
|
||||
.monaco-editor, .monaco-diff-editor [tabindex="-1"]:focus,
|
||||
.monaco-editor, .monaco-diff-editor button:focus,
|
||||
.monaco-editor, .monaco-diff-editor input[type=button]:focus,
|
||||
.monaco-editor, .monaco-diff-editor input[type=checkbox]:focus,
|
||||
.monaco-editor, .monaco-diff-editor input[type=search]:focus,
|
||||
.monaco-editor, .monaco-diff-editor input[type=text]:focus,
|
||||
.monaco-editor, .monaco-diff-editor select:focus,
|
||||
.monaco-editor, .monaco-diff-editor textarea:focus {
|
||||
outline-width: 1px;
|
||||
outline-style: solid;
|
||||
outline-offset: -1px;
|
||||
opacity: 1 !important;
|
||||
outline-color: var(--vscode-focusBorder);
|
||||
opacity: 1
|
||||
}
|
||||
|
||||
.monaco-editor.vs-dark [tabindex="0"]:focus {
|
||||
outline: 1px solid rgba(14, 99, 156, 0.6);
|
||||
outline-offset: -1px;
|
||||
opacity: 1 !important;
|
||||
}*/
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import * as dom from 'vs/base/browser/dom';
|
||||
import { mainWindow } from 'vs/base/browser/window';
|
||||
import { coalesce, firstOrDefault } from 'vs/base/common/arrays';
|
||||
import { Event } from 'vs/base/common/event';
|
||||
import { ILayoutService, ILayoutOffsetInfo } from 'vs/platform/layout/browser/layoutService';
|
||||
import { ICodeEditorService } from 'vs/editor/browser/services/codeEditorService';
|
||||
import { InstantiationType, registerSingleton } from 'vs/platform/instantiation/common/extensions';
|
||||
import { coalesce, firstOrDefault } from 'vs/base/common/arrays';
|
||||
import { mainWindow } from 'vs/base/browser/window';
|
||||
import { ILayoutOffsetInfo, ILayoutService } from 'vs/platform/layout/browser/layoutService';
|
||||
|
||||
class StandaloneLayoutService implements ILayoutService {
|
||||
declare readonly _serviceBrand: undefined;
|
||||
@@ -19,6 +19,7 @@ class StandaloneLayoutService implements ILayoutService {
|
||||
readonly onDidLayoutContainer = Event.None;
|
||||
readonly onDidChangeActiveContainer = Event.None;
|
||||
readonly onDidAddContainer = Event.None;
|
||||
readonly whenActiveContainerStylesLoaded = Promise.resolve();
|
||||
|
||||
get mainContainer(): HTMLElement {
|
||||
return firstOrDefault(this._codeEditorService.listCodeEditors())?.getContainerDomNode() ?? mainWindow.document.body;
|
||||
|
||||
@@ -355,4 +355,22 @@ suite('ViewModel', () => {
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
test('issue #193262: Incorrect implementation of modifyPosition', () => {
|
||||
testViewModel(
|
||||
[
|
||||
'just some text'
|
||||
],
|
||||
{
|
||||
wordWrap: 'wordWrapColumn',
|
||||
wordWrapColumn: 5
|
||||
},
|
||||
(viewModel, model) => {
|
||||
assert.deepStrictEqual(
|
||||
new Position(3, 1),
|
||||
viewModel.modifyPosition(new Position(3, 2), -1)
|
||||
);
|
||||
}
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
+6
-2
@@ -21,8 +21,12 @@
|
||||
"modifiedRange": "[7,76 -> 7,80]"
|
||||
},
|
||||
{
|
||||
"originalRange": "[12,153 -> 12,155 EOL]",
|
||||
"modifiedRange": "[7,157 -> 8,1 EOL]"
|
||||
"originalRange": "[12,153 -> 12,153]",
|
||||
"modifiedRange": "[7,157 -> 7,181]"
|
||||
},
|
||||
{
|
||||
"originalRange": "[13,1 -> 13,1]",
|
||||
"modifiedRange": "[8,1 -> 9,1]"
|
||||
},
|
||||
{
|
||||
"originalRange": "[13,31 -> 13,31]",
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
function x(alignments: RangeMapping[]): x[] { }
|
||||
@@ -0,0 +1 @@
|
||||
function x(alignments: RangeMapping[], originalLines: string[], modifiedLines: string[]): x[] { }
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"original": {
|
||||
"content": "function x(alignments: RangeMapping[]): x[] { }\n",
|
||||
"fileName": "./1.tst"
|
||||
},
|
||||
"modified": {
|
||||
"content": "function x(alignments: RangeMapping[], originalLines: string[], modifiedLines: string[]): x[] { }\n",
|
||||
"fileName": "./2.tst"
|
||||
},
|
||||
"diffs": [
|
||||
{
|
||||
"originalRange": "[1,2)",
|
||||
"modifiedRange": "[1,2)",
|
||||
"innerChanges": [
|
||||
{
|
||||
"originalRange": "[1,38 -> 1,38]",
|
||||
"modifiedRange": "[1,38 -> 1,88]"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"original": {
|
||||
"content": "function x(alignments: RangeMapping[]): x[] { }\n",
|
||||
"fileName": "./1.tst"
|
||||
},
|
||||
"modified": {
|
||||
"content": "function x(alignments: RangeMapping[], originalLines: string[], modifiedLines: string[]): x[] { }\n",
|
||||
"fileName": "./2.tst"
|
||||
},
|
||||
"diffs": [
|
||||
{
|
||||
"originalRange": "[1,2)",
|
||||
"modifiedRange": "[1,2)",
|
||||
"innerChanges": [
|
||||
{
|
||||
"originalRange": "[1,38 -> 1,38]",
|
||||
"modifiedRange": "[1,38 -> 1,88]"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -93,6 +93,8 @@ export class DropdownWithPrimaryActionViewItem extends BaseActionViewItem {
|
||||
event.stopPropagation();
|
||||
}
|
||||
}));
|
||||
|
||||
this.updateEnabled();
|
||||
}
|
||||
|
||||
override focus(fromRight?: boolean): void {
|
||||
@@ -119,6 +121,11 @@ export class DropdownWithPrimaryActionViewItem extends BaseActionViewItem {
|
||||
}
|
||||
}
|
||||
|
||||
protected override updateEnabled(): void {
|
||||
const disabled = !this.action.enabled;
|
||||
this.element?.classList.toggle('disabled', disabled);
|
||||
}
|
||||
|
||||
update(dropdownAction: IAction, dropdownMenuActions: IAction[], dropdownIcon?: string): void {
|
||||
this._dropdown.dispose();
|
||||
this._dropdown = new DropdownMenuActionViewItem(dropdownAction, dropdownMenuActions, this._contextMenuProvider, {
|
||||
|
||||
@@ -115,6 +115,7 @@ export interface NativeParsedArgs {
|
||||
'profile'?: string;
|
||||
'profile-temp'?: boolean;
|
||||
'disable-chromium-sandbox'?: boolean;
|
||||
sandbox?: boolean;
|
||||
|
||||
'enable-coi'?: boolean;
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ import { NativeParsedArgs } from 'vs/platform/environment/common/argv';
|
||||
import { ExtensionKind, IExtensionHostDebugParams, INativeEnvironmentService } from 'vs/platform/environment/common/environment';
|
||||
import { IProductService } from 'vs/platform/product/common/productService';
|
||||
|
||||
export const EXTENSION_IDENTIFIER_WITH_LOG_REGEX = /^([^.]+\..+):(.+)$/;
|
||||
export const EXTENSION_IDENTIFIER_WITH_LOG_REGEX = /^([^.]+\..+)[:=](.+)$/;
|
||||
|
||||
export interface INativeEnvironmentPaths {
|
||||
|
||||
|
||||
@@ -121,6 +121,7 @@ export const OPTIONS: OptionDescriptions<Required<NativeParsedArgs>> = {
|
||||
'inspect-brk-extensions': { type: 'string', allowEmptyValue: true, deprecates: ['debugBrkPluginHost'], args: 'port', cat: 't', description: localize('inspect-brk-extensions', "Allow debugging and profiling of extensions with the extension host being paused after start. Check the developer tools for the connection URI.") },
|
||||
'disable-gpu': { type: 'boolean', cat: 't', description: localize('disableGPU', "Disable GPU hardware acceleration.") },
|
||||
'disable-chromium-sandbox': { type: 'boolean', cat: 't', description: localize('disableChromiumSandbox', "Use this option only when there is requirement to launch the application as sudo user on Linux or when running as an elevated user in an applocker environment on Windows.") },
|
||||
'sandbox': { type: 'boolean' },
|
||||
'ms-enable-electron-run-as-node': { type: 'boolean', global: true },
|
||||
'telemetry': { type: 'boolean', cat: 't', description: localize('telemetry', "Shows all telemetry events which VS code collects.") },
|
||||
|
||||
|
||||
@@ -112,13 +112,13 @@ suite('parseArgs', () => {
|
||||
_: string[];
|
||||
}
|
||||
|
||||
const options1: OptionDescriptions<TestArgs1> = {
|
||||
const options1 = {
|
||||
'testcmd': c('A test command', {
|
||||
testArg: o('A test command option'),
|
||||
_: { type: 'string[]' }
|
||||
}),
|
||||
_: { type: 'string[]' }
|
||||
};
|
||||
} as OptionDescriptions<TestArgs1>;
|
||||
assertParse(
|
||||
options1,
|
||||
['testcmd', '--testArg=foo'],
|
||||
@@ -142,13 +142,13 @@ suite('parseArgs', () => {
|
||||
_: string[];
|
||||
}
|
||||
|
||||
const options2: OptionDescriptions<TestArgs2> = {
|
||||
const options2 = {
|
||||
'testcmd': c('A test command', {
|
||||
testArg: o('A test command option')
|
||||
}),
|
||||
testX: { type: 'boolean', global: true, description: '' },
|
||||
_: { type: 'string[]' }
|
||||
};
|
||||
} as OptionDescriptions<TestArgs2>;
|
||||
assertParse(
|
||||
options2,
|
||||
['testcmd', '--testArg=foo', '--testX'],
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user